HTTP缓存,浏览器weirdeness和其他一切!

时间:2008-11-28 18:28:12

标签: http caching http-headers

昨天我试图认真地正确缓存一些PHP生成的页面(想想“带注释的文章”)。大失败。

长话短说:我设置了ETag标题,设置了Last-Modified标题,并检查每个文章浏览器请求的服务器端,看看我是否可以发回304。

问题很简单:浏览器(尝试使用FF 3,到目前为止),经过1或2次重新加载后,突然停止检查页面的新鲜度并使用其缓存副本。

根据我的理解,使用ETag和Last-Modified,浏览器必须在每次请求时检查服务器(否则,为什么我们应该使用ETag?)。

我还尝试使用Cache-Control或Expires ...没有。不管怎样,浏览器停止检查,或者不发回ETag ......

我真的很沮丧......有没有人碰巧把这件东西整理好了?

2 个答案:

答案 0 :(得分:3)

如果您希望浏览器重新验证,则应始终设置“过期”。

Firefox3检查是基于“Expires”标头。 如果它丢失了,firefox3将构成一个到期日期。

参考,Difference betwwen firefox and ie cacheing

答案 1 :(得分:-2)

您可以在

检查当前的FF缓存条目
about:cache

这将显示FF存储在每个缓存条目中的过期日期。