《图解HTTP》读书笔记——第六章

第6章 HTTP首部
6.1 HTTP报文首部
请求报文
响应报文

6.2 HTTP首部字段
1)首部字段结构:
首部字段名:字段值
2)HTTP首部字段类型:通用首部字段、请求首部字段、响应首部字段、实体首部字段。
3)通用首部字段:
通用首部字段
请求首部字段:
请求首部字段
响应首部字段:
响应首部字段
实体首部字段:
实体首部字段
4)端到端首部(End-to-end Header):必须被转发,将会被转发给请求或者响应对应的最终接受目标,必须保存在缓存生成的响应中;
5)逐跳首部(Hop-by-hop Header):对单次转发有效,会通过缓存或者代理不再转发;在HTTP/1.1和之后的版本中,如果使用逐跳首部需要提供Connection首部字段;
6)端到端首部共8个字段:Connection、Keep-Alive、Proxy-Authenticate、Proxy-Authorization、Trailer、TE、Transfer-Encoding、Upgrade;
此外都属于逐跳首部;

6.3 HTTP/1.1通用首部字段
1)Cache-Control:控制缓存的行为
缓存请求指令:
缓存请求指令
缓存响应指令:
缓存响应指令
2)Connection:
控制不再转发给代理;
Connection:不再转发的首部字段名
管理持久连接;
Connection:close 服务器要求断开连接;
Connection:Kepp-Alive 在旧版本上维持持续连接;
3)HTTP/1.1之前的版本默认连接是非持久连接;
HTTP/1.1版本默认连接是非持久连接;
4)Date:表明创建HTTP报文的日期和时间;
5)Pragma:HTTP/1.1之前版本的历史遗留字段,作为与HTTP/1.0的向后兼容而定义;
唯一的形式:
Pragma:no-cache
仅用于客户端发送的请求中;
客户端要求所有的中间服务器不返回缓存的资源;
6)Trailer:预先说明在报文主体后记录了哪些首部字段;
7)Transfer-Encoding:规定传输报文主体时要采用的编码方式;
仅对分块传输编码有效;
8)Upgrade:用于检测HTTP协议以及其他协议能不能用更高的版本进行通信;
指定指为TLS/1.0;
首部出现Upgrade请求时,服务器响应为101 Switching Protrols;
9)Via:追踪客户端和服务器之间的请求和响应报文的传输路径;避免发生请求回环;
经过代理时必须附加这个首部字段内容;代理服务器会在这个字段里面添加自身的信息;
10)Warning:告知用户一些与缓存相关的问题的警告;
Warning:【警告码】【警告的主机:端口号】“【警告内容】“(【日期时间】)
HTTP/1.1警告码:
HTTP/1.1警告码

6.4 请求首部字段
1)Accept:通知服务器客户端可以处理的媒体类型及其优先级;默认优先级为1.0,最高;
2)Accept-Charset:通知服务器用户代理支持的字符集及其优先顺序;
3)Accept-Encoding:知服务器用户代理支持的内容编码及其优先顺序;
4)Accept-Language:通知服务器用户代理可以处理的语言集及其优先顺序;
5)Authorization:通知服务器用户代理的认证信息;
6)Expect:客户端使用这个字段告知服务器,期望出现某种特定的行为;
7)From:告知服务器使用用户代理的用户的邮件联系方式;
8)Host:告知服务器请求的资源所处互联网的主机名和端口号;
9)If-Match:告知服务器匹配资源所用的实体标记值;两者一致是执行请求,若不一致返回412;
10)If-Modified-Since:确认代理或客户端拥有的本地资源的有效性;
11)If-None-Match:实体标记值与请求资源的ETag不一致时执行请求,获取最新的资源;
12)If-Range:告知服务器若指定的If-Range字段值和请求资源的ETag值或时间相一致时,则作为范围处理请求;否则,返回全体资源;
13)If-Unmodified-Since:请求资源在字段值内指定的时间之后,未发生更新时处理请求;否则返回412;
14)Max-Forwards:指定可经过服务器的最大数目;
值为0时,不再进行转发,直接返回响应;
15)Proxy-Authorization:告知服务器认证需要的信息;
16)Range:只获取范围内的资源;
处理请求后返回206;无法处理请求时返回200以及全部资源;
17)Referer:告知服务器请求的原始资源的URI;
18)TE:告知服务器客户端能够处理响应的传输编码方式及其对应的优先级;
19)User-Agent:传送创建请求的浏览器和用户代理名称等信息给服务器;

6.5 响应首部字段
1)Accept-Ranges:告知服务器能否处理范围请求;
Accept-Ranges:bytes 可以处理范围请求
Accept-Ranges:none 不能处理范围请求
2)Age:告知客户端,源服务器在多久前创建了响应;
3)ETag:告知客户端实体标识;
资源更新时,ETag值也需要更新;
4)Location:将响应接收方引导至某个与请求URI位置不同的资源;
5)Proxy-Authenticate:把代理服务器要求的认证信息发送给客户端;
6)Retry-After:告知客户端多久后再次发送请求;
响应码为503,或者3XX;
7)Server:告知客户端当前服务器上安装的HTTP服务器应用程序的信息;
8)Vary:对缓存进行控制,源服务器向本地服务器传达关于本地缓存使用方法的命令;
9)WWW-Authenticate:用于HTTP访问认证;响应码为401;

6.6 实体首部字段
1)Allow:通知客户端能够支持的Request-URI指定资源的所有HTTP方法;
服务器收到不支持的HTTP方法时,返回状态码405;
2)Content-Encoding:告知客户端服务器对实体的主体部分选用的内容编码方式;主要方式有gzip\compress\deflate\identity;
3)Content-Language:告知客户端实体部分使用的自然语言;
4)Content-Length:表明实体主体部分的大小;实体内容部分如果使用了编码,则不再使用这个字段;
5)Content-Location:给出与报文主体相对应的URI;
6)Content-MD5:存储一段值,用来检验报文主体是否完整传输到终点;
7)Content-Range:针对范围请求,返回响应时使用的首部字段;
8)Content-Type:说明了实体主体内对象的媒体类型;
9)Expires:告知客户端资源失效的时间;
10)Last-Modified:指明资源最终修改的时间;

6.7 为Cookie服务的首部字段
1)Set-Cookie:当服务器准备开始管理客户端的状态时,会实现告知各种信息;
Set-Cookie字段属性:
Set-Cookie字段属性
2)Cookie:当客户端想获得HTTP状态管理支持时,会在请求中包含从服务器接收到的Cookie;

6.8 其他首部字段
1)

猜你喜欢

转载自blog.csdn.net/jingjingliang1995/article/details/81510900