指令 | 参数 | 说明 | |||||
缓存请求指令 | |||||||
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) |
类似、互相影响的指令
max-age
请求报文中包含此指令,缓存时间(生命期)数值小于指令指定的值时客户端接收资源。
响应报文中包含此指令,缓存服务器不再对缓存资源进行有效行确认,max-age 指定的值为缓存时间数值。
同时包含max-age、Expires 指令时,HTTP/1.1 版本的服务器优先处理max-age,而HTTP/1.0优先处理Expires。
s-max-age
同时存在s-max-age、max-age和Expires指令时,只处理s-max-age。
此指令只适用于提供多用户使用的公共服务器。对于单一用户重复请求响应的服务器来说,没有用处。
no-cache
不缓存过期资源。
请求报文中包含此指令时表示客户端不接收缓存服务器的资源,需要缓存服务器将请求转发给源服务器。
响应报文中包含此指令时,如果有值(值为头部字段)缓存服务器则不可以缓存此头部字段的值,如果没有值则可以缓存。
no-store
包含此指令时暗示请求或响应中包含机密信息,不允许缓存服务器在本地存储任意部分。
must-revalidate
代理服务器会向源服务器验证即将返回的响应缓存的资源有效性,若无法连通则返回504
此指令和max-stale共存时,max-stale会失效。
max-stale
没有指定具体数值,无论经过多久客户端都会接收,即使资源过期。
指定具体数值,即使资源过期,只要仍处于数值时间内的,仍旧会被接收。
min-fresh
响应时间小于当前时间加指定时间。
小明只签收3天内到货的快件。
响应时间:到货日期。
指定时间:3天。
当前时间:当前时间。