3 ms·
The difference is that in the case of immutable the browser does not send a 304 conditional.
by jjoe 10y ago
The difference is that in the case of immutable the browser does not send a 304 conditional.
- duskwuff 10y agoReally? The article implies that the whole point of Immutable is that the browser won't revalidate contents. (Also, "304" is an HTTP response code -- "Not Modified" -- not something the browser sends.)
- jjoe 10y agoMeant to say that there's no conditional with immutable. Corrected, thanks.
- duskwuff 10y agoI still don't think that's accurate. My experience is that a future Expires date -- even relatively near-future -- is sufficient to prevent an If-Modified-Since request. (Which is what I think you mean by "304 request".)
- jjoe 10y agoIt's up to the client to decide based on Last-Modified (if previously sent by the server) and its own implementation. But I guess browsers are going to be a tad bit aggressive especially if Last-Modified is absent. Hence the overly aggressive 304s.
- bzbarsky 10y agoFor normal loads, yes. The problem people are trying to solve here is that users hit the relaod button. A lot. And if you hit the reload button, that will send If-Modified-Since for everything on the page, no matter what Expires says, because the user intent is to ignore Expires headers. That's what the immutable thing is about: indicating that even in the reload scenario the Expires is authoritative and no If-Modified-Since request should be sent.
- duskwuff 10y agoAha. The forced If-Modified-Since on reload is the piece I was missing. Thanks.