2011-11-28 4 views
10

私はさまざまなサーバーからファイルをダウンロードしようとしましたが、それらのすべてがヘッダーのContent-MD5フィールドで応答するわけではありません。HTTPレスポンスのContent-MD5フィールドはユニバーサルですか?

リソースファイルのハッシュなしでHTTP応答の標準であるかどうかを知りたかったですか?

おかげ

+0

+1がダウン投票に対抗します。 – UnkwnTech

答えて

16

のContent-MD5ヘッダフィールドMAYはエンティティボディの整合性チェックとして機能するようにオリジンサーバやクライアントによって生成されます。オリジンサーバーまたはクライアントMAYのみがContent-MD5ヘッダーフィールドを生成します。プロキシとゲートウェイは、エンドツーエンドの完全性チェックとしてその価値を無効にするため、生成してはいけません。ゲートウェイやプロキシを含むENTITY-体の任意の受信者、2014年6月のよう

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

を受け取り、このヘッダフィールドのダイジェスト値がエンティティボディのものと一致することをMAYチェック:

Content-MD5ヘッダーフィールドは、部分応答に関して一貫して実装されていないため、 だったため削除されました。

RFC 7231 - ハイパーテキスト転送プロトコル(HTTP/1.1):セマンティクスとコンテンツ - http://tools.ietf.org/html/rfc7231(ページ92)

+2

はキーワードであるかもしれません。 – BNL

0

純粋なMD5は部分検証をサポートしておらず、時代遅れです。

私はそれを得ることはありませんが...とすぐファイルが終了する準備ができているとして、それはすべての を開始します:あなたは、高度な何のために使用純粋なハッシュ関数を使用しようとすると、最終的にあなたはfollowing situation会いましょうもう一度。私はまた、 "ファイルの内容を確認しています"というメッセージを受け取ります...何を 私は何ですか?

ミスマッチを早期に検出する機会のない20Gb以上のファイルをダウンロードするとどうなりますか?ハッシュ関数でサポートされている部分検証なしに、ダウンロードをP2Pにオフロードすることはできません。

だから今日はメルクルの木にこだわる必要があります。 eDonkey 2kはAICHを使用していますが、Gnutella(G1とG2の両方)とDC++(NMDCとADCの両方)はTTH(TIGER Tree Hash)を使用しますが、このハッシュを単独で使用します。だから、TTHは事実上の標準です。どこのファイルハッシュも(もし厳密には必要でないにしても)デフォルトではTTHでしたが、まだそこにはありません。

DC++はHTTPに基づいていませんが、Gnutella(1と2)は、これらのHTTPヘッダーを調べたりサポートしたりすることができます。たとえば、Shareazaはブラウザからのダウンロードを傍受し、Alt-Location、Content-URN、X-Thex-URIヘッダーを使用してP2Pにダウンロードすることができます。

関連する問題