2012-11-25 33 views
1

我看到大玩家(即akamai)开始将Expires标题全部放在一起,并且仅使用Cache-Control,例如,现在是否需要Expires标题?

curl -I https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-snc7/395029_379645875452936_1719075242_n.jpg 

HTTP/1.1 200 OK 
Last-Modified: Fri, 01 Jan 2010 00:00:00 GMT 
Date: Sun, 25 Nov 2012 16:46:43 GMT 
Connection: keep-alive 
Cache-Control: max-age=1209600 

那么还有什么理由继续使用Expires

+0

另请参阅http://stackoverflow.com/questions/12479581/does-cache-control-s-maxage-header-override-expires-header-for-browser-cache – Raedwald

回答

2

缓存控制在HTTP 1.1中引入以代替到期。如果这两个标头都存在,Cache-Control is preferred over Expires

如果响应包括一个Expires头和一个最大年龄 指令,则最大年龄指令覆盖Expires头,即使 如果Expires头是更限制性的。对于给定的响应,此规则允许服务器为HTTP/1.1(或更高版本)高速缓存而不是HTTP/1.0高速缓存提供到 更长的到期时间。这可能是 有用,如果某些HTTP/1.0缓存不正确地计算年龄或 到期时间,可能是由于时钟不同步。

但仍然有客户端,只能HTTP 1.0。因此,对于HTTP 1.0请求/响应,您仍然应该使用Expires