標籤:des http io os ar 使用 sp strong 檔案
Apache模組 mod_expires概述
這個模組控制伺服器應答時的Expires頭內容和Cache-Control頭的max-age指令。有效期間(expiration date)可以設定為相對於源檔案的最後修改時刻或者用戶端的訪問時刻。
這些HTTP頭向用戶端表明了文檔的有效性和持久性。如果有緩衝,文檔就可以從緩衝(除已經到期)而不是從伺服器讀取。接著,用戶端考察緩衝中的副本,看看是否到期或者失效,以決定是否必須從伺服器獲得更新。
要修改Cache-Control頭中max-age(參見RFC 2616 section 14.9)項之外的內容,你還可以使用Header指令。
Alternate(交替/輪流) Interval(間隔) Syntax(文法)
ExpiresDefault和ExpiresByType指令同樣能夠用易懂的文法格式進行定義:
ExpiresDefault "<base> [plus] {<num> <type>}*"
ExpiresByType type/encoding "<base> [plus] {<num> <type>}*"
其中<base>是下列之一:
access
now (等價於‘access‘)
modification
plus關鍵字是可選的。<num>必須是整數[可以被atoi()接受的],<type>是下列之一:
years
months
weeks
days
hours
minutes
seconds
例如,下列3個指令都表示文檔預設的有效期間是一個月:
ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"
有效期間可以通過增加"<num> <type>"子句進一步調整:
ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "modification plus 5 hours 3 minutes"
注意,如果你使用基於最後修改日期的設定,"Expires:"頭將不會被添加到那些並非來自於磁碟檔案的內容。這是因為這些內容並不存在"最後修改時間"的屬性。
ExpiresActive 指令
| 說明 |
啟用或禁用產生"Expires:"和"Cache-Control:"頭的功能 |
| 文法 |
ExpiresActive On|Off |
| 範圍 |
server config, virtual host, directory, .htaccess |
| 覆蓋項 |
Indexes |
| 狀態 |
擴充(E) |
| 模組 |
mod_expires |
這個指令對其作用範圍內的文檔啟用或禁用產生Expires和Cache-Control頭的功能。若設定為 Off 則不會為其作用範圍內的任何文檔產生Expires和Cache-Control頭(除非被更低一層的規則改寫,比如.htaccess檔案)。若設定為 On 則會按照ExpiresByType和ExpiresDefault指令定義的標準為其作用範圍內的文檔產生Expires和Cache-Control頭。
注意,這個指令並不保證Expires或Cache-Control頭一定會產生。如果定義的標準不規範,將不會產生這兩個頭,其效果是好像從未設定過這個指令一樣。
ExpiresByType 指令
| 說明 |
由MIME類型配置的Expires頭的值 |
| 文法 |
ExpiresByType MIME-type <code>seconds |
| 範圍 |
server config, virtual host, directory, .htaccess |
| 覆蓋項 |
Indexes |
| 狀態 |
擴充(E) |
| 模組 |
mod_expires |
這個指令定義了為指定MIME類型的文檔(如text/html)產生的Expires頭的值和Cache-Control頭的max-age指令。seconds參數設定了添加到基準時間以構造有效期間限的秒數。Cache-Control: max-age的計算方法是從有效期間減去當前請求時間並轉化為秒數。
基準時刻可以是源檔案的最後修改時刻或者用戶端對源檔案的訪問時刻,至於使用那一個則由<code>指定。"M"表示源檔案的最後修改時刻,"A"表示用戶端對源檔案的訪問時刻。需要注意的是<code>和seconds之間沒有空格。
這兩種基準的差別是很微妙的。如果使用"M",所有當前緩衝中的文檔副本都將在同一時刻到期,這個可能對定期更新的URL(比如位於同一位置的每周通告)很有好處。如果使用"A",則每個用戶端所得到的有效期間是不一樣的,這個可能對那些幾乎不更新的圖片檔案很有好處,特別是對於一組都引用了相同圖片的相關文檔。
樣本:
# 啟用有效期間控制
ExpiresActive On
# GIF有效期間為1個月
ExpiresByType image/gif A2592000
# HTML文檔的有效期間是最後修改時刻後的一星期
ExpiresByType text/html M604800
注意,這個指令只有在"ExpiresActive On"的條件下才有效。它只對指定的MIME類型文檔改寫由ExpiresDefault指令設定的有效期間。
你也可以使用前面講述的alternate syntax指定有效期間的計算方法。
ExpiresDefault 指令
| 說明 |
預設有效期間的計算方法 |
| 文法 |
ExpiresDefault <code>seconds |
| 範圍 |
server config, virtual host, directory, .htaccess |
| 覆蓋項 |
Indexes |
| 狀態 |
擴充(E) |
| 模組 |
mod_expires |
該指令設定了其作用範圍內的所有文檔的預設有效期間的計算方法,它可以被ExpiresByType指令基於MIME類型被改寫。詳情請參見ExpiresByType指令和那個alternate syntax的描述。
xampp 開啟緩衝(一)