【问题标题】:Caching and HTTPS缓存和 HTTPS
【发布时间】:2012-09-16 00:29:13
【问题描述】:

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

假设我有一个 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缓存的副本发生了什么?我怎样才能让它缓存?

【问题讨论】:

    标签: caching http-status-code-301 browser-cache


    【解决方案1】:

    This 可能会回答您的问题。可能是您的网站通过定义此资源将此资源定义为不可缓存:

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

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

    【讨论】:

    • 我的 .htaccess 有这个:ExpiresByType text/css "access plus 10 years",而我的响应标头的过期时间为:Expires:Thu, 22 Sep 2022 22:25:51 GMT。由于指定Expires和Cache-Control是多余的,所以我只使用Expires。
    • 能否粘贴整个标题(响应和请求)?
    • 没关系。我错误地阅读了 Firebug。它说 200 OK 即使它从缓存中获取了资源。
    猜你喜欢
    • 2011-12-11
    • 2012-02-09
    • 1970-01-01
    • 2020-11-15
    • 2017-10-10
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多