图解http:第六章http首部

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值