第八节、HTTP 首部02

目录

  • 目录
    • 通用首部字段
      • Cache-Control
        • 可缓存性
        • 到期
        • 重新验证和重新加载
        • 其他
      • Connection
      • Date
      • Pragma
      • Trailer
      • Transfer-Encoding
      • Upgrade
      • Via
      • warning

通用首部字段


指请求报文和响应报文都会用到的首部。

Cache-Control

通过该指令,能操作缓存的工作机制。指令的参数是可选的,多个指令之间用 “,” 分隔。

Cache-Control指令一览

缓存请求指令

指令 参数 说明
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 可缓存但必须向服务器进行确认
prox-revalidate 要求中间缓存服务器对缓存的响应有效性再进行确认
max-age = [秒] 必需 响应最大 Age 值
s-maxage = [秒] 必需 公共缓存服务器响应的最大 Age 值
cache-extension - 新指令标记(token)


可缓存性

public
表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存。

private
表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)。

no-cache
在释放缓存副本之前,强制高速缓存将请求提交给原始服务器进行验证。

only-if-cached
表明客户端只接受已缓存的响应,并且不要向原始服务器检查是否有更新的拷贝


到期

max-age= [秒]
设置缓存存储的最大周期,超过这个时间缓存被认为过期(单位秒)。与Expires相反,时间是相对于请求的时间。

s-maxage= [秒]
覆盖max-age 或者 Expires 头,但是仅适用于共享缓存(比如各个代理),并且私有缓存中它被忽略。

max-stale(= [秒])
表明客户端愿意接收一个已经过期的资源。 可选的设置一个时间(单位秒),表示响应不能超过的过时时间。

min-fresh= [秒]
表示客户端希望在指定的时间内获取最新的响应。

stale-while-revalidate= [秒]

stale-if-error= [秒]


重新验证和重新加载

must-revalidate
缓存必须在使用之前验证旧资源的状态,并且不可使用过期资源。

proxy-revalidate
与must-revalidate作用相同,但它仅适用于共享缓存(例如代理),并被私有缓存忽略。


其他

no-store
缓存不应存储有关客户端请求或服务器响应的任何内容。

no-transform
不得对资源进行转换或转变。Content-Encoding, Content-Range, Content-Type等HTTP头不能由代理修改。例如,非透明代理可以对图像格式进行转换,以便节省缓存空间或者减少缓慢链路上的流量。 no-transform指令不允许这样做。


Connection

具有如下两个作用

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


Date

表明创建 HTTP 报文的时间。


Pragma

历史遗留字段,向后兼容


Trailer

应用在 HTTP/1.1 版本分块传输编码时。


Transfer-Encoding

规定了传输报文主体时采用的编码方式。


Upgrade

用于检测 HTTP 协议及其他协议是否可使用更高的版本进行通信。


Via

为了追踪客户端与服务器之间的请求和响应报文的传输路径。


warning

通常会告知用户一些与缓存相关的问题的警告。

你可能感兴趣的:(图解HTTP)