[解決済み] ETagとヘッダーエクスパイアの比較
質問
いろいろと調べてみたのですが、ETagとETAgの両方を使うべきかどうかがわかりません。 と Expiresヘッダ または のどちらか一方を指定します。
私がしようとしているのは、フラッシュファイル(およびその他の画像やその他)に変更があった場合にのみ、それらのファイルが更新されるようにすることです。
ファイル名を変えたり、URLの末尾に変な文字を入れてキャッシュされないようにしたりと、特別なことはしたくないのですが。
また、これをサポートするために、私のPHPスクリプトでプログラム的に行う必要があることはありますか、それともすべてApacheですか?
解決方法は?
ETagは、クライアントが将来そのファイルに対して再びリクエストを行うかどうかを決定するために使用できる情報を持っていません。 もしETagがすべてであれば、常にリクエストを行う必要があります。 しかし、サーバーがクライアントのリクエストから ETag を読み取ると、サーバーはファイルを送信するか(HTTP 200)、クライアントにローカルコピーを使用するよう指示するか(HTTP 304)を決定することができます。 ETag は基本的にファイルのチェックサムであり、ファイルのコンテンツが変更されると意味的に変更されます。
Expiresヘッダーは、クライアント(およびプロキシ/キャッシュ)が、サーバーにリクエストを行う必要があるかどうかを判断するために使用されます。 Expires の日付が近いほど、クライアント (またはプロキシ) がサーバーからそのファイルに対して HTTP リクエストを行う可能性が高くなります。
Expiresヘッダーには、コンテンツの変更頻度に応じた適切な値を設定します。 そして、クライアントがサーバにリクエストを送るときに、ファイルを送り返すかどうかをより簡単に決定できるように、ETags を送信するように設定します。
ETagに関する最後の注意点 - Apacheを実行している複数のマシンで負荷分散されたサーバセットアップを使用している場合、おそらくETagの生成をオフにしたいと思うでしょう。 これは inode が ETag ハッシュアルゴリズムの一部として使用され、サーバ間で異なるからです。 計算の一部として inode を使用しないように Apache を設定することができますが、その場合、すべてのサーバで同じ ETag が生成されるように、ファイルのタイムスタンプが正確に同じであることを確認する必要があります。
関連
-
[解決済み] 負の配列サイズ例外
-
java.lang.NoClassDefFoundError: クラスを初期化できませんでした エラーの理由
-
[解決済み] HTTPの "Host "ヘッダーとは何ですか?
-
[解決済み] X-REQUEST-ID httpヘッダーとは何ですか?
-
[解決済み] サブドメインとドメイン間でCookieを共有する
-
[解決済み] HTTPとRESTの違いは何ですか?
-
[解決済み】HTTP 1.0 vs 1.1
-
[解決済み】エンティティボディを持たないHTTP POSTを実行することはバッドプラクティスとみなされますか?
-
[解決済み】http getリクエストにヘッダーを設定する方法は?
-
[解決済み] なぜCache-Control属性はリクエストヘッダ(クライアントからサーバーへ)に送信されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 負の配列サイズ例外
-
[解決済み] IISファイルのダウンロードがハングアップ/タイムアウトする - sc-win32-status = 64
-
youtubeマッチチャンネル(チャンネル)
-
[解決済み] X-Forwarded-Forヘッダーが表示されないブラウザの理由
-
[解決済み] PUT、DELETE、HEADなどのメソッドは、ほとんどのウェブブラウザで利用可能ですか?
-
[解決済み] サブドメインとドメイン間でCookieを共有する
-
[解決済み】HTTPヘッダ(キャッシュコントロール用)を設定する方法は?)
-
[解決済み】ユーザーエージェント文字列の大きさはどれくらいになりますか?
-
[解決済み】HTTPの "Content-Type "ヘッダーのすべての可能な値は何ですか?
-
[解決済み] HTTPのPOSTメソッドをキャッシュすることは可能ですか?