2012-11-25 75 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