【问题标题】:Why would Chrome and IE never send If-None-Match while other browsers do?为什么 Chrome 和 IE 从不发送 If-None-Match 而其他浏览器会发送?
【发布时间】:2012-07-18 20:17:24
【问题描述】:

我目前正在发送以下标头:

Cache-Control: max-age=0
Content-Encoding: gzip
Content-Length: 2929
Content-Type: text/html; charset=utf-8
Date: Thu, 19 Jul 2012 15:29:18 GMT
ETag: "3e34180212ee59fee7e8e4cc512552e5"

然后在后续请求中,我希望所有浏览器都发送带有 ETag 内容的 If-None-Match 标头,以便我可以在必要时以 304 响应。 Firefox、Safari 和 Opera 都会发回 ETag,但 Chrome 和 Internet Explorer 不会。是否存在某些标题组合或缺失值导致 Chrome 和 IE 忽略 ETag?

如果我设置Last-Modified,那么他们都会发送If-Modified-Since,但我需要使用ETags。

【问题讨论】:

  • 已修复?我有同样的错误
  • 我使用的是 Chrome 62.0.3202.94,也有同样的问题。我已经确保没有在“开发者工具”中选中“禁用缓存”。

标签: internet-explorer caching google-chrome


【解决方案1】:

根据这个 SO Q&A - Browser support for eTags - Chrome 应该尊重 ETag。

但是正如作者所说:“但是,还有一些其他标头会阻止这些浏览器尊重 etag...所以如果它不适合您,我会仔细检查其他标头发送回客户端请求资源时。”

“日期”标头是否可能导致与 ETag 的问题/冲突?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-27
    • 2019-08-26
    • 2011-01-07
    • 2014-05-09
    • 1970-01-01
    • 2021-07-05
    • 2012-11-27
    • 2015-06-16
    相关资源
    最近更新 更多