为什么我的过期标题不会使我的文件保留在缓存中?

时间:2009-12-08 02:12:48

标签: firefox caching

我正在为我的静态文件使用有效的expires和no-cache标头,并且只要我一直浏览它们就会保持缓存状态,但是当我关闭浏览器并在一段时间后再使用它时,我会看到静态文件再次加载,即使不用ctrl(+ shift)+ r

刷新

我正在使用Firefox,缓存大小设置为250MB,我不会删除任何私有或缓存数据。

  

接头:   Accept-Ranges:字节   缓存控制:max-age = 29030400,public   内容长度:142061   内容类型:image / png   日期:2009年12月8日星期二19:18:43 GMT   到期日:2010年11月9日星期二19:18:43 GMT   最后修改时间:太阳报,2009年1月18日18:33:48 GMT   服务器:Apache / 2.2.14(EL)

1 个答案:

答案 0 :(得分:2)

哪个版本的Firefox?服务器是否为静态文件发送Etags?您可以通过转到地址 about:cache 并查看来查看有关Firefox缓存的详细信息。这将让您了解Firefox的缓存方式。

更新:查看标题标记后,似乎 max-age 值设置为过去的日期,并且覆盖了在此处设置的值过期标头。请参阅:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3上的HTTP 1.1协议定义。

  

如果回复包含过期   header和max-age指令,   max-age指令覆盖了   过期标题,即使过期   标题更具限制性。这个规则   允许原始服务器提供,   对于给定的响应,更长   到期时间到HTTP / 1.1(或   缓存而不是HTTP / 1.0   缓存。如果确定,这可能很有用   HTTP / 1.0缓存不正确地计算   年龄或到期时间,也许是到期日   去同步时钟。

您必须修改服务器发送的 Cache-Control 标头。