缓存控制对不同的浏览器有不同的工作方式?

时间:2015-02-03 03:57:53

标签: node.js http caching cache-control

提供一堆图片。

我在HTTP响应标头中设置Cache-Control: max-age:3000并指定ETag

当客户端请求同一个文件时,我会回复304,因为它们只是图像文件并且是相同的。

也许我误解了缓存,但是:

  1. 客户端之后是否应该只检查新文件 最大年龄段完成了吗?
  2. 客户端是否应该缓存图像并在从服务器收到304时从缓存中显示它?
  3. 在Firefox中它没有做到。在Chome中,它在max-age之前请求该文件,但是当它收到304响应时,它会从缓存中显示该图像。

    服务器是节点服务器。如果您认为有助于更好地回答,我可以分享相关代码。虽然,在这一点上,我正在寻找可能出错的指针/提示。

    我做错了什么,但似乎无法弄清楚是什么。

2 个答案:

答案 0 :(得分:1)

你的语法错了;这是“max-age = 3000”

答案 1 :(得分:1)

如果您使用HTTPS并拥有旧版本的Firefox,则问题可能是由于响应标头中缺少Cache-Control:public。但是,这在几年前得到了解决:

https://bugzilla.mozilla.org/show_bug.cgi?id=531801

Cache-Control:请求标头中的no-cache表示Firefox中的强制刷新(例如,在Windows上使用Ctrl + F5)。您是在强制重新加载页面还是只是在新的Firefox实例中重新访问该页面?

您可以通过转到' about:cache'来检查Firefox缓存中的图像状态。或使用像HttpWatch这样的工具。