<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子メイル</anchor>などのメッセージの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">本体</anchor>が破損していないか調べるための情報を入れておくのがこの欄です。データの正当性検査には
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MD5</anchor> を使います。まあ、その名の通りですね。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> かつては <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> でも定義されていましたが、現在は削除されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子メール</anchor>でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> でも、ほとんど使われませんでした。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en">RFC 1544 - The Content-MD5 Header Field</cite> (<time>2018-01-24 16:38:15 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc1544">https://tools.ietf.org/html/rfc1544</anchor-external><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1864</anchor> により<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">廃止</anchor></li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <cite xml:lang="en">RFC 1864 - The Content-MD5 Header Field</cite> (<time>2018-01-28 17:21:27 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc1864">https://tools.ietf.org/html/rfc1864</anchor-external></li></ul></refs></section><section><h1>歴史</h1><section><h1>HTTP</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <cite xml:lang="en">RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1</cite> (<time>2014-09-07 04:14:53 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc2616#section-14.15">http://tools.ietf.org/html/rfc2616#section-14.15</anchor-external></li></ul></refs><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> RFC 2068 14.16; RFC 2616 14.15 Content-MD5</figcaption><blockquote><p>The Content-MD5 entity-header field, as defined in RFC 1864 [23], is
an MD5 digest of the entity-body for the purpose of providing an
end-to-end message integrity check (MIC) of the entity-body. (Note: a
MIC is good for detecting accidental modification of the entity-body
in transit, but is not proof against malicious attacks.)</p></blockquote><p><code class="HTTP">Content-MD5</code> 実体頭欄は、 RFC 1864 で定義されているように、
<code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">entity-body</anchor></code> の末端対末端メッセージ完全性検査 (MIC)
を提供する目的の <code class="ABNF">entity-body</code> の MD5 要約です。
(注意 : MIC は転送中の偶発的な <code class="ABNF">entity-body</code>
の修正を判定するのには良いですが、悪意のある攻撃の証拠にはなりません。)</p><blockquote><ul><li>Content-MD5   = &quot;Content-MD5&quot; &quot;:&quot; md5-digest</li><li>md5-digest   = &lt;base64 of 128 bit MD5 digest as per RFC 1864&gt;</li></ul></blockquote><blockquote><p>The Content-MD5 header field <del>may</del> <ins>MAY</ins> be generated by an origin server <ins>or client</ins> to
function as an integrity check of the entity-body. Only origin
servers <ins>or clients MAY</ins> <del>may</del> generate the Content-MD5 header field; proxies and
gateways MUST NOT generate it, as this would defeat its value as an
end-to-end integrity check. Any recipient of the entity-body,
including gateways and proxies, MAY check that the digest value in
this header field matches that of the entity-body as received.</p></blockquote><p><code class="HTTP">Content-MD5</code> 頭欄は、起源サーバー<ins>またはクライアント</ins>によって
<code class="ABNF">entity-body</code> の完全性検査を機能させるために生成されても<strong>構いません</strong>。
串及び関門はこれを生成しては<strong>なりません</strong>。
そうするとこの欄の末端対末端完全性検査としての値の意味をなくしてしまいます。
関門及び駆使を含む <code class="ABNF">entity-body</code> の受信者は、
この頭欄の値が受信した <code class="ABNF">entity-body</code>
のものと一致するかを検査しても<strong>構いません</strong>。</p><blockquote><p>The MD5 digest is computed based on the content of the entity-body,
including any <del>Content-Encoding</del> <ins>content-coding</ins> that has been applied, but not
including any <ins>transfer-encoding</ins> <del>Transfer-Encoding that may have been</del> applied to the
message-body. If the message is received with a <del>Transfer-Encoding</del> <ins>transfer-encoding</ins>,
that encoding <del>must</del> <ins>MUST</ins> be removed prior to checking the Content-MD5 value
against the received entity.</p></blockquote><p>MD5 要約は、適用されている <code class="ABNF">content-coding</code> を含み、
<code class="ABNF">message-body</code> に適用される <code class="ABNF">transfer-encoding</code>
は含まない、 <code class="ABNF">entity-body</code> の内容に基づき計算します。
メッセージを <code class="ABNF">transfer-encoding</code> 
つきで受信したら、その符号化は <code class="HTTP">Content-MD5</code> 値と受信した実体を検査する前に取り除かなければ<strong>なりません</strong>。</p><blockquote><p>This has the result that the digest is computed on the octets of the
entity-body exactly as, and in the order that, they would be sent if
no <del>Transfer-Encoding</del> <ins>transfer-encoding</ins> were being applied.</p></blockquote><p>これによって、要約は <code class="ABNF">transfer-encoding</code> 
が何も適用されていない場合の <code class="ABNF">entity-body</code>
のそのまま同じ順のオクテット並びについて計算したものになります。</p><blockquote><p>HTTP extends RFC 1864 to permit the digest to be computed for MIME
composite media-types (e.g., multipart/* and message/rfc822), but
this does not change how the digest is computed as defined in the
preceding paragraph.</p></blockquote><p>HTTP は RFC 1864 を拡張し、 MIME 結合媒体型 (たとえば <code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/*</anchor></code>
や <code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/rfc822</anchor></code>) について要約を計算することを認めますが、
これは前段落で定義した要約の計算方法を変更するものではありません。</p><blockquote><p><del>Note:</del> There are several consequences of this. The entity-body for
composite types <del>may</del> <ins>MAY</ins> contain many body-parts, each with its own MIME
and HTTP headers (including Content-MD5, Content-Transfer-Encoding,
and Content-Encoding headers). If a body-part has a 
Content-Transfer-Encoding or Content-Encoding header, it is assumed that
the content of the body-part has had the encoding applied, and the
body-part is included in the Content-MD5 digest as is -- i.e.,
after the application. The Transfer-Encoding header field is not
allowed within body-parts.</p></blockquote><p>これには幾つかの重要な点があります。
結合型の <code class="ABNF">entity-body</code> は複数の本体部分を含んでいても<strong>構いません</strong>で、
それぞれはそれぞれの MIME 頭・ HTTP 頭 (<code class="HTTP">Content-MD5</code>,
<code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Transfer-Encoding</anchor></code>, <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding</anchor></code>
を含む。) を持っています。本体部分が <code class="HTTP">Content-Transfer-Encoding</code>
や <code class="HTTP">Content-Encoding</code> 頭を持っていれば、本体部分の内容はその符号化が適用されていることが仮定され、
その本体部分がそのまま、つまり、適用した状態で <code class="HTTP">Content-MD5</code>
要約に含まれます。 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Transfer-Encoding</anchor></code>
頭欄は本体部文中では認められていません。</p><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><blockquote xmlns="http://www.w3.org/1999/xhtml"><p>Conversion of all line breaks to CRLF MUST NOT be done before
computing or checking the digest: the line break convention used in
the text actually transmitted MUST be left unaltered when computing
the digest.</p></blockquote><p xmlns="http://www.w3.org/1999/xhtml">全ての改行の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRLF</anchor> への変換は要約を計算・検査する前に行っては<strong>なりません</strong>。
実際に転送された文の中の改行の表記は要約の計算時には換えずに残しておかなければ<strong>なりません</strong>。</p></insert><blockquote><p>Note: while the definition of Content-MD5 is exactly the same for
HTTP as in RFC 1864 for MIME entity-bodies, there are several ways
in which the application of Content-MD5 to HTTP entity-bodies
differs from its application to MIME entity-bodies. One is that
HTTP, unlike MIME, does not use Content-Transfer-Encoding, and does
use Transfer-Encoding and Content-Encoding. Another is that HTTP
more frequently uses binary content types than MIME, so it is worth
noting that, in such cases, the byte order used to compute the
digest is the transmission byte order defined for the type. Lastly,
HTTP allows transmission of text types with any of several line
break conventions and not just the canonical form using CRLF. <del>Conversion of all line breaks to CRLF should not be done before computing or checking the digest: the line break convention used in the text actually transmitted should be left unaltered when computing the digest.</del></p></blockquote><p><code class="HTTP">Content-MD5</code> の定義は RFC 1864 の MIME 実体本体についてのものと全く同じですが、
<code class="HTTP">Content-MD5</code> の HTTP 実体本体への適用においては MIME
実体への適用と多少異なる点があります。一つは HTTP では MIME 
とは違って <code class="MIME">Content-Transfer-Encoding</code> を使わず、
<code class="HTTP">Transfer-Encoding</code> と <code class="HTTP">Content-Encoding</code>
を使うことです。もう一つは、 HTTP は MIME より頻繁に <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">binary</anchor></code>
内容型を使うので、その場合には要約を計算するのに使うバイト順がその型について定義された転送バイト順であることを注記する価値があるということです。
最後に、 HTTP は CRLF を使った正統形ではない幾つかの改行表記法を <code>text</code>
型の転送で認めていることです。</p></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3230</anchor> は、 <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-MD5:</anchor></code> 
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体本体</anchor>に関するもので、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値</anchor>に関するものではない <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;19</anchor-internal></src> として、
新たに <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Digest:</anchor></code> を追加しています。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite xml:lang="en">RFC 3230 - Instance Digests in HTTP</cite> (<time>2014-08-31 18:57:37 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3230#section-1">http://tools.ietf.org/html/rfc3230#section-1</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite xml:lang="en">RFC 3230 - Instance Digests in HTTP</cite> (<time>2014-08-31 18:57:37 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3230#section-5">http://tools.ietf.org/html/rfc3230#section-5</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ダイジェストアルゴリズム</anchor> <dfn><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contentMD5</anchor></code></dfn>
は、 <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-MD5:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>を表します。
この値は <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Want-Digest:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>に指定できます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;22</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Want-Digest:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>における
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contentMD5</anchor></code> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">q値</anchor>が 0 <em>以外</em>の時は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">送信者</anchor>が <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-MD5:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>の受信を望んでいることを表します
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;22</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Want-Digest:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>における
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contentMD5</anchor></code> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">q値</anchor>が 0 の時は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">送信者</anchor>が <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-MD5:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>を無視することを表します
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;22</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contentMD5</anchor></code> は <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Digest:</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>で使っては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;22</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ダイジェストアルゴリズム</anchor>の値はなぜか <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA登録簿</anchor>に登録されていません。
<time>2014-11-23T07:13:23.600Z</time></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> RFC 3230 (実現値要約) 5 Negotiation of Content-MD5</figcaption><blockquote><p>HTTP/1.1 provides a Content-MD5 header field, but does not provide
any mechanism for requesting its use (or non-use).  The Want-Digest
header field defined in this document provides the basis for such a mechanism.</p></blockquote><p>HTTP/1.1 は <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-MD5</anchor></code> 頭欄を提供していますが、
これを使用すること (または使用しないこと) 
を要求するための仕組みは提供していません。
この文書で定義する <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Want-Digest</anchor></code> 頭欄はその仕組みの基礎を提供します。</p><blockquote><p>First, we add to the set of digest-algorithm values (in section
4.1.1) the token &quot;contentMD5&quot;, with the provision that this digest-algorithm MUST NOT be used in a Digest header field.</p></blockquote><p>まず、 <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">digest-algorithm</anchor></code> 値の集合に字句
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contentMD5</anchor></code> を加えます。
但し、この <code class="ABNF">digest-algorithm</code> は <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Digest</anchor></code>
頭欄で使用しては<strong>なりません</strong>。</p><blockquote><p>The presence of the &quot;contentMD5&quot; digest-algorithm with a non-zero
qvalue in a Want-Digest header field indicates that the sender wishes
to receive a Content-MD5 header on messages associated with the
Request-URI.</p></blockquote><p><code class="HTTP">Want-Digest</code> 頭欄に非零の <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">qvalue</anchor></code>
の <code class="HTTP">contentMD5</code> <code class="ABNF">digest-algorithm</code>
を示すことは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">送信者</anchor>が <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Request-URI</anchor></code>
に関連付けられた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>で <code class="HTTP">Content-MD5</code>
頭を受信したいと思っていることを示します。</p><blockquote><p>The presence of the &quot;contentMD5&quot; digest-algorithm with a zero qvalue
in a Want-Digest header field indicates that the sender will ignore
Content-MD5 headers on messages associated with the Request-URI.</p></blockquote><p><code class="HTTP">Want-Digest</code> 頭欄に零の <code class="ABNF">qvalue</code>
の <code class="HTTP">contentMD5</code> <code class="ABNF">digest-algorithm</code>
を示すことは、送信者が <code class="ABNF">Request-URI</code>
に関連付けられたメッセージで <code class="HTTP">Content-MD5</code>
頭を無視することを示します。</p></figure><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite xml:lang="en">draft-wood-dtnrg-http-dtn-delivery-07 - Using HTTP for delivery in Delay/Disruption-Tolerant Networks</cite>
( (<time>2012-02-26 11:11:35 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/draft-wood-dtnrg-http-dtn-delivery-07#page-6">http://tools.ietf.org/html/draft-wood-dtnrg-http-dtn-delivery-07#page-6</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2616</anchor> の改訂である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7231</anchor> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分応答</anchor>に関する実装が一貫していないとして
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-MD5:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>を削除しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MD5</anchor> なのか <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3230</anchor> でいう<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MD5</anchor>
なのかが明確ではないということのようです。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 実装が一貫していないから削除されるなら、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor>
のかなりの機能は削除するべきだと思うのですが...</comment-p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite xml:lang="en">RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</cite> (<time>2014-08-07 05:54:02 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7231#page-93">https://tools.ietf.org/html/rfc7231#page-93</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> なお <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA登録簿</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 723x</anchor> 以前の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4229</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src>
を出典として状態「standard」で登録したままになっています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。
(一覧表上は状態が空欄のままとなっています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。) 
明確に廃止とされていないことに何らかの意図があるのかどうかははっきりしません。
<time>2014-11-04T14:53:55.600Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ダイジェストアルゴリズム</anchor>の値 <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contentMD5</anchor></code>
はなぜか<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">廃止</anchor>されていません。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <cite>Message Headers</cite> (<time>2014-10-31 18:26:49 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.iana.org/assignments/message-headers/message-headers.xhtml">http://www.iana.org/assignments/message-headers/message-headers.xhtml</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <cite xml:lang="en">RFC 4229 - HTTP Header Field Registrations</cite> (<time>2014-11-02 09:53:20 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc4229#section-2.1.28">http://tools.ietf.org/html/rfc4229#section-2.1.28</anchor-external></li></ul></refs></section></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC1544</anchor> の通り、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/*</anchor>媒体型や
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/rfc822</anchor>媒体型が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">本体</anchor>である<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>にこの欄をつけることが出来ますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> では出来ません。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/news</anchor>媒体型や
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/http</anchor>媒体型が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">本体</anchor>である<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>に対して使うことが出来るのかは書いてないというか、使えるように読めますが、意図を汲むとすれば使えないと思われます。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/partial</anchor>媒体型についてはどうなのかわかりません。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 2002-10-26 (土) 17:07 <em><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></em>: でも流石に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/news-transmission</anchor>媒体型とかにまで「意図を汲む」のは拡大解釈しすぎな気がしますね。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/external-body</anchor>媒体型ではどうするんだっけ? RFC 1544 には書いてないや。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal> 偽本体の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MD5</anchor> 値? (殆どの場合役に立たんな。) それとも本当の外部実体の MD5 値? はたまた使用禁止だろうか。実装としては混乱を防ぐために禁止して欲しい。 (けど実際誰も使ってない以上混乱しないという話もある(w)。)</li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> RFC 2068・2616 のこの部分の記述ではどうも 
<code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/*</anchor></code> in HTTP
で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CTE</anchor> を使えるのかどうかがはっきりしないね。。。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite>PUT Object - Amazon Simple Storage Service</cite>
( (<time>2013-01-04 00:35:41 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://docs.aws.amazon.com/AmazonS3/2006-03-01/API/RESTObjectPUT.html">http://docs.aws.amazon.com/AmazonS3/2006-03-01/API/RESTObjectPUT.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <cite xml:lang="en">RFC 4236 - HTTP Adaptation with Open Pluggable Edge Services (OPES)</cite>
( (<time>2014-09-22 20:05:44 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc4236#section-3.8.2">https://tools.ietf.org/html/rfc4236#section-3.8.2</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite xml:lang="en">RFC 3229 - Delta encoding in HTTP</cite>
( (<time>2014-10-26 21:15:25 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3229#section-9">http://tools.ietf.org/html/rfc3229#section-9</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <cite>#178 (Content-MD5 and partial responses) – httpbis</cite>
( (<time>2014-11-23 16:28:52 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://trac.tools.ietf.org/wg/httpbis/trac/ticket/178">https://trac.tools.ietf.org/wg/httpbis/trac/ticket/178</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> (<time>2014-07-03 18:27:57 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://storage.sakura.ad.jp/pdf/base_storage_api_reference.pdf">http://storage.sakura.ad.jp/pdf/base_storage_api_reference.pdf</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <cite>Image API Binary Data API calls — Glance Specs 0.0.1.dev157 documentation</cite>
(<time>2016-03-11 02:50:48 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://specs.openstack.org/openstack/glance-specs/specs/api/v2/image-binary-data-api-v2.html">https://specs.openstack.org/openstack/glance-specs/specs/api/v2/image-binary-data-api-v2.html</anchor-external></figcaption><blockquote><p>The Content-MD5 header will contain an MD5 checksum of the image data. Clients are encouraged to verify the integrity of the image data they receive using this checksum.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <cite xml:lang="en">RESTful Management of Source Images on a IIIF Server — IIIF | International Image Interoperability Framework</cite>
(<time>2017-09-15 08:03:41 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://iiif.io/api/annex/rest/#post">http://iiif.io/api/annex/rest/#post</anchor-external></figcaption><blockquote><p>Content-MD5	Response	yes	As a verification that the image was received intact.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <cite xml:lang="en">recursive remove objects expects Content-MD5 with valid SHA256 hash sent. · Issue #4383 · minio/minio</cite>
(<time>2017-11-07 16:25:30 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/minio/minio/issues/4383">https://github.com/minio/minio/issues/4383</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <cite>PUT Object - Amazon Simple Storage Service</cite>
(<time>2017-11-07 07:46:54 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html">http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html</anchor-external></figcaption><blockquote><p>Content-MD5	</p><p>The base64-encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864. This header can be used as a message integrity check to verify that the data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <cite>Common Request Headers - Amazon Simple Storage Service</cite>
(<time>2017-11-07 07:46:54 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html">http://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html</anchor-external></figcaption><blockquote><p>Content-MD5	</p><p>The base64 encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864. This header can be used as a message integrity check to verify that the data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. </p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">awscli</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">S3</anchor> に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アップロード</anchor>すると 
<code>Content-MD5</code>
が送信されているみたいです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MD5</anchor>
の計算から実際のファイル送信までにファイルが書き換わると、
サーバーがエラーを返します。
<time>2022-04-14T03:59:42.200Z</time></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <cite xml:lang="ja">ストリーミング転送  |  Cloud Storage ドキュメント  |  Google Cloud Platform</cite>
(<time>2017-12-06 16:07:29 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://cloud.google.com/storage/docs/streaming?hl=ja">https://cloud.google.com/storage/docs/streaming?hl=ja</anchor-external></figcaption><blockquote><p>Google Cloud Storage では、ストリーミング アップロードの開始時点の Content-MD5 と完了したアップロードの Content-MD5 を比較しません。これは、アップロードが完了するまでは Google Cloud Storage はアップロードするコンテンツについて一切把握できず、アップロード開始時点に Content-MD5 を作成できないためです。そのため、ストリーミング アップロードが完了した後、整合性をチェックする必要があります。</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> 
最近は
<code>Content-MD5:</code>
ヘッダーをあちこちで見かけます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CDN</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロキシサーバー</anchor>がつけているものか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストレージサーバー</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体</anchor>配信サーバーでつけているものか。
<time>2020-03-30T05:59:25.900Z</time></p></section></body></html>