我目前正在发送以下 header :
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"
然后在后续请求中,我希望所有浏览器发送
If-None-Match
包含 ETag
内容的标题这样我就可以在必要时用 304 响应。 Firefox、Safari 和 Opera 都会发回 ETag,但 Chrome 和 Internet Explorer 不会。是否有一些标题组合或缺失值导致 Chrome 和 IE 忽略 ETag?如果我设置
Last-Modified
然后他们都会发送If-Modified-Since
但我需要使用 ETags。
最佳答案
根据此 SO Q&A - Browser support for eTags - Chrome 应该尊重 ETag。
然而正如作者所说:“但是,还有一些其他 header 会阻止这些浏览器尊重 etag ......所以如果它不适合你,我会仔细检查其他 header 在它们发送回客户端时请求资源。”
“日期” header 是否可能导致与 ETag 的问题/冲突?
关于internet-explorer - 为什么 Chrome 和 IE 永远不会发送 If-None-Match 而其他浏览器呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11564360/