セキュリティ   ログ   キャッシュ   ネットワーク   圧縮   その他

キャッシュ

キャッシュに関する Tips を紹介します。
注)主に x86 Linux および Apache の組み合わせで動作確認した結果をもとにしています。すべての OS および Apache の Version での動作を保証するものではありません。
更新 目的 方法
2015/12 ブラウザのキャッシュを活用したい。 コンテンツに有効期限を設定するか、Etag を設定します。下記に、TXT、HTML、画像、CSS、 JS、XML、 Flash、gz および exe ファイルに対して有効期限を設定した例を示します。
有効期限の設定について詳しくは、 mod_expires をご覧ください。
<ifModule mod_expires.c>
ExpiresActive On
ExpiresByType text/plain "access plus 12 hours"
<FilesMatch "\.(?:html?)$">
ExpiresByType text/html "access plus 12 hours"
</FilesMatch>
ExpiresByType image/png "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/x-icon "access plus 1 months"
ExpiresByType image/vnd.microsoft.icon "access plus 1 months"
ExpiresByType text/css "access plus 1 months"
ExpiresByType text/javascript "access plus 1 months"
ExpiresByType text/xml "access plus 12 hours"
ExpiresByType application/xhtml+xml "access plus 12 hours"
ExpiresByType application/xml "access plus 12 hours"
ExpiresByType application/rss+xml "access plus 12 hours"
ExpiresByType application/x-javascript "access plus 1 months"
ExpiresByType application/x-shockwave-flash "access plus 1 months"
ExpiresByType application/x-compress "access plus 1 months"
ExpiresByType application/gzip "access plus 1 months"
ExpiresByType application/x-exe "access plus 1 months"
</IfModule>
text/html に対する設定は、HTM または HTML の拡張子を持つ場合だけに限定しましたが、 これは、デフォルトでは PHP スクリプトからの出力もtext/html タイプとしてブラウザに送信されるためです。
FilesMatch の行の 「html」 の直前の 「?:」 は、正規表現の () 内の記述に一致した部分を記憶しておく必要がないことを明示しています。
メモリーの節約になります。なお、IBM i の Apache では「?:」という表現は使用できません。
2015/02 Apache の処理を減らしたい ブラウザのキャッシュから生成した Etag と、サーバーのファイルから生成した Etag を比較する処理を省略できます。
Web サーバーが複数のサーバーから構成されている場合、または Apache でコンテンツの有効期限を設定してブラウザのキャッシュを制御している場合、この記述により処理の削減に役立ちます。
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None