どちらもメッセージ本文のハッシュサムを表します。どちらも、リソースが特定のクライアントによって最後に要求されてから変更されたかどうかを確認するために使用できます。それらが同じことをする場合、なぜそれらはRFC2616仕様で共存するのですか?
1 に答える
どちらもメッセージ本文のハッシュサムを表します。
完全ではありません。Content-MD5
はハッシュですETag
が、不透明な識別子です。クライアントはそれが何を意味するのかわかりません。適切なものを生成する1つの方法ETag
は、リソースのデータをハッシュすることですが、それだけではありません。
どちらも、リソースが特定のクライアントによって最後に要求されてから変更されたかどうかを確認するために使用できます。
どちらの場合も、理論的には誤検知と誤検知の両方を取得できますが、それは事実です。
それらが同じことをする場合、なぜそれらはRFC2616仕様で共存するのですか?
それらは異なる目的を果たすため、共存します。「彼らは同じことをする」というのは真実ではありません。
Content-MD5
転送されるリソースの整合性をクライアントが検証できるようにすることを目的としています。その意味は明確に定義されており、応答の受信後に使用されることは想定されていません。
ETag
キャッシングを調整するために使用することを目的としています。不透明であるため、「リソース識別子」のセマンティクスをそのメカニズムから切り離すことができます(したがって、サーバーは必要な識別スキームを使用することを選択でき、クライアントがプロセスについて発言することなく、将来このスキームを自由に変更できます。 )。さらに、弱い検証ETag
をサポートし、2つのビットごとに異なるバージョンのリソースを意味的に同等として扱うことができます。