跳到主要内容

5. 头字段定义 (Header Field Definitions)

本节定义了与缓存相关的 HTTP 头字段的语法和语义。

5.1. Age (年龄)

"Age" 头字段传达发送方对自响应在源服务器生成或成功验证以来的时间量的估计。Age 值按第 4.2.3 节中指定的方式计算。

Age = delta-seconds

Age 字段值是非负整数,表示以秒为单位的时间(见第 1.2.1 节)。

Age 头字段的存在意味着该响应并不是由源服务器为此请求生成或验证的。但是,缺少 Age 头字段并不意味着已经联系过源服务器,因为响应可能来自不实现 Age 的 HTTP/1.0 缓存。

5.2. Cache-Control (缓存控制)

"Cache-Control" 头字段用于为请求/响应链上的缓存指定指令。此类缓存指令是单向的,因为请求中存在某个指令并不意味着响应中也要给出同一指令。

缓存必须 (MUST) 遵守本节定义的 Cache-Control 指令的要求。关于如何处理其他地方定义的 Cache-Control 指令,见第 5.2.3 节。

注意:某些 HTTP/1.0 缓存可能不实现 Cache-Control。

无论代理是否实现缓存,都必须 (MUST) 在转发的消息中传递缓存指令,不管这些指令对该应用程序的意义如何,因为指令可能适用于请求/响应链上的所有接收者。无法将指令定向到某个特定缓存。

缓存指令由令牌标识,比较时不区分大小写,并具有可选参数,该参数可以同时使用令牌和带引号字符串语法。对于下文定义且带参数的指令,接收方应该 (ought to) 接受两种形式,即使生成时要求使用特定形式。

Cache-Control = 1#cache-directive

cache-directive = token [ "=" ( token / quoted-string ) ]

对于下文定义的缓存指令,除非另有说明,否则不定义也不允许参数。