我正在阅读有关不可变标头的信息,偶然发现这篇文章是:
缓存控制:max-age = 365000000,不可变
当支持不可变的客户端看到此属性时,应该 假设该资源(如果未过期)在服务器上是不变的,并且 因此,不应为此发送有条件的重新验证(例如 If-None-Match或If-Modified-Since)以检查更新。改正 永远不会使用可能的损坏(例如Firefox中的班次重新加载) 有条件的重新验证,并且与不可变有关仍然有意义 对象,如果您担心它们已损坏。
我无法理解此短语“如果未过期,则在服务器上未更改,因此不应发送条件重新验证”
在默认情况下,客户端不会发送重新验证,直到max-age到期为止。
那么,首先要说明的一点是不变的?
答案 0 :(得分:2)
人们按下刷新按钮。
最初提出此不变的缓存控制指令的Facebook,有good post on this关于如何为他们节省大量请求的信息,包括以下引号:
重新加载的问题
存在浏览器的重新加载按钮,以允许用户获取更新 当前页面的版本。为了达到这个目标,当您 重新加载,浏览器将重新验证您当前所在的页面,甚至 如果该页面尚未过期。但是,他们也走得更远 并重新验证页面上的所有子资源(例如图片和 JavaScript文件。