Firefox 4.0.1忽略过期HTTP标头

时间:2013-10-17 08:06:55

标签: javascript http firefox browser

在我看来,当我从页面A浏览到页面B时,如果B页面在A页面中具有相同的js / css / img / etc资源,浏览器应该使用A页面中的缓存,因为它位于同一会话中,所以这将结束304请求(如果resouces已设置exprie时间,它将不会请求)。

但是,我今天遇到了一个问题。

在Firefox中,当我浏览页面A时,firebug中的瀑布是

waterfall of Page A

但是,当我点击链接转到页面B时,萤火虫中的瀑布是

enter image description here

仍然从服务器下载js / css,而不是302请求。

我的Firefox版本是4.0.1,缓存未禁用。

这种行为在Firefox中是否正确?

2 个答案:

答案 0 :(得分:3)

您的意思是304 Not Modified回复。

您只能在条件请求上获得该响应,如果使用相应的缓存标头响应了对同一URI的先前请求,则只会由浏览器发出该响应。

请参阅示例HTTP CachingA Beginner's Guide to HTTP Cache Headers等。

答案 1 :(得分:1)

我通过添加缓存控制头来解决这个问题。 感谢@CodeCaster的建议。

在我的情况下,所有的js / css都是从Apache下载的。我为这些静态内容设置了expires头。

然而,这个旧版本的Firefox似乎触发了一个奇怪的请求,忽略了expires标记。