Expires
と
Cache-Control
HTTP ヘッダの生成このモジュールはサーバ応答の Expires
HTTP ヘッダ
と Cache-Control
ヘッダの max-age
ディレクティブの
設定を制御します。元のファイルが作成された時刻または
クライアントのアクセス時刻のどちらかに基づいて期限切れ日を
設定することができます。
これらのヘッダはクライアントに文書の 有効性と継続性を指示します。文書がキャッシュされた場合には、 指定時刻に達するまでは、元の場所から取得する代わりに キャッシュされているものを使うことができます。その後は、 キャッシュにあるコピーは期限切れ (expired) で無効であるとされ、 元の場所から新しいものを取得する必要があります。
max-age
以外 (RFC
2616 section 14.9 参照) の Cache-Control
のディレクティブを
操作するには
<base> は以下のどれかです:
access
now
('access
' と等価)modification
plus
キーワードは省略可能です。<num>
は (atoi()
が受け付ける) 整数値、
<type> は以下のどれかです:
years
months
weeks
days
hours
minutes
seconds
例えば、以下のディレクティブはどれもデフォルトで文書がアクセスの 1 ヶ月後に 期限が切れるようにするために使えます:
期限切れ時刻はいくつか '<num> <type>' 節を追加することでより細かく 制御することができます:
修正時刻に基づいた設定を使用している場合、Expires ヘッダは ディスクのファイル以外のコンテンツには追加されないことに注意 してください。そのようなコンテンツには修正時刻は存在しないからです。
Expires
ヘッダの生成を有効にするこのディレクティブは対応するドキュメントの領域で
Expires
と Cache-Control
ヘッダを
有効にするか無効にするかを決めます。
(例えば、.htaccess
ファイルではそのディレクトリの
文書のみに適用されるということです。) Off
に
設定された場合は対応領域でそれらのヘッダは
生成されません (.htaccess
がサーバ設定ファイルの設定を
上書きする、というような下位レベルでの上書きがされていなければ)。
On
に設定されていれば、ヘッダは
このディレクティブは Expires
と
Cache-Control
ヘッダの存在を
保証するわけではないことに注意してください。基準が満たされて
いない場合はヘッダは追加されず、結果としてこのディレクティブが
指定されていなかったかのようにさえ見えることになります。
Expires
ヘッダの値このディレクティブは指定されたタイプのドキュメント
(例えば text/html
)
に対して生成される Expires
ヘッダと Cache-Control
ヘッダの max-age
ディレクティブの値を定義します。
二つ目の引数は期限切れの日時を生成するための基準時刻に追加される
秒数を設定します。Cache-Control:
max-age
は期限切れの時刻からリクエスト時刻を引いたものを秒で
表すことで生成されます。
基準時刻はファイルの最終修正時刻か、クライアントのドキュメントへの
アクセス時刻です。どちらを使うべきかは <code>
によって指定します。M
は基準時刻として
ファイルの最終修正時刻をという意味で、A
はクライアントの
アクセス時刻を使うという意味になります。
効果には微妙な違いがあります。M
が使用された場合は、
すべてのキャッシュにある現在のドキュメントキャッシュは同時に期限が
切れます。これは同じ URL に毎週常に置かれる報せのようなものには
非常に有効です。A
が使用された場合は、期限切れの
時間は各クライアントよって異なります。これはあまり変更されない
画像ファイルなど、特に関連するドキュメント群がすべて同じ画像を
参照するとき (すなわち画像が比較的短い期間内に繰り返し
アクセスされるとき) に有効です。
このディレクティブは ExpiresActive On
が指定されている
ときのみ有効であることに注意してください。これは、
指定された MIME タイプに対してのみ
この文書の前の方で説明されている代替構文を 使って期限切れ期日の計算方法を指定することもできます。
このディレクティブは対応する範囲のすべてのドキュメントに対して
デフォルトの期限切れ期日の計算アルゴリズムを設定します。