在调用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中重新加载。有什么建议?我错过了什么?
更新了标题:
答案 0 :(得分:1)
比较您缺少的标头Last-Modified
字段。在您的回复中设置此字段很可能会导致浏览器下次使用If-Modified-Since
请求标头字段请求图片。
如果没有更改,您可以使用304 Not Modified
回复。
另外,您可以使用E-Tag
代替Last-Modified
标题,以便更好地满足您的需求。
但我想知道你的图像没有像你那样被缓存。据我所知,你正在进行最激进的缓存,因此大多数浏览器都不会要求更新版本,直到expires
导致完全没有请求。这是最具侵略性的缓存。
未缓存的一个原因可能是您调用servlet的URL。它看起来像什么?