面试题杂记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请求方法有哪些?

GETPOSTPUTDELETEPATCH(局部更新字段<比如说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

https://www.cnblogs.com/paulwhw/articles/11358312.html

https://www.cnblogs.com/paulwhw/articles/11358323.html

posted on 2019-09-23 09:48  江湖乄夜雨  阅读(111)  评论(0)    收藏  举报