对于我的网站,Firefox 32.0 似乎不会缓存我安装的 Nikola 7.1.0 的 CSS 文件,并忽略了304 Not Modified
Web 服务器的响应。令我困惑的是,它发送了带有不同Accept:
标头的第二个请求。
Chrome 37.0 不会出现这种行为,并且仅请求该文件一次。
Firefox 发送的第一个 HTTP 请求是:
GET /assets/css/all-nocdn.css HTTP/1.1
Accept: text/css,*/*;q=0.1
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en;q=0.5
Authorization: …
Cache-Control: max-age=0
Connection: keep-alive
Host: …
If-Modified-Since: Mon, 14 Jul 2014 09:12:55 GMT
If-None-Match: "2838446235"
Referer: …
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0
HTTP/1.1 304 Not Modified
Content-Type: text/css
Date: Fri, 12 Sep 2014 07:18:02 GMT
ETag: "2838446235"
Last-Modified: Mon, 14 Jul 2014 09:12:55 GMT
Server: lighttpd/1.4.35
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Vary: Accept-Encoding
下一个 HTTP 请求是:
GET /assets/css/all-nocdn.css HTTP/1.1
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
Authorization: …
Cache-Control: no-cache
Connection: keep-alive
Host: …
Pragma: no-cache
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Encoding: gzip
Content-Length: 22700
Content-Type: text/css
Date: Fri, 12 Sep 2014 07:26:42 GMT
ETag: "2838446235"
Last-Modified: Mon, 14 Jul 2014 09:12:55 GMT
Server: lighttpd/1.4.35
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Vary: Accept-Encoding
…
(我实际上用HTTPie,因为 Firefox 不允许复制整个服务器响应。可以通过单击“编辑并重新发送”来复制请求标头。)
这种行为可能是什么原因造成的?Firefox 是否提供了一种查看 HTTP 请求原因的方法?(Chrome 称之为“发起者”。)
请查看我的Firefox 开发者工具栏网络部分的屏幕截图查看时间线中所有请求的概览: