如果本地时钟与服务器时钟不一致,浏览器缓存的行为如何?

Mor*_*eng 7 caching http

在阅读http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html时,我发现缓存算法比我想象的要复杂得多.

根据RFC2616,如果响应是新的,则发送HTTP请求.和

response_is_fresh = (freshness_lifetime > current_age)
Run Code Online (Sandbox Code Playgroud)

current_age可以源自最大年龄过期头,这既无关本地时钟.但是,fresh_lifetime的计算取决于本地时钟.

因此,如果浏览器的本地时钟与服务器端的时钟不一致.是否有可能HTTP缓存不能免除不必要的请求发送?

谢谢

Mar*_*tin 2

它们的时钟不必同步,但客户端需要一个工作时钟才能确定缓存资源的寿命并将其与max-age. 如果max-age响应中不存在,客户端可以通过比较DateExpires标头来计算它。

然而,如果客户端遭受极端的时钟偏差,缓存就会崩溃,并且资源可能会被错误地缓存,因为无法可靠地确定资源的寿命。