366

私は周りを見回しましたが、ETagExpires ヘッダーの両方を使用する必要があるか、またはどちらか一方を使用する必要があるかどうかを判断できませんでした。

私がやろうとしているのは、フラッシュ ファイル (およびその他の画像など、それらのファイルに変更があった場合に更新されるだけではない) を確認することです。

ファイル名を変更したり、URL の末尾に奇妙な文字を追加してキャッシュされないようにするなど、特別なことはしたくありません。

また、これをサポートするために PHP スクリプトでプログラムで行う必要があるものはありますか、それともすべて Apache ですか?

4

7 に答える 7

115

EtagおよびLast-modifiedヘッダーはバリデーターです。

それらは、同じ名前を保持している場合でも、ファイル/ページが変更されたかどうかをブラウザーやキャッシュ (リバース プロキシ) が理解するのに役立ちます。

ExpiresCache-control更新情報を提供しています。

これは、ブラウザとその間の逆のプロキシに、ページ/ファイルをキャッシュに保持できる時間と期間を通知することを意味します。

したがって、問題は通常、どのバリデータを使用するか (etag または最終変更)、およびどの更新情報ヘッダーを使用するか (有効期限切れまたはキャッシュ制御) です。

于 2011-10-14T04:13:50.227 に答える
37

ExpiresそしてCache-Control「強力なキャッシングヘッダー」です

Last-ModifiedそしてETag「弱いキャッシングヘッダー」です

まず、ブラウザExpires/Cache-Controlがサーバーにリクエストを送信するかどうかを確認します

リクエストを行う必要がある場合はLast-Modified/ETag、HTTP リクエストで送信します。ドキュメントのEtag値がそれに一致する場合、サーバーは 200 の代わりに 304 コードを送信し、コンテンツは送信しません。ブラウザはキャッシュからコンテンツをロードします。

于 2014-03-04T15:45:10.270 に答える
1

私の見解では、Expireヘッダーを使用すると、サーバーはデータが古くなったときにクライアントに通知できますが、Etagを使用すると、サーバーはクライアントの各リクエストのetag値をチェックします。

于 2016-12-22T08:36:52.280 に答える