expires

expires

Expires是RFC 2616(HTTP/1.0)協議中和網頁緩存相關欄位。用來控制緩存的失效日期,要注意的是,HTTP/1.0有一個功能比較弱的緩存控制機制:Pragma,使用HTTP/1.0的緩存將忽略Expires和Cache-Control頭。

簡單解釋


效及義,DBA通常把expires作為表示過期數量或者過期時間的欄位。

詳解


段網頁址瀏覽器緩存,旦超,瀏覽器該聯繫始伺服器。訴:“推斷效降低語義透,該謹慎,鼓勵始伺服器盡提供確切效。”般純靜態頁,html、gif、jpg、cssjs,默認安裝的Apache伺服器,不會在響應頭添加這個欄位。Firefox瀏覽器接受到響應后,如果發現沒有Expires欄位,瀏覽器根據文件的類型和“Last-Modified”欄位來推斷出一個合適的失效時間,並存儲在客戶端。推測出的時間一般是接受到響應時間后的三天左右。Apache的expires_module模塊可以在Http響應頭部自動加上Expires欄位。在Apache的httpd.conf文件中進行如下配置:#啟用expires_module模塊LoadModule expires_module modules/mod_expires so#啟用有效期控制ExpiresActive On#GIF有效期為1個月ExpiresByType image/gif A2592000#HTML文檔的有效期是最後修改時刻后的一星期ExpiresByType text/html M604800#以下的含義類似ExpiresByType text/css“now plus 2 month”ExpiresByType text/js“now plus 2 day”ExpiresByType image/jpeg“access plus 2 month”ExpiresByType image/bmp “access plus 2 month”ExpiresByType image/x-icon “access plus 2 month”ExpiresByType image/png “access plus 2 month”對於動態頁面,如果在頁面內部沒有通過函數強制加上Expires,例如header(”Expires:”.gmdate(”D,dMYH:i:s”).”GMT”),Apache伺服器會把Wed,11Jan198405:00:00GMT作為Expires欄位內容,返回給瀏覽器。即認為動態頁面總是失效的。而瀏覽器仍然會保存已經失效的動態頁面。可以發現Firefox瀏覽器總是緩存所有頁面,不管失效、不失效還是沒有聲明失效時間。即使緩存中聲明了一個網頁的實效日期是1970-01-0108:00:00,瀏覽器仍然會發送該文件在緩存中的Last-Modified和ETag欄位。如果在伺服器端驗證通過,返回304狀態,瀏覽器就還會使用此緩存。