前言
为啥第一章直接跳到第六章呢,因为...博主当初看书的时候挑着看..只看了第一章和第六章┗( ▔, ▔ )┛
HTTP图解对于不熟悉HTTP的小伙伴来说是很好的书籍,建议入手!
一、 HTTP报文首部
图 HTTP报文的结构
图 请求报文
图 响应报文
二、HTTP首部字段
1. 结构
首部字段名:字段值(一个首部字段可有多个字段值)
2. 通用首部字段
2.1 Cache-Control
- public:其他用户也可利用缓存
- private:只有当前用户可利用缓存
- no-cache:防止从缓存中返回过期的资源
- no-store:不进行缓存(通常请求或响应中包含机密信息,如登录接口)
- max-age:当缓存资源的缓存时间 < max-age时,可直接使用缓存资源;
- 当缓存资源的缓存时间 >= max-age时,缓存资源已过期;
- 当max-age = 0,缓存服务器需要将请求转发给源服务器。
- s-maxage:功能与 max-age 相同,但只适用于供多位用户使用的公共缓存服务器;当使用 s-maxage指令后,直接忽略 Expires 和 max-age
- must-revalidate:代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效
2.2 Connection
- Connection:不再转发的首部字段名(把这个删除后再转发喔~)
- Connection:close(当服务器想明确断开连接时,则指定Connection的值为Close)
- Connection:Keep-Alive(HTTP/1.1版本开始默认连接都是持久连接)
2.3 Date:创建HTTP报文的日期和时间
3. 请求首部字段
3.1 Accept
客户端能够处理的媒体类型及媒体类型的相对优先级(q=权重值,取0~1,1为最大值)
3.2 Accept-Charset
客户端支持的字符集
3.3 Accept-Encoding
客户端支持的内容编码(压缩)
3.4 Authorization
客户端的用来告知服务器的认证信息(证书值)
3.5 Host
请求的资源服务器的主机名(域名/IP)+端口,如www.poloyy.site:8080
3.6 Referer
告知服务器请求的原始资源的URI
3.7 User-Agent
将浏览器信息和客户端名称等信息传达给服务器
4. 响应首部字段
5. 实体首部字段
6. End-to-End 首部和 Hop-by-Hop首部
- 端到端首部(End-to-End Header)
- 逐跳首部(Hop-by-Hop Header)