Apache 2.2.3を設定して「最終変更」などを送信する方法


9

最後の訪問時から変更されている場合にのみ、オブジェクト(および/またはページ...サイト上のすべて)をリロードするようにブラウザに指示するには??? htaccess、httpd.conf ...私のケースに適切なディレクティブはありますか?どうもありがとうございました

回答:



5

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ヘッダーを使用することをお勧めします。一部のシステムでは、最終更新日が無視されます。

次にcurlhttp://redbot.orgなどのツールを使用してヘッダーを確認できます。


2
FWIW:「弱い」はGoogleが作り上げたものです。Expires有効期限のないリソースにはまったく不適切なヘッダーです。一部のリソースは変更される可能性がありますが、有効期限日には変更されません。GoogleのポイントはLast-Modified、条件付きのGET が必要であるのに対しExpires、ブラウザーのキャッシュでGETを完全にスキップできることです。
Dancrumb、2014

1
弱いという用語は単に意味論です。重要なのはLast-Modified、他のキャッシュ命令がない場合にヘッダーを使用すると、キャッシュ期間がHTTPクライアントに委ねられることです。Last-Modified日付以降にリソースが変更されていない場合、リソースは新しいと見なされます。対照的に、ExpiresまたはCache-Controlヘッダーを使用する場合、オリジンは明示的な更新期間を設定できます。
jeffatrackaid 14

1
「弱い」v「強い」はtools.ietf.org/html/rfc7232#section-2.1で定義されています(@Dancrumbにも注意)
John Bentley
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.