图解http:第六章http首部

本文详细介绍了HTTP/1.1中的首部字段,包括通用首部字段如Cache-Control及其子指令no-cache、max-age,以及Connection字段在管理持久连接中的作用。同时,讲解了End-to-end和Hop-by-hop首部的区别,以及如何通过Via字段追踪请求和响应的传输路径。

在这里插入图片描述
在这里插入图片描述

HTTP/1.1 首部字段一览

HTTP/1.1 规范定义了如下 47 种首部字段。
在这里插入图片描述
6-2:请求首部字段在这里插入图片描述在这里插入图片描述
在这里插入图片描述

除此之外还有很多经常使用的在RFC中定义的首部字段如:Cookie,Set-Cookie和Content-Disposition.这些都被归纳到RFC4229 HTTP Header Field Registrations

End-to-end 首部和 Hop-by-hop首部

端到端(End-to-end):分类到这个类的首部一定会被转发给对应的最终接收目标,且必须保存在由缓存产生的响应。
逐跳首部(Hop-By-Hop):只对单次转发有效,会因为通过缓存或代理不再转发。HTTP/1.1后的版本,如果要使用这个,要提供Connection首部字段。有这八个首字段属于:
Connection Keep-Alive Proxy-Authenticate Proxy-Authorization
Trailer TE Transfer-Encoding Upgrade …
字段详解

通用首部字段

这意味着能分别在请求报文和响应报文中使用。

Cache-Control

指令的参数是可选的, 多个指令之间通过“,”分隔。 首部字段 CacheControl 的指令可用于请求及响应时。
如:
Cache-Control: private, max-age=0, no-cache
在这里插入图片描述
在这里插入图片描述

no-cache:

使用 no-cache 指令的目的是为了防止从缓存中返回过期的资源。 客户端发送的请求中如果包含 no-cache 指令,则表示客户端将不会接 收缓存过的响应。于是,“中间”的缓存服务器必须把客户端请求转发 给源服务器。
如果服务器返回的响应中包含 no-cache 指令,那么缓存服务器不能对 资源进行缓存。源服务器以后也将不再对缓存服务器请求中提出的资 源有效性进行确认,且禁止其对响应资源进行缓存操作。

max-age:

当客户端发送的请求中包含 max-age 指令时,如果判定缓存资源的缓 存时间数值比指定时间的数值更小,那么客户端就接收缓存的资源。 另外,当指定 max-age 值为 0,那么缓存服务器通常需要将请求转发 给源服务器。

Connection

控制不再转发给代理的首部字段
管理持久连接

如:Connection: Keep-Alive

Via

使用首部字段 Via 是为了追踪客户端与服务器之间的请求和响应报文 的传输路径。
报文经过代理或网关时,会先在首部字段 Via 中附加该服务器的信 息,然后再进行转发。这个做法和 traceroute 及电子邮件的 Received 首部的工作机制很类似。
首部字段 Via 不仅用于追踪报文的转发,还可避免请求回环的发生。 所以必须在经过代理时附加该首部字段内容。

Warning
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值