【问题标题】:Etags and last-modified over https SSL?Etags 和 last-modified over https SSL?
【发布时间】:2013-10-06 17:42:19
【问题描述】:

是否可以通过安全的 HTTPS 连接对条件 GET 请求使用 HTTP 缓存?我已经通过非安全 HTTP 进行缓存,但是当我切换到 HTTPS 时,浏览器停止发送 if-none-match 和 if-modified-since 标头,因此缓存中断。我尝试了各种 Cache-Control 设置,例如 public、max-age=3600 等等,没有骰子。

这在 Safari 和 Chrome 中都会发生,所以我假设 SSL 以某种方式破坏了它。是否不允许通过 SSL 进行缓存?

为了清楚起见,server 确实正确设置了 etag 和 last-modified 标头,但 browser 没有发送 if-none-match 和 if -modified-since 在请求中,根据 Chrome 开发者工具。

感谢您的帮助。

【问题讨论】:

    标签: caching ssl etag last-modified http-caching


    【解决方案1】:

    想通了!原来你必须有一个受信任的证书。我正在为 SSL HTTPS 使用我的自签名测试证书。将其添加到我的钥匙串并将其变为绿色后,缓存就可以工作了。

    【讨论】:

    • 刚刚注意到同样的事情; chrome 没有将 etags 发送到服务器以获取某些资源。我在一个测试站点上使用我的生产 SSL 证书,所以它有一个很大的交叉。我必须添加一个 /etc/hosts 条目并使用生产域名进行尝试。
    • 我已经将我的自签名证书添加到 chrome,现在我得到了绿色挂锁,但是仍然没有 If-Modified-Since with Chrome 33(适用于 FF27)——自签名证书仍然给出消息:“但没有公共审计记录”——看起来 chrome 在任何 SSL 错误的情况下都不会缓存:code.google.com/p/chromium/issues/detail?id=110649
    • Oof 取消了...刚刚重新启动了我的 chrome 33,现在一切都很好!所以绿色挂锁,即使是“没有公共审计记录”也可以。
    猜你喜欢
    • 2011-03-03
    • 2011-07-16
    • 1970-01-01
    • 2020-08-04
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    相关资源
    最近更新 更多