HTTP协议介绍
超文本传输协议
规定了浏览器与服务器之间数据传输的格式
1、四大特性:
1 基于请求响应 (一次请求对应一次响应)
2 基于TCP/IP 作用于应用层之上的协议
3 无状态保存 (不保留客户端的状态,cookie,session,token)
4 无链接,发送一次请求,响应完就断开,性能影响(http 版本区别)
2、数据格式
HTTP请求格式包含三个部分
请求首行: 请求方式+url字段+协议版本 ( method + request-URI + HTTP-version )
请求头:一大堆的k,v键值对(Accept, User-Agent, host, connection, Cookie, Referer 等)
请求体:携带的数据(并不是一直都有,有时候可能是空的,取决于你的请求方式)
urlencode:name=kai&age=18 ---> request.POST
json:{name:kai,age:18} ---> request.POST取不出来(为什么?django框架没有做这个事)
formdata:传文件 ---> request.POST
HTTP响应格式包含三个部分
响应首行:响应状态码(HTTP-Version+Status-Code+Reason-Phrase ,比如:HTTP/1.1 200 ok)
响应头:一大堆k, v键值对(服务器类型, 日期, 长度, 内容类型,cookie等)
响应体:浏览器展示给你看的数据(HTML页面,json)
3、响应状态码
用数字来表示一大堆提示信息
1xx 服务端已经成功接收到客户端的数据正在处理, 你可以继续提交
2xx 200 请求成功,服务器已经返回了你想要的数据
3xx 重定向,访问页面时,会重定向至新的url
4xx 403你当前没有权限访问该数据,404请求资源不存在
5xx 服务器内部错误(宕机等)