RFC 2616 Fielding

8月 14th, 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中未定义的标头字段。

缓存控制指令可以分为以下一般类别:

      -对可缓存内容的限制;这些只能由
        原始服务器。
      -对缓存可能存储的内容的限制;这些可能是
        由原始服务器或用户代理强加。
      -修改基本到期机制;这些可能是
        由原始服务器或用户代理强加。
      -控制缓存重新验证和重新加载;这些可能只是
        由用户代理强加。
      -控制实体的转换。
      -扩展缓存系统。

https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

Tags:
尚无评论.

留言回复