在阅读http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html时,我发现缓存算法比我想象的要复杂。
根据RFC2616,如果响应是新的,则发送HTTP请求。和
response_is_fresh = (freshness_lifetime > current_age)current_age可以从max-age或Expires报头派生,两者都与本地时钟无关。然而,freshness_lifetime的计算依赖于本地时钟。
因此,如果浏览器的本地时钟与服务器端的时钟不一致。HTTP缓存是否可能不免除发送的不必要请求?
谢谢
发布于 2011-07-12 04:31:18
他们的时钟不一定要同步,但客户端需要一个工作时钟才能确定缓存资源的使用时间,并将其与max-age进行匹配。如果响应中没有max-age,客户端可以通过比较和头来计算它们。
然而,如果客户端遭受极端的时钟倾斜,缓存将崩溃,资源可能会被错误地缓存,因为它们的年龄无法可靠地确定。
https://stackoverflow.com/questions/6279319
复制相似问题