歡迎您光臨本站 註冊首頁
小知識  >  Html >

Expires詳解

admin @ 2015-06-09 reply:0
←手機掃碼閱讀

Expires欄位聲明了一個網頁或URL地址不再被瀏覽器緩存的時間,一旦超過了這個時間,瀏覽器都應該聯繫原始伺服器。

RFC告訴我們:「由於推斷的失效時間也許會降低語義透明度,應該被謹慎使用,同時我們鼓勵原始伺服器儘可能提供確切的失效時間。」  對於一般的純靜態頁面,如html、gif、jpg、css、js,默認安裝的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, d M Y H:i:s」) . 」 GMT」),Apache伺服器會把Wed, 11 Jan 1984 05:00:00 GMT作為Expires欄位內容,返回給瀏覽器。即認為動態頁面總是失效的。而瀏覽器仍然會保存已經失效的動態頁面。  可以發現Firefox瀏覽器總是緩存所有頁面,不管失效、不失效還是沒有聲明失效時間。即使緩存中聲明了一個網頁的實效日期是1970-01-01 08:00:00,瀏覽器仍然會發送該文件在緩存中的Last-Modified和ETag欄位。 如果在伺服器端驗證通過,返回304狀態,瀏覽器就還會使用此緩存。


[admin via ] Expires詳解已經有1485次圍觀

http://coctec.com/room/show-6.html