关于http:HTTP-头部字段-Cache-Control-maxage-0-和-nocache-的区别

6次阅读

共计 872 个字符,预计需要花费 3 分钟才能阅读完成。

禁掉缓存的状况:申请百度首页

开启缓存的状况下:

仿佛没有什么变动。

再察看申请的头部字段:cache-control: max-age=0

标头 Cache-Control: max-age=0 暗示内容立刻被认为是古老的(并且必须从新获取),这实际上与 Cache-Control: no-cache 雷同。

首先理解 cache-control 的几种可能的值:

  • no-cache: 这会批示浏览器每次应用 URL 的缓存版本之前都必须与服务器从新验证。
  • no-store: 这会批示浏览器和其余两头缓存(如 CDN)从不存储文件的任何版本。
  • private: 浏览器能够缓存文件,但两头缓存 (for example CDN cache) 不能。
  • public: 响应能够由任何缓存存储。

Cache-Control 标头有两个方面。一侧是它能够由网络服务器(又名“原始服务器”)发送的中央。另一端是浏览器能够发送的中央(又名“用户代理”)。

When sent by the origin server

我置信 max-age=0 只是通知缓存(和用户代理)响应从一开始就曾经过期,因而他们应该 (SHOULD) 在应用缓存正本之前从新验证响应(例如,应用 If-Not-Modified 标头).

而 no-cache 通知他们在应用缓存正本之前必须 (MUST) 从新验证。

NO-CACHE 的含意:

缓存不得在没有与源服务器胜利从新验证的前提下,间接应用响应来满足后续申请。这容许源服务器阻止缓存,即便缓存已配置为向客户端申请返回古老的响应。

When sent by the user agent

如果用户代理应用 Cache-Control: max-age=0(又名“端到端从新验证”)发送申请,那么沿途的每个缓存都将从新验证其缓存条目(例如,应用 If-Not-Modified header)始终到源服务器。如果回复是 304(未修改),则能够应用缓存的实体。

另一方面,应用 Cache-Control: no-cache(又名“端到端从新加载”)发送申请不会从新验证,并且服务器在响应时不得应用缓存正本。

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

正文完
 0