For my site, Firefox 32.0 seems not to cache a CSS file of my Nikola 7.1.0 installation and ignores the 304 Not Modified response by the webserver. What also puzzles me, is that it sends the 2nd request with a different Accept: header.
Chrome 37.0 does not show this behaviour and only requests the file once.
The first HTTP request Firefox sends is:
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 And the next HTTP request is:
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 … (I actually replayed this using HTTPie, because Firefox does not allow to copy the server response as a whole. Copying the request headers is possible by clicking "Edit and Resend".)
What could be reasons for that behaviour? Does Firefox offer a way to see the reason for a HTTP request? (What Chrome calls "initiator".)
Please have a look at my Screenshot of the Network section of the Firefox Developer Toolbar to see an overview of all requests in the timeline:
