What's the difference Expires and Cache-control:max-age?
Could you tell me the difference 开发者_如何学Goof Expires and Cache-control:max-age?
Expires
was defined in the HTTP/1.0
specifications, and Cache-Control
in the HTTP/1.1
specifications.
I would suggest defining both so you cater to both, the older clients that only understand HTTP/1.0
, and the newer ones.
Expires
was specified in HTTP 1.0 specification as compared to Cache-Control: max-age
, which was introduced in the early HTTP 1.1 specification. The value of the Expires
header has to be in a very specific date and time format, any error in which will make your resources non-cacheable. The Cache-Control: max-age
header's value when sent to the browser is in seconds, the chances of any error happening in which is quite less.
Since you can specify only one of the two headers in your web.config file, I'd suggest going with the Cache-Control: max-age
header because of the flexibility it offers in setting a relative timespan from the present date to a date in the future. You can basically set and forget, as compared to the case with Expires
header, whose value you will have to remember to update at least once every year. And if you set both headers programmatically from within your code, know that the value of Cache-Control: max-age
header will take precedence over Expires
header. So, something to keep in mind there as well.
From Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET
精彩评论