温馨提示:本文翻译自stackoverflow.com,查看原文请点击:caching - Cache-control Immutable Header
cache-control caching header http-headers

caching - 缓存控制不可变标头

发布于 2020-06-28 10:12:44

我在阅读有关不可变标头的信息,并且偶然发现这篇文章说:

缓存控制:max-age = 365000000,不可变

当支持不可变的客户端看到此属性时,应假定该资源(如果未过期)在服务器上未更改,因此不应为其发送条件重新验证(例如,If-None-Match或If-Modified-Since)以进行检查更新。纠正可能的损坏(例如Firefox中的班次重装)永远不会使用条件重新验证,并且如果您担心不可变对象已损坏,则仍然有意义。

资源

我无法理解此短语“如果未过期,则在服务器上未更改,因此不应发送条件重新验证”

客户端默认情况下,在最大使用期限到期之前不会发送重新验证。

那么,首先定义不可变的是什么呢?

查看更多

提问者
George Paouris
被浏览
28
Barry Pollard 2020-04-06 13:42

人们按下刷新按钮。

Facebook首先提出了这个不变的缓存控制指令,在此方面有一篇很好的文章,介绍了它如何为他们节省了大量请求,包括以下报价:

重新加载的问题

存在浏览器的重新加载按钮,以允许用户获取当前页面的更新版本。为了实现此目标,当您重新加载时,浏览器将重新验证您当前所在的页面,即使该页面尚未过期也是如此。但是,它们也走得更远,并重新验证页面上的所有子资源-诸如图像和JavaScript文件之类的东西。