缓存,弱Etags和最后修改的问题

时间:2010-12-15 07:55:01

标签: caching http-headers etag last-modified

我正在开发一个网站上的一些图片时遇到问题。正确缓存了一些图像并且它们的标题看起来是正确的(强etags,正确的最后修改)。但是其他图像的弱etags(以W /开头)和最后修改的标题总是等于当前时间。有谁知道如何解决这个问题?我环顾四周,似乎找不到任何有用的东西。未缓存的图像是背景图像,它会在每次重新加载页面时导致背景闪烁,这很烦人。

接头:

Accept-Ranges:bytes
Connection:Keep-Alive
Content-Length:6879
Content-Type:image/jpeg
Date:Wed, 15 Dec 2010 07:41:44 GMT
Etag:W/"4e863ea-1adf-49772cd85b340"
Keep-Alive:timeout=15, max=98
Last-Modified:Wed, 15 Dec 2010 07:41:44 GMT
Server:Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch

提前感谢您的帮助。我不是这类东西的专家,所以如果我遗漏了一些明显的东西,我会道歉。

2 个答案:

答案 0 :(得分:1)

如果您希望确保缓存图片,则不能依赖验证标题(last-modifiedetag)。为确保缓存,您需要使用ExpiresCache-control。仅在缓存过期机制表明内容过时后才使用验证。如果您不使用ExpiresCache-control标头,则内容新鲜度未定义,仅取决于浏览器的具体实现,因此在您的情况下,它可能会出现意外行为。

答案 1 :(得分:0)

我不确定发生了什么变化,但看起来问题已经消失了。

接头:

Accept-Ranges:bytes
Connection:Keep-Alive
Content-Length:6879
Content-Type:image/jpeg
Date:Wed, 15 Dec 2010 16:46:14 GMT
Etag:"4e863ea-1adf-49772cd85b340"
Keep-Alive:timeout=15, max=99
Last-Modified:Wed, 15 Dec 2010 13:20:37 GMT
Server:Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch