HTTP Headers: Max-Age vs Expires – Which One To Choose?

Posted by Gopinath on Tech Dreams See other posts from Tech Dreams or by Gopinath
Published on Tue, 01 Mar 2011 02:30:00 +0000 Indexed on 2011/03/01 7:31 UTC
Read the original article Hit count: 741


Caching of static content like images, scripts, styles on the client browser reduces load on the webservers and also improves end users browsing experience by loading web pages quickly. We can use HTTP headers Expires or Cache-Control:max-age to cache content on client browser and set expiry time for them.

http_headers

Expire header is HTTP/1.0 standard and Cache-Control:max-age is introduced in HTTP/1.1 specification to solve the issues and limitation with Expire  header. Consider the following headers.

 

Cache-Control: max-age=24560

Expires: Tue, 15 May 2012 06:17:00 GMT

The first header instructs web browsers to cache the content for 24560 seconds relative to the time the content is downloaded and expire it after the time period elapses. The second header instructs web browser to expiry the content after 15th May 2011 06:17.

Out of these two options which one to use – max-age or expires? I prefer max-age header for the following reasons

  • As max-age  is a relative value and in most of the cases it makes sense to set relative expiry date rather than an absolute expiry date.
  • Expire  header values are complex to set – time format should be proper, time zones should be appropriate. Even a small mistake in settings these values results in unexpected behaviour.
  • As Expire header values are absolute, we need to  keep changing them at regular intervals. Lets say if we set 2011 June 1 as expiry date to all the image files of this blog, on 2011 June 2 we should modify the expiry date to something like 2012 Jan 1. This add burden of managing the Expire headers.

Related: Amazon S3 Tips: Quickly Add/Modify HTTP Headers To All Files Recursively

cc image flickr:rogue3w

This article titled,HTTP Headers: Max-Age vs Expires – Which One To Choose?, was originally published at Tech Dreams. Grab our rss feed or fan us on Facebook to get updates from us.

© Tech Dreams or respective owner

Related posts about browsers

Related posts about http headers