回答:
html5boilerplate.comには、よくコメントされた.htaccessファイルが含まれています。このファイルには、考慮すべき多くの標準設定があります。それらの中には、コンテンツを期限切れにするための適切な設定があります(Expires、E-tagsなど)。
Last-Modified
ヘッダーは弱いキャッシュヘッダーであることに注意してください。現在の設定では、Cache-Control
ヘッダーを使用します。
グーグルはこれに関する良い記事を持っています。
Expires and Cache-Control:max-age。これらは、リソースの「生存期間」、つまり、ブラウザがキャッシュされたリソースを使用できる期間を指定します。この期間は、Webサーバーから新しいバージョンが利用可能かどうかを確認することなく確認できます。それらは無条件に適用される「強力なキャッシングヘッダー」です。つまり、いったん設定されてリソースがダウンロードされると、ブラウザは、有効期限または最大経過時間に達するまで、リソースに対するGETリクエストを発行しません。
Last-ModifiedおよびETag。これらは、ブラウザがファイルが同じであるかどうかを判断するためにチェックするリソースに関するいくつかの特性を指定します。Last-Modifiedヘッダーでは、これは常に日付です。ETagヘッダーでは、これはリソースを一意に識別する任意の値にすることができます(ファイルバージョンまたはコンテンツハッシュが一般的です)。Last-Modifiedは、ブラウザがヒューリスティックを適用してアイテムをキャッシュからフェッチするかどうかを決定する「弱い」キャッシングヘッダーです。(ヒューリスティックはブラウザーによって異なります。)ただし、これらのヘッダーを使用すると、ユーザーが明示的にページをリロードしたときに条件付きGETリクエストを発行することにより、ブラウザーはキャッシュされたリソースを効率的に更新できます。条件付きGETは、サーバーでリソースが変更されない限り完全な応答を返さないため、完全なGETよりもレイテンシが低くなります。
強力なキャッシュヘッダーであるため、必要に応じてCache-Control
またはExpires
ヘッダーを使用することをお勧めします。一部のシステムでは、最終更新日が無視されます。
次にcurl
、http://redbot.orgなどのツールを使用してヘッダーを確認できます。
Last-Modified
、他のキャッシュ命令がない場合にヘッダーを使用すると、キャッシュ期間がHTTPクライアントに委ねられることです。Last-Modified
日付以降にリソースが変更されていない場合、リソースは新しいと見なされます。対照的に、Expires
またはCache-Control
ヘッダーを使用する場合、オリジンは明示的な更新期間を設定できます。
Expires
有効期限のないリソースにはまったく不適切なヘッダーです。一部のリソースは変更される可能性がありますが、有効期限日には変更されません。GoogleのポイントはLast-Modified
、条件付きのGET が必要であるのに対しExpires
、ブラウザーのキャッシュでGETを完全にスキップできることです。