ブラウザのキャッシュ生存時間を極めて短くする
Webアプリケーションの開発の際、本番環境ではブラウザにキャッシュされても問題ないが、開発時はキャッシュされたくないものがあると思います。例えば、マスカットのレイアウト定義XMLや、イベント定義XMLは、ブラウザにキャッシュされるとどうしようもありません。ブラウザのキャッシュをそのつどクリアすればいいのですが、それも面倒です。
そこで
HTTPレスポンスのHTTPヘッダをちょいといじることで、ブラウザのキャッシュをコントロールします。
今回、検証した環境。
OS | Windows XP Pro SP2 |
---|---|
Web サーバ | Apache 2.2.3 |
ブラウザ | Firefox 1.5 |
私の場合、XMLファイルをキャッシュされることが邪魔だったので、MIMEタイプごとにキャッシュの有効期限を制御できるmod_expiresを試してみました。
mod_expiresを使用するためにApacheのコンフィグファイルを編集します。
まず、LoadModuleします。デフォルトでは
#LoadModule expires_module modules/mod_expires.so
という行があるのでコメントアウトを解除します。
LoadModule expires_module modules/mod_expires.so
次に、Expiresヘッダを使用すること、どのように使用するかを書きます。コンフィグファイル内での場所はどこでもよいようです。無難にファイル末尾にどうぞ。
ExpiresActive On ExpiresByType application/xml "access puls 1 seconds"
これで、MIMEタイプがapplication/xml(XMLファイル)の、ブラウザでのキャッシュ有効期限が、アクセスしてから1秒後になります。