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

时间:2011-06-08 13:18:51

标签: http caching

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

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

response_is_fresh = (freshness_lifetime > current_age)

current_age 可以来自 max-age Expires 标头,这两者都与本地时钟无关。但是, fresh_lifetime 的计算取决于本地时钟。

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

由于

1 个答案:

答案 0 :(得分:2)

他们的时钟不必同步,但客户端需要一个工作时钟才能确定缓存资源的年龄并将其与max-age进行匹配。如果响应中不存在max-age,则客户可以通过将 Date Expires 标头相互比较来计算

但是,如果客户端受到极端时钟偏差的影响,则缓存会崩溃并且资源可能会被错误地缓存,因为它们的年龄无法可靠地确定。