【发布时间】:2012-04-19 21:43:45
【问题描述】:
我希望浏览器始终添加(第一次除外)“If-Modified-Since”请求标头以避免不必要的流量。
响应头是:
Accept-Ranges:bytes
Cache-Control:max-age=0, must-revalidate
Connection:Keep-Alive
Content-Length:2683
Content-Type:text/html; charset=UTF-8
Date:Thu, 05 Apr 2012 13:06:19 GMT
Keep-Alive:timeout=15, max=497
Last-Modified:Thu, 05 Apr 2012 13:05:11 GMT
Server:Apache/2.2.21 (Red Hat)
FF 11 和 IE 9 都发送“If-Modified-Since”并得到 304 作为响应,但 Chrome 18 没有并得到 200。
为什么?如何强制 Chrome 发送“If-Modified-Since”标头? 我不知道它是否重要,但所有请求都通过 HTTPS。
【问题讨论】:
-
归根结底,取决于浏览器和任何中间缓存,它们是否将实际缓存内容(您可以控制它们是否应该)。您将无法 100% 阻止用户代理重新请求内容。
-
我注意到 Chrome 不会发送 If-Modified-Since 标头,除非响应是 gzip'd。我不确定这是否是一种真实的模式,或者只是我尝试处理更新 JS 文件的经验。
-
发送 Keep-Alive 有什么特别的原因吗?