我试图在调用Java Servlet链接时输出图像。当前正在使用以下内容:
response.addHeader("Cache-Control", "max-age=" + CACHE_INTERVAL);
response.addDateHeader("Expires", System.currentTimeMillis() + (1000*CACHE_INTERVAL));但这仍然会导致图像有时从服务器重新加载。相比之下,如果你看一下这个的标签:
http://graph.facebook.com/502547234/picture
它再也不会在Firefox中重新加载了。有什么建议吗?我遗漏了什么?
已更新的标头:
我的:http://i.imgur.com/ikfVL.png
FB:http://i.imgur.com/o0KsM.png
发布于 2011-09-01 17:41:13
比较缺少的头Last-Modified字段。在响应中设置此字段很可能导致浏览器下次使用If-Modified-Since请求标头字段请求图像。
如果没有更改,那么您可以使用304 Not Modified进行响应。
或者,当E-Tag更适合您的需要时,您可以使用Last-Modified头来代替它。
但是我想知道你的图像是不是像你做的那样被缓存了。据我所知,您正在进行最激进的缓存,导致大多数浏览器甚至在expires之前都不会要求更新版本,这导致完全没有任何请求。这是最具侵略性的缓存。
不缓存它的一个原因可能是您调用servlet的URL。它长什么样?
https://stackoverflow.com/questions/7268264
复制相似问题