# 通用首部字段

# Cache-Control

通过Cache-Control的指令,可以操作缓存。

缓存请求指令:

指令 参数 说明
no-cache 经过缓存服务器,缓存服务器必须向原服务器验证缓存是否过期
no-store 缓存服务器不能缓存请求的任一部分
max-age=[秒] 必需 若缓存服务器缓存的时间小于max-age,则返回缓存的资源
max-stale(=[秒]) 可省略 允许接收过期缓存,过期时间在max-stale内的缓存都接受,默认时间是无限
min-fresh=[秒] 必需 在min-fresh之后未过期则缓存服务器可返回缓存
no-transform 缓存不能改变实体主体的媒体类型,防止缓存压缩图片等
only-if-cached 仅在缓存服务器有缓存的时候才返回

缓存响应指令

指令 参数 说明
public 缓存服务器可以缓存资源
private 可省略 仅对特定用户提供资源缓存,对其他用户不会返回缓存
no-cache 可省略 缓存代理和客户端可以缓存,下次使用时需要先询问是否过期
no-store 不能进行缓存
no-transform 缓存不能改变实体主体的媒体类型,防止缓存压缩图片等
must-revalidate 可以缓存但是下次使用必须先询问是否过期
proxy-revalidate 针对缓存服务器,可以缓存,使用缓存是先询问是否过期
max-age=[秒] 必需 max-age时间内不需要询问是否过期
s-maxage=[秒] 必需 针对缓存服务器的max-age

# Connection

Connection首部字段有两个作用:

  • 控制不再转发的首部字段。代理遇到Connection,不再转发Connection指定的首部
  • 管理持久连接。HTTP/1.1默认是持久连接,所以会有Connection:Keep-Alive

# Date

Date首部表明创建报文的时间

# Pragma

旧版本的遗留字段,应使用Cache-Control代替

# Trailer

分块传输时使用

# Transfer-Encoding

分块传输时使用

# Upgrade

询问是否可以使用其他通信协议

# Via

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

报文经过代理时会在Via中附加该服务器的信息然后再进行转发

经常会和Trace方法一起使用

# Warning

Warning包含报文当前状态可能存在的问题