e-tagの値は自分で計算する必要があります。Eタグは不透明な文字列であり、アプリケーションにとってのみ意味があります。
ベストプラクティスは、JSONコンテンツを決定するすべての入力変数(文字列に変換)を連結することです。変更された場合にJSON出力が変更されるものはすべて、これの一部である必要があります。これらの文字列に公開したくない機密情報がある場合は、代わりに値のMD5ハッシュを使用してください。
たとえば、私が管理しているCMSアプリケーションでは、フロントページに次の電子タグがあります。
|531337735|en-us;en;q=0.5|0|Eli Visual Theme|1|943ed3c25e6d44497deb3fe274f98a96||
気になる入力変数は|
シンボルと連結されて不透明な値になりますが、最終的に変更されたタイムスタンプ(数値)、ブラウザーで受け入れられる言語ヘッダー、現在のビジュアルテーマなど、いくつかの異なる入力値を表します。ブラウザのCookieから取得される(フロントページのコンテンツが取得されるコンテキストを決定する)内部UID。これらの変数のいずれかが変更されると、ページが異なる可能性があり、キャッシュされたコピーが古くなります。
eタグは、すばやく確認する手段がないと役に立たないことに注意してください。クライアントはそれをIf-None-Match
リクエストヘッダーに含めます。サーバーは現在の変数からe-tagヘッダーをすばやく再計算し、タグがまだ最新であるかどうかを確認できる必要があります。その再計算にコンテンツ本文の再生成と同じ時間がかかる場合は、304 Not Modified
応答の完全なJSON本文ではなく、応答を送信する帯域幅を少し節約するだけ200 OK
です。