両方ともメッセージ本文のハッシュサムを表します。特定のクライアントによって最後にリソースが要求されて以来、リソースが変更されたかどうかをチェックするために両方を使用できます。彼らが同一のことをしている場合、なぜRFC2616仕様に共存するのでしょうか?HTTPプロトコルでは、ETagとContent-MD5の違いは何ですか?
6
A
答えて
11
どちらもメッセージ本文のハッシュサムを表します。
かなりです。 Content-MD5
はハッシュですが、ETag
は不透明な識別子です。つまり、クライアントはその意味を知りません。適切なETag
を生成する1つの方法は、リソースのデータをハッシングすることですが、確かに唯一の方法ではありません。
どちらも、リソースは、それが特定のクライアントによって要求された 前回変更されたかどうかをチェックするために使用することができます。
どちらの場合でも理論的には誤検出と偽陰性の両方を得ることはできますが、それは本当です。
これらが同じことをする場合、なぜそれらはRFC2616仕様で共存しますか?
これらは異なる目的を果たすため共存します。 "彼らは同じことをする"という言葉は真実ではない。
Content-MD5
は、転送されるリソースの整合性をクライアントに確認させることを目的としています。その意味は明確に定義されており、応答が受信された後では使用されません。
ETag
は、キャッシングを調整するために使用されます。不透明であるため、 "リソース識別子"の意味をそのメカニックから切り離すことができます(サーバーは必要な識別スキームを使用することができ、将来このスキームを自由に変更することができます。 )。さらに、ETag
はweak validationをサポートしており、2つのビットごとに異なるバージョンのリソースを意味的に同等のものとして扱うことができます。
関連する問題
- 1. WebSocketプロトコルとSTOMPプロトコルの違いは何ですか?
- 2. uwsgiプロトコルとwsgiプロトコルの違いは何ですか?
- 3. http-remotingプロトコルとは何ですか
- 4. ejabberdのMAMプロトコルの0と1の違いは何ですか?
- 5. c socket()関数の型とプロトコルの違いは何ですか?
- 6. WebDriverプロトコルのキーとelementIdValueの違いは何ですか?
- 7. HTTP/2のプロトコルIDとは何ですか?その理由は何ですか?
- 8. Tcpプロトコルとリモートプロシージャコールの違いは何ですか?
- 9. 「生のHTTPヘッダー」とは何ですか? "HTTPヘッダー"と "生のHTTPヘッダー"の違いは何ですか?
- 10. データフォーマッタとhttpプロトコルとは何ですか、いつ使用するのですか?
- 11. http:// *:80とhttp:// +:80の違いは何ですか?
- 12. WebSocketのバージョン間のプロトコルの違いは何ですか?
- 13. akka http設定のアイドルタイムアウトとリクエストタイムアウトの違いは何ですか?
- 14. HTMLのhttp://と//の違いは何ですか?
- 15. MIME、インターネットメディアの種類とHTTPの違いは何ですか?
- 16. node.jsのリクエストモジュールとhttpモジュールの違いは何ですか?
- 17. HTTPヘッダーのConnectionとProxy-connectionの違いは何ですか?
- 18. HTTP 1.0と1.1の違いは何ですか?
- 19. cURL + HTTPとRESTful Webサービスの違いは何ですか?
- 20. NodeJS httpとhttpsモジュールの違いは何ですか?
- 21. Node.js HTTPリクエストとgetの違いは何ですか?
- 22. HTTP 408と504の違いは何ですか?
- 23. HTTPストリーミングイベントとサーバー送信イベントの違いは何ですか?
- 24. 優先順位は何ですか:ETagまたはLast-Modified HTTPヘッダー?
- 25. HTTPプロトコル違反HtmlAgilityPack
- 26. Windows Workflow Foundation 4.0のプロトコルと名前付きブックマークの違いは何ですか?
- 27. ffmpegのUDPプロトコルとは何ですか?
- 28. httpとデフォルトのservemuxの違いは?この違いは何
- 29. "http:// localhost/app/hello"と "http:// localhost/app/hello /"の違いは何ですか?
- 30. 「http:// localhost:8080/apex/f?p = 4950」と「http://127.0.0.1:8080/apex」の違いは何ですか