面试题杂记2
你理解的HTTP协议?
HTTP协议其实就是规定了浏览器(客户端)与服务器端传输数据的格式。
我原来学习django框架,从socket服务端开始学起。
自己创造了一个socket服务器来充当:网站。
浏览器当socket客户端。
更清楚的明白到底http协议是什么?
- 请求头 请求头
- 响应头 响应头
1、数据格式的指定:
- 请求头1\r\n请求头2\r\nxxx\r\n\r\n请求体
- 响应头1\r\n响应头2\r\nxxx\r\n\r\n响应体
2、一次响应后就断开连接。
HTTP协议常见的请求头有哪些?
(1)Content-Type:浏览器与服务器交互数据的格式~urlencoded:?a=1&b=2~~~
(2)User-Agent:用的浏览器是什么设备
(3)referer:“之前的地址”。告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。
从主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。
也可以做图片防盗链(比如QQ空间图片链接,被其他地方引用的话,可以做提示~,不让别的地方引用——浏览器请求图片的链接时会自动带上referrer,当服务器识别出这个不是它自己的网站的时候可以做响应的处理~~返回我自己的图片给自己打广告)。
百度百科:https://baike.baidu.com/item/HTTP_REFERER/5358396
(4)Host:当前的域名
(5)Cookies:cookie是携带在请求头中发出去的!!!
常见的请求体有哪些?
Form表单提交: —— 跟请求体之间用两个\r\n分割。
POST /index http1.1\r\nhost:www.luffycity.com...\r\n\r\nusername=alex&password=123&...
Ajax请求:
POST /index http1.1\r\nhost:www.luffycity.com...\r\n\r\nusername=alex&password=123&...
# 也可以把数据改成字典的格式 POST /index http1.1\r\nhost:www.luffycity.com...\r\n\r\n{“username”:"alex","password":123}
Django中如何获取请求中的数据?
request.GET —— 获取浏览器地址栏?后的数据(?a=1&b=2这样的数据。)
request.POST —— contentType是urlencoded的时候用request.POST方法取值。
request.body —— contentType是其他方式的时候用request.body —— 其实就是原生的请求数据!
常见的HTTP请求方法有哪些?
GET、POST、PUT、DELETE、PATCH(局部更新字段<比如说userinfo的username>,PUT方法是更新全字段<即使只更新一个username,也会把这个字段的全部信息发送>)、OPTIONS
常见的响应的状态码有哪些?
(1)200
(2)500:服务器端有错误
(3)301:永久重定向;302:临时重定向
(4)403:拒绝或禁止访问;404:请求的页面不存在
你用DRF序列化组件都干过什么?
1、通过source实现一对一与choices字段的显示
2、通过serializerMethodField实现多对多字段的显示
详见这几篇博客:
https://www.cnblogs.com/paulwhw/articles/11531454.html
浙公网安备 33010602011771号