为什么 Google Chrome 不在 HTTP 请求中发送 If-None-Match 标头?

Dyl*_*tie 3 firefox google-chrome browser-cache

我正在点击这个网址:

http://www.spotlight.com/photo/~30x50/ffffff/crop/1/M195605.jpg

在 Google Chrome 40.0.2214.115 m 和 Firefox 33.0.2 中

在 Firefox 中,当我按 F5 刷新页面时,它会发送以下请求标头:

Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-GB,en;q=0.5
Cache-Control   max-age=0
Connection  keep-alive
Host    www.spotlight.com
If-None-Match   w/PTxYoQtZLHNE2hqq5W0w==
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Run Code Online (Sandbox Code Playgroud)

在 Chrome 中,我得到这些标头:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Host:www.spotlight.com
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

响应包含 HTTP ETag 标头。在对同一 URL 的后续请求中,Firefox 会发送正确的 If-None-Match ETag 标头,但 Chrome 会发送 Pragma:no-cache 而不是发送 If-None-Match 标头。

知道 Chrome 为何这样做吗?

小智 5

请检查您是否没有选中 chrome 开发工具中的“禁用缓存”在此输入图像描述