图解HTTP:通用首部字段

通用首部字段是指请求报文和响应报文双方都会使用的首部。

  • Cache-Control

通过指定首部字段Cache-Control的指令能操作缓存的工作机制。

Client: 如果有新缓存请给我~ 
Server: 我希望你不要对此做缓存......

指令的参数是可选的,多个指令之间通过,分割。

Cache-Control: private, max-age=0, no-cache

缓存请求指令

指令参数说明
no-cache强制向源服务器再次验证
no-store不缓存请求或响应的任何内容
max-age必需响应的最大Age值
max-stale可省略接受已过期的响应
min-fresh必需期望在指定时间内的响应仍有效
no-transform代理不可更改媒体类型
only-if-cached从缓存获取资源
cache-extension-新指令标记(token)

缓存响应指令

指令参数说明
public可向任意方提供响应的缓存
private可省略仅向特定用户返回响应
no-cache可省略缓存前必须先确认其有效性
no-store不缓存请求或响应的任何内容
no-transform代理不可更改媒体类型
must-revalidate可缓存但必须再向源服务器进行确认
proxy-revalidate要求中间缓存服务器对缓存的响应有效性再进行确认
max-age必需响应的最大Age值
s-maxage必需公告缓存服务器响应的最大Age值
cache-extension-新指令标记(token)

当使用s-maxage指令后直接忽略对Expires首部字段及max-age指令的处理。

应用HTTP/1.1版本的缓存服务器遇到同时存在Expires首部字段的情况时,会优先处理max-age指令,而忽略掉Expires首部字段。

使用must-revalidate指令会忽略请求的max-stale指令。

  • Connection

Connection首部字段具备两个作用:控制不再转发给代理的首部字段、管理持久连接。

Connection: 不再转发的首部字段名/close

HTTP/1.1版本的默认连接都是持久连接。

  • Date

HTTP/1.1协议使用在RFC1123中规定的日期时间的格式:

Date: Tue, 11 Jun 2019 18:12:57 GMT
  • Pragma

Pragma是HTTP/1.1之前版本的历史遗留字段,仅作为与HTTP/1.0的向后兼容而定义。

规范定义的形式唯一: Pragma: no-cache

该首部字段属于通用首部字段,但只用于在客户端发送的请求中。客户端要求所有的中间服务器不返回缓存的资源。

Client: 我不接受缓存
  • Trailer
Client: 在报文的最后写了很重要的东西,记得要仔细阅读哦

该首部字段可应用在HTTP/1.1版本分块传输编码时。

  • Transfer-Encoding
Client: 用这种传输编码方式发送哦

HTTP/1.1的传输编码方式仅对分块传输编码有效。

  • Upgrade
Client: 能让我使用这个协议吗?

使用首部字段Upgrade时还需要额外指定Connection: Upgrade。Upgrade首部字段产生作用的Upgrade对象仅限于客户端和邻接服务器之间。

  • Via

使用首部字段Via是为了追踪客户端与服务器之间的请求和响应报文的传输路径。首部字段Via不仅用于追踪报文的转发,还可避免请求回环的发生。所以必须在经过代理时附加该首部字段内容。

Via首部是为了追踪传输路径,所以经常会和TRACE方法一起使用。

  • Warning

HTTP/1.1的Warning首部是从HTTP/1.0的响应首部(Retry-After)演变过来的。

Warning首部的格式如下: Warning: [警告码][警告的主机: 端口号]"[警告内容]"([日期时间])

HTTP/1.1中定义了7种警告。

警告码警告内容说明
110Response is stale代理返回已过期的资源
111Revalidation failed代理再验证资源有效性时失败(服务器无法到达等原因)
112Disconnection operation代理与互联网连接被故意切断
113Heuristic expiration响应的使用期超过24小时(有效缓存的设定时间大于24小时的情况下)
199Miscellaneous warning任意的警告内容
214Transformation applied代理对内容编码或媒体类型等执行了某些处理时
299Miscellaneous persistent warning任意的警告内容

(最近更新:2019年09月18日)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值