RFC 2616 Fielding
14 8 月, 2020
Categories: 新传
14.9缓存控制
Cache-Control general-header字段用于指定指令,请求/响应链中的所有缓存机制都必须遵守这些指令。伪指令指定旨在防止缓存不利地影响请求或响应的行为。这些指令通常会覆盖默认的缓存算法。高速缓存伪指令是单向的,因为在请求中存在伪指令并不意味着在响应中将给出相同的伪指令。
请注意,HTTP / 1.0缓存可能未实现Cache-Control和 可能仅实现Pragma:no-cache(请参阅第14.32节)。
缓存指令必须由代理或网关应用程序传递,无论它们对该应用程序的意义如何,因为这些指令可能适用于请求/响应链中的所有接收者。无法为特定的高速缓存指定高速缓存指令。
Cache-Control =“ Cache-Control”“:” 1#cache-directive
缓存指令=缓存请求指令 | 缓存响应指令
缓存请求指令= “无缓存”;第14.9.1节 | “无存储”;第14.9.2节 | “ max-age”“ =”增量秒;第14.9.3节,14.9.4节 | “ max-stale” [“ =” delta-seconds]; 第14.9.3节 | “ min-fresh”“ =”增量秒;第14.9.3节 | “不变换”;第14.9.5节 | “仅当缓存”;第14.9.4节 | 缓存扩展 第14.9.6节
缓存响应指令= “上市” ; 第14.9.1节 | “ private” [“ =” <“> 1#field-name <”>]; 第14.9.1节 | “ no-cache” [“ =” <“> 1#field-name <”>]; 第14.9.1节 | “无存储”;第14.9.2节 | “不变换”;第14.9.5节 | “必须重新验证”;第14.9.4节 | “代理重新验证”;第14.9.4节 | “ max-age”“ =”增量秒;第14.9.3节 | “ s-maxage”“ =”增量秒;第14.9.3节 | 缓存扩展 第14.9.6节
缓存扩展=令牌[“ =”(令牌|引号字符串)]
当出现没有任何1#field-name参数的指令时,该指令将应用于整个请求或响应。当这样的指令带有1#field-name参数时,它仅适用于一个或多个命名字段,而不适用于请求或响应的其余部分。该机制支持可扩展性。HTTP协议未来版本的实现可能会将这些指令应用于HTTP / 1.1中未定义的标头字段。
缓存控制指令可以分为以下一般类别:
-对可缓存内容的限制;这些只能由 原始服务器。
-对缓存可能存储的内容的限制;这些可能是 由原始服务器或用户代理强加。
-修改基本到期机制;这些可能是 由原始服务器或用户代理强加。
-控制缓存重新验证和重新加载;这些可能只是 由用户代理强加。
-控制实体的转换。
-扩展缓存系统。
Leave a comment
| Trackback