Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fetch images, css, js from cache (with http status 200 (cache) not 304)

Tags:

javascript

I have web page which refers large number of JS, Images files. when teh page is loaded second time, 304 requests goes to the server. I would like to get http 200 (cache) status for cached object rather than 304.

I am using asp.net 4, iis 7.

Setting the Expiry header is not working, it still sends 304 requests. I want http status 200 (cache).

Please let me know if there is any technique for this.

like image 937
user1233802 Avatar asked Jan 22 '26 13:01

user1233802


1 Answers

You've said that setting the expiry doesn't help, but it does if you set the right headers.

Here's a good example: Google's library hosting. Here are the (relevant) headers Google sends back if you ask for a fully-qualified version of a library (e.g., jQuery 1.7.2, not jQuery 1., or jQuery 1.7.):

Date:Thu, 07 Jun 2012 14:43:04 GMT
Cache-Control:public, max-age=31536000
Expires:Fri, 07 Jun 2013 14:43:04 GMT

(Date isn't really relevant, I just include it so you know when the headers above were generated.) There, as you can see, Cache-Control has been set explicitly with a max-age of a year, and the Expires header also specifies an expiration date a year from now. Subsequent access (within a year) to the same fully-qualified library doesn't even result in an If-Modified-Since request to the server, because the browser knows the cached copy is fresh.

This description of caching in HTTP 1.1 in RFC 2616 should help.

like image 60
T.J. Crowder Avatar answered Jan 25 '26 03:01

T.J. Crowder