目录
0 引言
针对HTTP协议的知识点总结
1 什么是HTTP协议
HTTP协议中文名是超文本传输协议,分为三个层面来理解:
- 协议:规定了应用进程之间通信的规范
- 传输:两点之间传输数据
- 超文本:能传输的数据不仅只有文本内容,还有图片,视频等超文本内容
2 HTTP报文有什么
请求报文
-
请求行
-
请求方法:GET/POST
-
请求url地址
-
协议及其版本号
-
-
请求头
包含了客户端的一些属性,格式为 属性名:属性值,服务端可以通过这一部分来获取我们的客户端信息
-
请求体
对于我们的POST请求,需要项服务器提交一些数据,这些数据就存储在请求体重
响应报文
-
响应头
-
协议及其版本号
-
状态码
-
-
响应头
包含了我们服务端的一些属性,格式为 属性名:属性值,客户端通过这部分报文可以获取服务端的信息
-
响应体
服务端期望传送给客户端的数据
常用的字段
-
host 请求字段,告诉服务器这个请求由哪个主机来处理
-
user-agent 请求字段,它使用一个字符串来描述发起请求的客户端,服务器可以一句它来返回最合适此浏览器显示的页面
-
Date 通用字段,通常出现在响应头中,表示http报文创建的时间
-
server 响应字段,告诉客户端正在提供web服务的软件名称和版本号
状态码
-
1xx 提示信息,表示目前是协议处理的中间状态
-
2xx 表示请求处理成功
-
3xx 表示重定向
-
4xx 客户端错误,通常是请求报文错误,服务器无法处理
-
5xx 服务端错误,通常是服务器内部处理请求时出现异常
3 HTTP缓存技术
强制缓存
-
当我们在第一次请求资源的时候,服务端会返回这个资源与资源的过期时间,客户端接受到后就将该资源和过期时间缓存起来
-
后面再继续请求相同的资源的时候,客户端会先到缓存中去查看资源是否已经过期,未过期则直接返回,过期则向服务器再次发送请求
-
服务器再次受到请求后会更新资源的过期时间
协商缓存
协商缓存是基于强制缓存+资