Mobile app version of vmapp.org
Login or Join
Deb1703797

: HTTP Header Cache Time: s-maxage and max-age I am setting up a CDN for my website, I found the following sample for adding to the 'httpd.conf' file, this is used to adjust the cache-time for

@Deb1703797

Posted in: #Cache #Cdn #Http #HttpdConf #HttpHeaders

I am setting up a CDN for my website, I found the following sample for adding to the 'httpd.conf' file, this is used to adjust the cache-time for client and CDN:

ExpiresActive On
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/js "access plus 1 year"
ExpiresByType application/x-javascript "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType application/x-shockwave-flash "access plus 1 year"

<FilesMatch ".(gif|jpe?g|png|ico|css|js|swf)$">
Header set Cache-Control "s-maxage=600"
</FilesMatch>


Now suppose I updated an image file, the CDN (s-maxage=600) would refresh in 600 seconds, but how about the client? Since 'max-age' is set to 1 year, if client re-visit my web, does it still send HTTP request to check for updated contents and so download the new version? How does this work actually?

Thanks!!

10.01% popularity Vote Up Vote Down


Login to follow query

More posts by @Deb1703797

1 Comments

Sorted by latest first Latest Oldest Best

 

@Cofer257

The s-maxage header is intended for proxies, while max-age is intended for regular users.

A typical end user (not using a proxy) would have the file cached for a year. The same should be the case for someone using a proxy as well, since the proxy will likely send the file unmodified, i.e. including the max-age header.

But the proxy itself would only cache it for 600 seconds, so when a different user on the same proxy comes along, their browser requests the file and the proxy grabs a fresh copy from your server.

To be honest I don't think there is any real reason to set such a short expiration date for proxies when regular users get a long expiration. You ought to set them to the same (i.e. set s-maxage to the number of seconds in a year).

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme