缓存控制标头“no-cache, must-revalidate, private”允许浏览器缓存资源,但通过条件请求强制重新验证。这在 FF、Safari 和 Chrome 中按预期工作。
但是,IE7+8 不发送条件请求,即请求标头中缺少“If-Modified-Since”,因此服务器以 HTTP/200 而不是 HTTP/304 响应。
以下是完整的服务器响应标头:
Last-Modified: Wed, 16 Feb 2011 13:52:26 GMT
Content-type: text/html;charset=utf-8
Content-Length: 10835
Date: Wed, 16 Feb 2011 13:52:26 GMT
Connection: keep-alive
Cache-Control: no-cache, must-revalidate, private
这似乎是一个 IE 错误,但我在网络上没有找到任何相关内容,所以我想知道是否存在另一个标题是否会使 IE 行为异常?
很好地讨论了 no-cache 和 max-age之间的区别:Cache-Control: max-age=0 和 no-cache 有什么区别?