Geo*_*ris 9 caching header cache-control http-headers
我正在阅读有关不可变标头的内容,我发现这篇文章说:
缓存控制:max-age=365000000,不可变
当支持不可变的客户端看到此属性时,它应该假设该资源(如果未过期)在服务器上未更改,因此不应为其发送条件重新验证(例如 If-None-Match 或 If-Modified-Since)来检查更新。纠正可能的损坏(例如 Firefox 中的移位重新加载)从不使用条件重新验证,如果您担心不可变对象已损坏,那么对它们进行处理仍然有意义。
我无法理解这句话“如果未过期,则在服务器上未更改,因此不应发送有条件的重新验证”
默认情况下,客户端在 max-age 到期之前不会发送重新验证。
那么首先定义不可变的意义何在呢?
Bar*_*ard 10
人们按下刷新按钮。
\n\nFacebook 是第一个提出这个不可变缓存控制指令的人,对此有一篇很好的文章,介绍了它如何为他们节省了大量的请求,包括以下引用:
\n\n\n\n重新加载的问题
\n\n浏览器\xe2\x80\x99s 重新加载按钮的存在是为了允许用户获取当前页面的更新版本。为了实现此目标,当您重新加载时,浏览器会重新验证您当前所在的页面,即使该页面尚未过期。然而,他们还更进一步\n并重新验证页面\xe2\x80\x94上的所有子资源,例如图像和\n JavaScript文件。
\n