1

在监视浏览器和服务器之间的网络通信时,我注意到了一些有趣的事情。它与缓存有关。

假设我有一个 CSS 文件http://domain.com/main.css(用于不安全页面),也可以通过https://domain.com/main.css访问(用于安全页面)。

  1. 当我第一次加载一个不安全的页面时,CSS 文件会得到一个200 OK. 当我重新加载页面(或转到另一个不安全的页面)时,我得到一个304 Not Modified.
  2. 当我第一次访问安全页面时,来自 https 源的 CSS 文件会获得一个200 OK. 当我重新加载页面(或转到另一个安全页面时,我得到一个304 Not Modifie.
  3. 当我返回到不安全的页面时,CSS 文件仍然得到一个304 Not Modified.
  4. 当我返回到受保护的页面时,CSS 文件得到一个200 OK. 缓存的副本发生了什么?我怎样才能让它缓存?
4

1 回答 1

1

可能会回答你的问题。您的网站可能会通过以下方式将此资源定义为不可缓存:

Cache-Control   private, must-revalidate, max-age=0

例如(访问https://www.google.com/ncr时)导致您的浏览器不缓存它。你有 Fire-bug\Fiddler 或类似的东西来查看响应头吗?

于 2012-09-24T14:46:36.620 回答