我在阅读有关不可变标头的信息,并且偶然发现这篇文章说:
缓存控制:max-age = 365000000,不可变
当支持不可变的客户端看到此属性时,应假定该资源(如果未过期)在服务器上未更改,因此不应为其发送条件重新验证(例如,If-None-Match或If-Modified-Since)以进行检查更新。纠正可能的损坏(例如Firefox中的班次重装)永远不会使用条件重新验证,并且如果您担心不可变对象已损坏,则仍然有意义。
我无法理解此短语“如果未过期,则在服务器上未更改,因此不应发送条件重新验证”
客户端默认情况下,在最大使用期限到期之前不会发送重新验证。
那么,首先定义不可变的是什么呢?
当我重新加载页面时,请求已命中缓存,因为它尚未过期。所以没有重新验证发生,这就是为什么我不了解不变的原因。
取决于浏览器和确切的刷新方法。在Firefox上尝试一下。在Facebook上,它们是从缓存中使用的。其他站点刷新时获得304。