前言

为啥第一章直接跳到第六章呢,因为...博主当初看书的时候挑着看..只看了第一章和第六章┗( ▔, ▔ )┛

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)