Michael
Michael

Reputation: 4461

Difference of 304 and 200 (from disk cache)

nginx version: nginx/1.14.0 (Ubuntu)

Trying to study how to deal with browser cache.

Could you explain to me why in case of html the browser sent request to the server, whereas in case of css it didn't?

In other words, why in case of html we have 304, but in case of css we have 200 (from disk cache)?

enter image description here

enter image description here

Upvotes: 2

Views: 808

Answers (1)

Kevin Christopher Henry
Kevin Christopher Henry

Reputation: 48952

The server didn't provide any information to the browser on how long to cache its resources. (That is, it didn't include Cache-Control or Expires headers.) Therefore the browser is free to come up with its own heuristic freshness, as described in RFC 7234:

Since origin servers do not always provide explicit expiration times, a cache MAY assign a heuristic expiration time when an explicit time is not specified, employing algorithms that use other header field values (such as the Last-Modified time) to estimate a plausible expiration time.

Presumably the browser assigned a longer freshness time to the static CSS resource than it did to the HTML page. Which makes sense.

If you care how your resources are cached, the answer is simple—provide explicit direction using the appropriate cache headers.

Upvotes: 4

Related Questions