HTTP通用首部字段

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

Cahche-Control

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

Cache-Control:max-age=0, private, must-revalidate

缓存请求指令

指令 参数 说明
no-cache 强制向原服务器再次验证
no-store 不缓存请求或响应的任何内容
max-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值
cache-extension - 新指令标记(token)
s-maxage = [秒] 必需 公共缓存服务器响应的最大Age值
Connection

Connection首部字段具备如下两个作用:

  • 控制不在转发给代理的首部字段

GET / HTTP/1.1
Upgrade: HTTP/1.1
Connection: Upgrade

经过代理服务器到达原服务器(首部字段Upgrade被删除在转发)

GET / HTTP/1.1

  • 管理持久连接
    HTTP/1.1 版本默认是持久连接的,为此客户端会在持久连接上连续发送请求,当服务器端想明确断开连接时,则指定Connection首部字段的值为Close.如果想在旧版本的HTTP协议上维持持续连接时,则需指定Connection首部字段的值为Keep-Alive
Date

表明创建HTTP报文的日期和时间

Pragma

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

Trailer

首部字段Trailer会事先说明在报文主体后记录了哪些首部字段。该首部字段可应用在HTTP/1.1版本分块传输编码时

Transfer-Encoding

首部字段Transfer-Encoding规定了传输报文主体时采用的编码方式
HTTP/1.1的传输编码方式仅对分块传输编码有效
Transfer-Encoding 可选值有:chunked,identity ;

Upgrade

首部字段Upgrade用于检测HTTP协议及其他协议是否可以使用更高版本进行通信,其参数值可以用来指定一个完全不同的通信协议
对于附有首部字段Upgrade的请求,服务器可用101Switching Protocols 状态码作为响应返回

Via

使用首部字段Via 是为了追踪客户端与服务器之间的请求和响应报文的传输路径
报文经过代理和网关时,会先在首部字段Via中附加该服务器的信息,然后在进行转发

Warning

HTTP/1.1的Warning 首部字段是从HTTP/1.1 的响应首部(Retry-After)演变过来的。该首部通常会告知用户一些与缓存相关的问题警告

你可能感兴趣的:(HTTP通用首部字段)