Caching 缓存、弱ETag和上次修改的问题

Caching 缓存、弱ETag和上次修改的问题,caching,http-headers,etag,last-modified,Caching,Http Headers,Etag,Last Modified,我在开发一个网站时遇到了一些图片问题。某些图像被正确缓存,其标题似乎正确(强ETag,上次修改正确)。但其他图像具有弱ETag(前面带有W/)和始终等于当前时间的上次修改的标题。有人知道我如何解决这个问题吗?我环顾四周,似乎找不到任何有效的方法。未被缓存的图像是背景图像,每次重新加载页面时都会导致背景闪烁,这很烦人 标题: Accept-Ranges:bytes Connection:Keep-Alive Content-Length:6879 Content-Type:image/jpeg D

我在开发一个网站时遇到了一些图片问题。某些图像被正确缓存,其标题似乎正确(强ETag,上次修改正确)。但其他图像具有弱ETag(前面带有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
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

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

我不确定是什么改变了,但问题似乎已经解决了

标题:

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
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

如果要确保缓存图像,则不能依赖验证头(
last modified
etag
)。为了确保缓存,您需要使用
过期
缓存控制
。只有在缓存过期机制表明内容过时后才使用验证。如果您不使用
Expires
Cache control
标题,则不会定义内容新鲜度,并且仅取决于浏览器的特定实现,因此在您的情况下,它可能会出现意外行为。

这可能是由于您的etag从弱变为强。@JustinY,我现在也有同样的问题。我的两个脚本加载中的一个请求带有强etag的静态图片,另一个请求带有弱etag的静态图片。我无法理解这种情况,因为两个脚本几乎完全相同。你能帮我提个建议吗?