<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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>内容符号化</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">content coding</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表現</anchor>に対して適用されている、あるいは適用することができる<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化変形<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">encoding transformation</rt></rubyb>です。
<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="434" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;434</anchor-internal></src></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="434" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[434]</anchor-end> <strong><cite xml:lang="en">RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</cite> (<time>2014-06-07 01:55:45 +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#section-3.1.2.1">https://tools.ietf.org/html/rfc7231#section-3.1.2.1</anchor-external></strong></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="439" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[439]</anchor-end> <cite xml:lang="en">RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</cite> (<time>2014-06-07 01:55:45 +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#section-3.1.2.2">https://tools.ietf.org/html/rfc7231#section-3.1.2.2</anchor-external></li><li><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> <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#section-8.4">https://tools.ietf.org/html/rfc7231#section-8.4</anchor-external></li><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 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#appendix-A.4">https://tools.ietf.org/html/rfc7231#appendix-A.4</anchor-external></li><li><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> <cite>Hypertext Transfer Protocol (HTTP) Parameters</cite> (<time>2014-06-13 18:52:05 +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/http-parameters/http-parameters.xhtml#content-coding">http://www.iana.org/assignments/http-parameters/http-parameters.xhtml#content-coding</anchor-external></li><li><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> <cite xml:lang="en">RFC 3261 - SIP: Session Initiation Protocol</cite> (<time>2014-08-15 14:48:03 +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/rfc3261#section-20.12">http://tools.ietf.org/html/rfc3261#section-20.12</anchor-external></li><li><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 xml:lang="en">RFC 2295 - Transparent Content Negotiation in HTTP</cite> (<time>2014-08-31 19:36:42 +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/rfc2295#section-10.8">http://tools.ietf.org/html/rfc2295#section-10.8</anchor-external></li><li><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> <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-10.7">http://tools.ietf.org/html/rfc3229#section-10.7</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <cite xml:lang="en">RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)</cite> (<time>2015-05-15 10:14: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="https://tools.ietf.org/html/rfc7540#section-10.6">https://tools.ietf.org/html/rfc7540#section-10.6</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <cite xml:lang="en">RFC 7694 - Hypertext Transfer Protocol (HTTP) Client-Initiated Content-Encoding</cite> (<time>2015-11-04 14:05:14 +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/rfc7694">https://tools.ietf.org/html/rfc7694</anchor-external></li></ul></refs></section><section><h1>構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="435" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[435]</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:">大文字・小文字不区別</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="434" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;434</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="417" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[417]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化</anchor>を表す値については、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> をご覧ください。</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="437" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[437]</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>は指定できません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="440" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[440]</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:">Content-Encoding:</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="439" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;439</anchor-internal></src>。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="441" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[441]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sdch</anchor></code> が独自の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPヘッダー</anchor>を使います。</p></example></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="438" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[438]</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> の <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</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:">Accept-Encoding:</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:">encoding</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体属性</anchor>、
<code>supportedContentEncodings</code>
で用います。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</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/1.0</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/1.1</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/2</anchor>
のいずれでも使うことができます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> 理論上は<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="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;56</anchor-internal></src> 
<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></section><section><h1>意味</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="442" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[442]</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:">復号</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-Encoding:</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>することで、
元々のデータが得られます。このデータが、 <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Type:</anchor></code>
によって指定されたデータとなります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="443" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[443]</anchor-end> 例えば、<pre class="HTTP example code">Content-Type: text/html; charset=utf-8
Content-Encoding: gzip, deflate
Transfer-Encoding: deflate, chunked</pre>... と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</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:">chunked</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:">deflate</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:">deflate</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:">gzip</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:">gzip</anchor></code>
を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>すると、 <code class="charset" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">utf-8</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:">HTML文書</anchor>が得られます。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="444" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[444]</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:">表現</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>その他の利用の直前に<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="439" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;439</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="445" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[445]</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:">復号</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>はそのような使い方を想定しているものではないようです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="446" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[446]</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:">MIME型</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>としては扱いません。 <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="439" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;439</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="447" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[447]</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:">Content-Type:</anchor></code> に含まれるか
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</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>されたりする)
<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>を提供することもあり得ます
<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="439" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;439</anchor-internal></src>。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> 
現実問題として、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化</anchor>の用法は何種類か異なるものがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor> など一般のファイル転送に使われる場合
(例えば <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gzip</anchor></code>)。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">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:">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>に近い利用法。
通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>での
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>の表示のとき、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に気づかれることなく転送を高速化するためによく使われています。</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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">転送符号化</anchor>で <code xmlns="http://www.w3.org/1999/xhtml">gzip</code> などが使えることになっているのは、
こうした用法を想定していたと思われます。ところがほとんど実装されませんでした。
現在一般的に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化</anchor>が使われています。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</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:">ダウンロード</anchor>に使われる場合。
例えば <code>.tar.gz</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>を配布するサーバーで、
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gzip</anchor></code>
となっていることがあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPクライアント</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">展開</anchor>しないでそのまま保存することが期待されています。</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="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> 透過的な用法と区別が難しく、古い
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</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>と認識されていました。
理論的な健全性のみならず実用上も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">転送符号化</anchor>を区別するべき理由はここにありました。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>されたデータの転送に用いる場合
(例えば <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">aes128gcm</anchor></code>)。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">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>ができず、
<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></section><section><h1>送信者の処理</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</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:">要求</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>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>も、実装しないことができます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> 汎用の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPサーバー</anchor>の実装の多くは、 <code>gzip</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>に対応しています。
それ以外にも対応していることもありますが、あまり普及はしていません。</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>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</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:">Accept-Encoding:</anchor></code> を参照してください。</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> <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>を適用しませんが、
仕様上<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</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-Encoding:</anchor></code>
を指定することが禁止されているわけではありません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">ただし対応していない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>も少なくないでしょうから、事前に何らかの方法で対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化</anchor>を知っていないなら、
使うべきではないでしょう。</comment-p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">透過内容折衝</anchor>においては、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apache</anchor> の拡張である <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">encoding</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>が適用された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体</anchor>であることを明示できます。</p><p xmlns="http://www.w3.org/1999/xhtml"><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> <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>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生成</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-Encoding:</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>の一覧の<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="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;35</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="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</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:">基底実現値</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>することなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">差分</anchor>を適用できます。 <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;35</anchor-internal></src></comment-p></history></section><section><h1>受信者の処理</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</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:">サーバー</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-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="448" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[448]</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:">内容符号化</anchor>による<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表現</anchor>を含んでいる場合に、
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">415</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="439" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;439</anchor-internal></src>。
<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>が原因で処理に失敗した時は、
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">415</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>を返す<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">ought to</rt></rubyb>です <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="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;56</anchor-internal></src>。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>では <code>gzip</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化</anchor>が使われる場合がよくあります。
<code>Accept-Encoding:</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>に対応しなくても良いかもしれませんが、
それが真に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web互換</anchor>であるかどうかは不明瞭です。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は <code>gzip</code>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>に対応するべきです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>では <code>deflate</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>に対応しないと<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web互換</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>は <code>deflate</code>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>にも対応するのが良さそうです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は <code>br</code> に対応している場合があります。
現時点では対応しなくても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web互換性</anchor>は損なわれないと考えられています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は <code>compress</code> を含めその他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化</anchor>に対応する必要はありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="449" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[449]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は、 <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gzip</anchor></code> や <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deflate</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>してから<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリング</anchor>します。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compress</anchor></code> には対応していないようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は未対応の <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</anchor></code>
が指定された時、この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>を無視するようです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">従って正しく表示されません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME Sniffing</anchor> の対象となる時は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ダウンロード</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="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> 常に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ダウンロード</anchor>とするか、エラーを表示するのが良さそうではありますが、
もしかすると不適切な設定のページがあって見れなくなってしまうのかもしれません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="450" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[450]</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:">復号</anchor>しないで保存するのが望ましいと考えられています。
かつて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</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:">tar</anchor>+<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gz</anchor> で配布されているファイルに <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</anchor></code>
が指定されており、勝手に展開される上に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル名</anchor>に <code>.gz</code>
が含まれたままになるような不都合が起きていました。</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="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</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:">内容符号化</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>の意図に即した動作かもしれません。</comment-p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><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> <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>が適用された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">差分</anchor>を受信した時は、<figure class="list"><ul><li><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> <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>で適用されている<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="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;35</anchor-internal></src></li><li><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> <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>で適用されている<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>を<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>と同じ状態にします。 <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="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;35</anchor-internal></src></li></ul></figure></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="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</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:">内容符号化</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>と同じ状態にできない場合もあります。
その時は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">差分</anchor>は適用できません。</comment-p><p xmlns="http://www.w3.org/1999/xhtml"><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> <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>に<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>を使って後から<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-Encoding:</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>
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</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="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;35</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</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:">内容符号化</anchor>の適用後)
に関する値であることに由来しています。</comment-p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</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:">内容符号化</anchor>が原因で <code class="HTTP" xml:lang=""><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">415</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>に <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Accept-Encoding:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>を含める<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">ought to</rt></rubyb>です
<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="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;56</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>は、その他の原因で <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">415</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>に <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Accept-Encoding:</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="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;56</anchor-internal></src>。</p></section><section><h1>内容符号化の値の一覧</h1><p><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> 次の値が使われていたり、提案されたりしています。<figure class="list"><table><tbody><tr><td><code class="HTTP" xml:lang="en">7bit</code></td></tr><tr><td><code class="HTTP" xml:lang="en">8bit</code></td></tr><tr><td><code class="HTTP" xml:lang="en">aesgcm</code></td></tr><tr><td><code class="HTTP" xml:lang="en">aesgcm128</code></td></tr><tr><td><code class="HTTP" xml:lang="en">aes128gcm</code></td></tr><tr><td><code class="HTTP" xml:lang="en">amz-1.0</code></td></tr><tr><td><code class="HTTP" xml:lang="en">aws-chunked</code></td></tr><tr><td><code class="HTTP" xml:lang="en">base64</code></td></tr><tr><td><code class="HTTP" xml:lang="en">binary</code></td></tr><tr><td><code class="HTTP" xml:lang="en">br<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Brotli</title></code></td></tr><tr><td><code class="HTTP" xml:lang="en">bzip</code></td></tr><tr><td><code class="HTTP" xml:lang="en">x-bzip</code></td></tr><tr><td><code class="HTTP" xml:lang="en">bzip2</code></td></tr><tr><td><code class="HTTP" xml:lang="en">x-bzip2</code></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compress</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compress</anchor></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原案標準</anchor></td><td><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:">IANAREG</anchor></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">x-compress</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compress</anchor></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">情報提供RFC</anchor> → <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compress</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1945</anchor></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deflate</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deflate</anchor></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原案標準</anchor></td><td><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:">IANAREG</anchor></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">x-deflate</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deflate</anchor></td><td>→ <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deflate</anchor></code></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">exi</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EXI</anchor></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">作業原案</anchor></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EXI</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANAREG</anchor></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gzip</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gzip</anchor></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原案標準</anchor></td><td><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:">IANAREG</anchor></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">x-gzip</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gzip</anchor></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">情報提供RFC</anchor> → <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gzip</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1945</anchor></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">x-hqx</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BinHex</anchor></td><td></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">identity</anchor></code></td><td>変形なし</td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原案標準</anchor></td><td><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:">IANAREG</anchor></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lzma</anchor></code></td></tr><tr><td><code class="HTTP" xml:lang="en">none<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">none (内容符号化)</title></code></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pack200-gzip</anchor></code></td><td></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSR</anchor></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSR#200</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANAREG</anchor></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">peerdist</anchor></code></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-printable</anchor></code></td></tr><tr><td><code class="HTTP">rot13</code></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sdch</anchor></code></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">tar</anchor></code></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/html</anchor></code></td><td></td><td>非標準</td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/plain</anchor></code></td><td></td><td>非標準</td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">x_uuencode</anchor></code></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">x-zip</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compress</anchor></td><td>→ <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compress</anchor></code></td></tr><tr><td><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xz</anchor></code></td></tr><tr><td><code class="HTTP">zstd</code></td></tr></tbody></table></figure></p><p><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> 多分変てこなロボットだと思うんですが、
なぜか <code class="HTTP">Accept-Encoding</code> に
<code class="HTTP">text/html</code> とか <code class="HTTP">text/plain</code>
とか送ってくる奴がいます。数でいうと結構出現頻度が高い。
(同じ奴ばっかだと思うけど。)</p><p><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> <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Accept-Encoding:</anchor></code> 欄に 
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">7bit</anchor></code>, <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">8bit</anchor></code>, 
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">binary</anchor></code> とか書く <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UA</anchor> があるらしい。
なんか勘違いしているような気がする。</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> <code class="HTTP">x-compress</code>, <code class="HTTP">x-gzip</code> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/1.1</anchor> が分かる相手には使うべきではありません。
逆に <code class="HTTP">compress</code>, <code class="HTTP">gzip</code> は、 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/1.0</anchor> しか分からない相手に使うべきではありません。</p><p><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> 今時は HTTP/1.0 の実装でも <code class="HTTP">x-gzip</code> は知ってるけど <code class="HTTP">gzip</code> は知らないなんてのは無いみたいです。 <code class="HTTP">Accept-Encoding</code> も <code class="HTTP">gzip</code> で送ってくるのがほとんど。 (<code class="HTTP">x-gzip</code> <em>も</em>送ってくる奴も結構いますが。)</p><p><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SIP</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:">内容符号化</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="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3261</anchor> には「<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">tar</anchor></code>」
という値の例がありますが <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="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal></src>、定義されていませんし、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA</anchor>
にも登録されていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <cite>HTTP::Message - search.cpan.org</cite> (<time>2017-09-10 18:28:51 +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://search.cpan.org/~oalders/HTTP-Message-6.13/lib/HTTP/Message.pm">http://search.cpan.org/~oalders/HTTP-Message-6.13/lib/HTTP/Message.pm</anchor-external>
は <code>Content-Encoding:</code> の値として <code>base64</code> や 
<code>quoted-printable</code> を実装しています。
<code>base64</code> については符号化にも対応しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> <cite>HTTP::Message - search.cpan.org</cite> (<time>2017-09-10 18:28:51 +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://search.cpan.org/~oalders/HTTP-Message-6.13/lib/HTTP/Message.pm">http://search.cpan.org/~oalders/HTTP-Message-6.13/lib/HTTP/Message.pm</anchor-external>
は <code>rot13</code> を符号化して <code>Content-Encoding:</code> の値に設定することができますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>には対応していません。</p></section><section><h1>IANA 登録簿</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="436" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[436]</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> に登録する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">ought to</rt></rubyb>です <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="434" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;434</anchor-internal></src>。</p><p><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA登録簿</anchor> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;11</anchor-internal>) は、<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>と同じ名前を使っては<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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src> とされています。</p></section><section><h1>誤用</h1><ul><li><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> <code class="HTTP">Content-Encoding: gzip</code> かつ <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Type:</anchor> application/x-gzip</code> で送ってくるサーバーがありますが、ほとんど間違いなく間違いなので(謎)、止めた方がいいですね。<ul><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> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal> の問題の原因は実は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apache</anchor> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">distro</anchor> 配布の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RPM</anchor> で入れたりした場合に、システム共用の <code class="file"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">/etc</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mime.types</anchor></code> が使われて、そのファイルに <code>application/x-gzip .gz</code> って書いてある、って話だったりします。ちょっと困ったもんです。</li></ul></li><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> <code class="HTTP">Content-Encoding: gzip</code> かつ <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Type:</anchor> application/x-gzip</code> というレスポンスは、
<code>*.tar.gz</code> などの形式で配布しているアーカイブのためなのでは無いのですか?
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ten</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2004-06-02 11:43:03 +00:00</weak>)</li></ul><p><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>
<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> そのような応答は、
まず <code class="HTTP">Content-Encoding</code> を復号して生に戻した状態で <code class="MIME">application/x-gzip</code> として解釈するのが正解です。</p><p><code class="file"><var>*</var>.tar.gz</code> を更にもう一度 gzip 
で圧縮しているのであれば <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> の通りで何ら問題ありませんが、
<code class="file"><var>*</var>.tar.gz</code> をそのまま送っているのであれば問題です 
(<code class="MIME">application/x-tar</code> にでもなっていないと)。</p><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2004-06-03 00:24:16 +00:00</weak>)</p></section><section><h1>セキュリティー</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BREACH</anchor> 攻撃に注意が必要です。機密性の高い内容を扱う場合は攻撃できないように注意して設計するか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">圧縮</anchor>を用いるべきではありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</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:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。データの出所が不明なら、
<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="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;46</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</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:">内容符号化</anchor>により<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">圧縮</anchor>することは問題ありませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</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></section><section><h1>MIME との関係</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="416" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[416]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>は名前こそ 
<code>Content-</code> がつきますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> では規定されておらず、 HTTP 独自のものです。</p><p><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> 内容符号化は MIME の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容転送符号化</anchor>や HTTP
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">転送符号化</anchor>よりも上 (データ側) の層に当たります。
MIME への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">関門</anchor>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体型</anchor>の指定に変換することが良いとされています。
(例: HTTP: <samp class="HTTP">Content-Encoding: gzip</samp>
→ MIME: <samp class="HTTP">Content-Type: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/x-gzip</anchor></samp>)</p><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:">HTTP</anchor> から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> に変換するときには、
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Type:</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>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>してから<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">転送</anchor>するかの操作をする<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">ought to</rt></rubyb>です
<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="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</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="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1341</anchor> 時代には <code xmlns="http://www.w3.org/1999/xhtml" class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/octet-stream</anchor></code>
に <code xmlns="http://www.w3.org/1999/xhtml" class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">conversions</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>があり、
これは <code xmlns="http://www.w3.org/1999/xhtml" class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding:</anchor></code> と同じ機能 <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal></src>
とされています。ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</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="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:">MIME</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CTE</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:">CTE</anchor> に置き換えることもできません。</comment-p></section><section><h1>透過内容折衝との関係</h1><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> <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>は直交するものです。
<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="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;24</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> <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>の<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="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;24</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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apache</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>に含めています <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="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;27</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><code xmlns="http://www.w3.org/1999/xhtml" class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">encoding</anchor></code> も参照。</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="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite>コンテントネゴシエーション - Apache HTTP サーバ</cite> 
<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://httpd.apache.org/docs/2.0/ja/content-negotiation.html#extensions">http://httpd.apache.org/docs/2.0/ja/content-negotiation.html#extensions</anchor-external></li></ul></refs></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="419" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[419]</anchor-end> <strong>合わせて読みたい</strong>: <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><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="418" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[418]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化と転送符号化</anchor>の項もあわせてご覧ください。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="422" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[422]</anchor-end> <dfn>内容符号化</dfn>は、 HTTP や派生プロトコルで<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:">MIME</anchor> 的には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体型</anchor>に含まれてしまいますが、
媒体型を包含する別の媒体型とでも言うべき、独立したものであることが求められます。
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例えば圧縮なら、「<anchor>PNG</anchor> で使っている圧縮」のような特定の媒体型に依存したものではなく、「gzip」のように圧縮対象に依存しないものでないといけません。</weak></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホップ間</anchor>の転送のための必要から行う変形は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">転送符号化</anchor>というまた別のものになります。
HTTP の転送符号化は MIME の<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="424" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[424]</anchor-end> <cite xml:lang="en-us">SOAP over Java Message Service 1.0</cite>
( (<time>2012-02-15 02:00: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="http://www.w3.org/TR/2012/REC-soapjms-20120216/#contentEncoding">http://www.w3.org/TR/2012/REC-soapjms-20120216/#contentEncoding</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="425" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[425]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合成型</anchor>である <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/*</anchor></code> や <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/*</anchor></code> への適用について <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="426" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[426]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SOAP/JMS</anchor> では <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="425" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;425</anchor-internal> のケースで意味を未定義と明記しています <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="424" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;424</anchor-internal></src>。 
規定がないことには違いありません。</p><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:">実現値</anchor>は、定義上、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化</anchor>の適用後を指しています。</p></section><section><h1>歴史</h1><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="429" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[429]</anchor-end> RFC 2616 の3.5 Content Codings</figcaption><pre>   Content coding values indicate an encoding transformation that has
   been or can be applied to an entity. Content codings are primarily
   used to allow a document to be compressed or otherwise usefully
   transformed without losing the identity of its underlying media type
   and without loss of information. Frequently, the entity is stored in
   coded form, transmitted directly, and only decoded by the recipient.</pre><ul><li>content-coding   = token</li></ul><pre>   All content-coding values are case-insensitive. HTTP/1.1 uses
   content-coding values in the Accept-Encoding (section 14.3) and
   Content-Encoding (section 14.11) header fields. Although the value
   describes the content-coding, what is more important is that it
   indicates what decoding mechanism will be required to remove the
   encoding.</pre><pre>   The Internet Assigned Numbers Authority (IANA) acts as a registry for
   content-coding value tokens. Initially, the registry contains the
   following tokens:</pre><pre>   gzip An encoding format produced by the file compression program
        &quot;gzip&quot; (GNU zip) as described in RFC 1952 [25]. This format is a
        Lempel-Ziv coding (LZ77) with a 32 bit CRC.</pre><p>ファイル圧縮プログラム「gzip」(GNU zip) で生成される符号化形式で、
RFC 1952 で説明されているもの。この形式は Lempel-Ziv 符号化 (LZ77)
と 32ビット <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRC</anchor> を使っています。</p><pre>   compress
        The encoding format produced by the common UNIX file compression
        program &quot;compress&quot;. This format is an adaptive Lempel-Ziv-Welch
        coding (LZW).</pre><p>共通 UNIX ファイル圧縮プログラム「compress」で生成される符号化形式。
この形式は Lempel-Ziv-Welch 符号化 (LZW) の一応用です。</p><pre>        Use of program names for the identification of encoding formats
        is not desirable and is discouraged for future encodings. Their
        use here is representative of historical practice, not good
        design. For compatibility with previous implementations of HTTP,
        applications SHOULD consider &quot;x-gzip&quot; and &quot;x-compress&quot; to be
        equivalent to &quot;gzip&quot; and &quot;compress&quot; respectively.</pre><p>符号化形式にプログラム名を使うのは望ましいことではなく、
将来の符号化方式には推奨されません。ここで使っているのは
歴史的習慣表現であって、良い設計とはいえません。
HTTP の古い実装との互換性のため、応用は &quot;x-gzip&quot; と &quot;x-compress&quot;
をそれぞれ &quot;gzip&quot; および &quot;compress&quot; と同様に解釈するのが
<strong>望ましい</strong>です。</p><pre>   deflate
        The &quot;zlib&quot; format defined in RFC 1950 [31] in combination with
        the &quot;deflate&quot; compression mechanism described in RFC 1951 [29].</pre><p>RFC 1950 で定義された「zlib」形式と RFC 1951 で説明されている
「deflate」 (収縮) 形式を組み合わせたものです。</p><pre>   identity
        The default (identity) encoding; the use of no transformation
        whatsoever. This content-coding is used only in the Accept-
        Encoding header, and SHOULD NOT be used in the Content-Encoding
        header.</pre><p>規定 (同等) 符号化方式。無変形に使います。この内容符号化は
Accept-Encoding (承認符号化方式) 頭にのみ使われ、
Content-Encoding (内容符号化方式) 頭に使う<strong>べきではありません</strong>。</p><pre>   New content-coding value tokens SHOULD be registered; to allow
   interoperability between clients and servers, specifications of the
   content coding algorithms needed to implement a new value SHOULD be
   publicly available and adequate for independent implementation, and
   conform to the purpose of content coding defined in this section.</pre></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="430" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[430]</anchor-end> HTTP/1.0 (RFC 1945) から抜粋</figcaption><pre>       content-coding = &quot;x-gzip&quot; | &quot;x-compress&quot; | token</pre><pre>       Note: For future compatibility, HTTP/1.0 applications should
       consider &quot;gzip&quot; and &quot;compress&quot; to be equivalent to &quot;x-gzip&quot;
       and &quot;x-compress&quot;, respectively.

** RFC 1945 (HTTP/1.0) 10.3; RFC 2068 14.12・2616 14.11 (HTTP/1.1) Content-Encoding
&gt; The Content-Encoding entity-header field is used as a modifier to the
media-type. When present, its value indicates what additional content
codings have been applied to the entity-body, and thus what decoding
mechanism<ins>s <ins>{2068}</ins></ins> <del><ins>{1945}</ins> must</del> <ins><ins>{2068}</ins> MUST</ins> <ins><ins>{2616}</ins> must</ins> be applied in order to obtain the media-type
referenced by the Content-Type header field. <del><ins>{1945}</ins> The</del> Content-Encoding is
primarily used to allow a document to be compressed without losing
the identity of its underlying media type.</pre><p><code class="HTTP">Content-Encoding</code> 実体頭欄は、媒体型の修飾子として使います。
示されている時、その値は何の追加の内容符号化が <code class="ABNF">entity-body</code>
に適用されており、ゆえに <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Type</anchor></code>
頭欄で参照している媒体型を得るためには何の復号機構を適用しなければならないかを示します。
<code class="HTTP">Content-Encoding</code> は主として元々の媒体型の識別を失うことなく文書を圧縮することを可能とするのに使います。</p><blockquote><ul><li>Content-Encoding = &quot;Content-Encoding&quot; &quot;:&quot; <ins><ins>{2068}</ins> 1#</ins>content-coding</li></ul></blockquote><blockquote><p>Content codings are defined in <del><ins>{1945}</ins> Section</del> <ins><ins>{2068}</ins> section</ins> 3.5. An example of its use is</p><ul><li>Content-Encoding: <del><ins>{1945}</ins> x-</del>gzip</li></ul></blockquote><blockquote><p>The <del><ins>{1945,2068}</ins> Content-Encoding</del> <ins><ins>{2616}</ins> <code class="ABNF">content-coding</code></ins> is a characteristic of the <del><ins>{1945}</ins> resource</del> <ins><ins>{2068}</ins> entity</ins> identified by
the Request-URI. Typically, the <del><ins>{1945}</ins> resource</del> <ins><ins>{2068}</ins> entity-body</ins> is stored with this
encoding and is only decoded before rendering or analogous usage. <ins><ins>{2616}</ins> However, a non-transparent proxy MAY modify the content-coding if the new coding is known to be acceptable to the recipient, unless the &quot;no-transform&quot; cache-control directive is present in the message.</ins></p></blockquote><p><code class="ABNF">content-coding</code> は、 <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Request-URI</anchor></code>]
で識別される実体の特徴です。典型的には、 <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">entity-bnody</anchor></code>
はこの符号化で蓄積され、レンダリングや同様の使用の前にだけ復号されます。 <ins>しかし、非透過串は、メッセージに <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">no-transform</anchor></code> <code class="ABNF">cache-control</code> 指令が示されていない限り、新しい符号化が受信者に受入れ可能であると分かっているなら、 <code class="ABNF">content-coding</code> を修正しても<strong>構いません</strong>。</ins></p><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><blockquote xmlns="http://www.w3.org/1999/xhtml"><p><ins>{2616}</ins>  If the content-coding of an entity is not &quot;identity&quot;, then the
response MUST include a Content-Encoding entity-header (section
14.11) that lists the non-identity content-coding(s) used.</p></blockquote><p xmlns="http://www.w3.org/1999/xhtml">実体の <code class="ABNF">content-coding</code> が <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">identity</anchor></code>
でないなら、応答は使用した非 identity <code class="ABNF">content-coding</code> を列挙した 
<code class="HTTP">Content-Encoding</code> 実体頭欄を含めなければ<strong>なりません</strong>。</p><blockquote xmlns="http://www.w3.org/1999/xhtml"><p>If the content-coding of an entity in a request message is not
acceptable to the origin server, the server SHOULD respond with a
status code of 415 (Unsupported Media Type).</p></blockquote><p xmlns="http://www.w3.org/1999/xhtml">要求メッセージ中の実体の <code class="ABNF">content-coding</code>
が起源サーバーに受け入れ可能でないときには、サーバーは状態符号
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">415</anchor></code> (未対応媒体型) で反応する<strong>べきです</strong>。</p></insert><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><blockquote xmlns="http://www.w3.org/1999/xhtml"><p><ins>{2068,2616}</ins> If multiple encodings have been applied to an entity, the content
codings MUST be listed in the order in which they were applied.</p><p>Additional information about the encoding parameters MAY be provided
by other entity-header fields not defined by this specification.</p></blockquote><p xmlns="http://www.w3.org/1999/xhtml">複数の符号化が実体に適用されている時は、内容符号化はそれが適用された順に列挙しなければ<strong>なりません</strong>。
符号化引数についての追加情報をこの仕様書で定義していない他の実体頭欄で提供しても<strong>構いません</strong>。</p></insert></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="431" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[431]</anchor-end> RFC 1945 (HTTP/1.0) C.3; RFC 2068 (HTTP/1.1) 19.4.3; RFC 2616 (HTTP/1.1) 19.4.4 Introduction of Content-Encoding</figcaption><blockquote><p><del><del>RFC 1521</del> <ins>MIME</ins></del> <ins>RFC 2045</ins> does not include any concept equivalent to <del>HTTP/1.0</del> <ins>HTTP/1.1</ins>'s 
Content-Encoding header field. Since this acts as a modifier on the media
type, proxies and gateways from HTTP to MIME-compliant protocols <del>must</del> <ins>MUST</ins>
either change the value of the Content-Type header field or decode
the <del>Entity-Body</del> <ins>entity-body</ins> before forwarding the message. (Some experimental
applications of Content-Type for Internet mail have used a media-type
parameter of &quot;;conversions=&lt;content-coding&gt;&quot; to perform <del>an equivalent function as</del> <ins><ins>{2616}</ins> a function equivalent to</ins> Content-Encoding. However, this parameter is not part of <del><del>RFC 1521</del> <ins>MIME</ins></del> <ins>RFC 2045</ins>.)</p></blockquote><p><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> RFC 2045 は HTTP/1.1 の Content-Encoding
頭欄に相当する概念を持っていません。
この行為は媒体型を編集するものなので、 HTTP から MIME
に従ったプロトコルへの串と関門は Content-Type
頭欄の値を変えるか、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体本体</anchor>をメッセージ転送の前に復号するかし<strong>なければなりません</strong>。
(Internet メイルの実験的 Content-Type 応用には媒体型パラメーター
&quot;;conversions=&lt;content-coding&gt;&quot; を Content-Encoding
に相当する機能に使っているものもあります。
しかし、このパラメーターは RFC 2045 の一部ではありません。)</p><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><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:">application/octet-stream</anchor>の <code>conversions</code>
パラメーターのことかな?</p></insert><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml">注意: 注記のない修正点は RFC 1945 → RFC 2068 もの。</p></insert></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="432" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[432]</anchor-end> RFC 1945 (HTTP/1.0); RFC 2068・2616 (HTTP/1.1) 3.5 Content Codings</figcaption><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="421" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[421]</anchor-end> </p><blockquote><p>Content coding values <del>are used to</del>
indicate an encoding transformation that has been <ins>or can be</ins>
applied to a<ins>n</ins> <del>resource</del> <ins>entity</ins>.
Content codings are primarily used to allow a document to be compressed or <del>encrypted</del> <ins>otherwise usefully transformed</ins>
without losing the identity of its underlying media type <ins>and without loss of information</ins>. <del>Typically</del> <ins>Frequently</ins>, the <del>resource</del> <ins>entity</ins> is stored in <del>this encoding</del> <ins>coded form, transmitted directly,</ins> and only decoded <del>before rendering or analogous usage</del> <ins>by the recipient</ins>.</p></blockquote><p>内容符号化値は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>に適用されている、またはすることのできる符号化変形を示します。
内容符号化は、主として、もとの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体型</anchor>の識別を失うことなく、<ins>そして情報を失うことなく、</ins>文書を圧縮したり<del>暗号化したり</del><ins>その他有用に変形したり</ins>するために使います。
多くの場面では、実体は符号化形で蓄積され、直接転送され、<del>レンダリングや同様の使用の前に</del><ins>受信者によって</ins>のみ復号されます。</p><blockquote><ul><li>content-coding = <del>&quot;x-gzip&quot; | &quot;x-compress&quot; |</del> token</li></ul></blockquote><delete xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><blockquote xmlns="http://www.w3.org/1999/xhtml"><p>Note: For future compatibility, HTTP/1.0 applications should
consider &quot;gzip&quot; and &quot;compress&quot; to be equivalent to &quot;x-gzip&quot;
and &quot;x-compress&quot;, respectively.</p></blockquote><p xmlns="http://www.w3.org/1999/xhtml">注意 : 将来との互換性のため、 HTTP/1.0 応用は
<code class="HTTP">gzip</code> および <code class="HTTP">compress</code> をそれぞれ
<code class="HTTP">x-gzip</code> および <code class="HTTP">x-compress</code>
と同等とみなすべきです。</p></delete><blockquote><p>All content-coding values are case-insensitive. <del>HTTP/1.0</del> <ins>HTTP/1.1</ins> uses
content-coding values in the <ins>Accept-Encoding (section 14.3) and</ins> Content-Encoding (<del><ins>{1945}</ins> Section 10.3</del> <ins>section <del><ins>{2068}</ins> 14.12</del> <ins><ins>{2616}</ins> 14.11</ins></ins>) header field<ins>s</ins>.
Although the value describes the content-coding, what is more
important is that it indicates what decoding mechanism will be
required to remove the encoding. <del>Note that a single program may be capable of decoding multiple content-coding formats. Two values are defined by this specification:</del></p></blockquote><p>すべての <code class="ABNF">content-coding</code> 値は大文字・小文字を区別しません。
HTTP は内容符号化値を <ins><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Accept-Encoding</anchor></code> 頭欄と</ins>
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding</anchor></code> 頭欄で使います。
この値は <code class="ABNF">content-coding</code> を記述しますが、
より重要なことは、この値が符号化を取り除くためにどの復号機構が必要であるかを示しているのだということです。<del>単一のプログラムに複数の <code class="ABNF">content-coding</code> 書式を復号する能力があるかもしれないことに注意してください。この仕様書では2つの値を定義します:</del></p><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><blockquote xmlns="http://www.w3.org/1999/xhtml"><p>The Internet Assigned Numbers Authority (IANA) acts as a registry for
content-coding value tokens. Initially, the registry contains the
following tokens:</p></blockquote><p xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA</anchor> が <code class="ABNF">content-coding</code> 値字句の登録簿として機能します。
はじめに、登録簿は次の字句を含みます :</p></insert><blockquote><dl><dt><del>x-</del>gzip</dt><dd>
An encoding format produced by the file compression program &quot;gzip&quot;
(GNU zip) <del>developed by Jean-loup Gailly</del> <ins>as described in RFC 1952 [25] </ins>. This format is <del>typically</del> a Lempel-Ziv coding (LZ77) with a 32 bit CRC.</dd><dt><del>x-</del>compress</dt><dd></dd></dl><p>The encoding format produced by the <ins>common UNIX</ins> file compression
program &quot;compress&quot;. This format is an adaptive Lempel-Ziv-Welch
coding (LZW).</p></blockquote><dl><dt><code class="HTTP"><del>x-</del>gzip</code></dt><dd><del>Jean‐loup Gailly が開発した</del>ファイル圧縮プログラム <code>gzip</code> (GNU zip)
が生成する符号化書式<ins>で、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC1952</anchor> で説明されている</ins>。
この書式は<del>典型的には</del> Lempel‐Ziv 符号化 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LZ77</anchor>)
に32ビット <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRC</anchor> を加えたものである。</dd><dt><code class="HTTP"><del>x-</del>compress</code></dt><dd><del>共通 UNIX</del> ファイル圧縮プログラム
<code>compress</code> が生成する符号化書式。この書式は Lempel‐Ziv‐Welch
符号化 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LZW</anchor>) を使っている。</dd></dl><blockquote><p><del><ins>{1945,2068}</ins> Note:</del> Use of program names for the identification of encoding
formats is not desirable and <del><ins>{1945,2068}</ins> should be</del> <ins>is</ins> discouraged for future
encodings. Their use here is representative of historical practice,
not good design. <ins><ins>{2068,2616}</ins> For compatibility with previous implementations of HTTP, applications <del>should</del> <ins>SHOULD</ins> consider &quot;x-gzip&quot; and &quot;x-compress&quot; to be equivalent to &quot;gzip&quot; and &quot;compress&quot; respectively.</ins></p></blockquote><p>符号化書式の識別にプログラム名を使うことは望ましくなく、
将来の符号化では非推奨<del>とするべき</del>です。
ここでそうしているのは歴史的なものであって、良い設計ではありません。<ins>HTTP の以前の実装との互換性のために、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は <code class="HTTP">x-gzip</code> と <code class="HTTP">x-compress</code> をそれぞれ <code class="HTTP">gzip</code> と <code class="HTTP">compress</code> に等しいものとみなす<strong>べきです</strong>。</ins></p><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><blockquote xmlns="http://www.w3.org/1999/xhtml"><p><ins>{2068,2616}</ins><dl><dt>deflate</dt><dd>The &quot;zlib&quot; format defined in RFC 1950[31] in combination with
the &quot;deflate&quot; compression mechanism described in RFC 1951[29].</dd></dl></p></blockquote><dl xmlns="http://www.w3.org/1999/xhtml"><dt><code class="HTTP">deflate</code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC1950</anchor> で定義されている <code>zlib</code>
書式と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC1951</anchor> で説明されている <code>deflate</code> 圧縮機構の組合せ。</dd></dl><insert><blockquote xmlns="http://www.w3.org/1999/xhtml"><p><ins>{2616}</ins><dl><dt>identity</dt><dd>
The default (identity) encoding; the use of no transformation
whatsoever. This content-coding is used only in the Accept-Encoding
header, and SHOULD NOT be used in the Content-Encoding header.</dd></dl></p></blockquote><dl xmlns="http://www.w3.org/1999/xhtml"><dt><code class="HTTP">identity</code></dt><dd>既定 (ママ) 符号化 — 特に何も変形していない。
この <code class="ABNF">content-coding</code> は <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Accept-Encoding</anchor></code>
頭でのみ使用し、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Encoding</anchor></code> 頭では使用する<strong>べきではない</strong>。</dd></dl></insert><blockquote xmlns="http://www.w3.org/1999/xhtml"><p>New content-coding value tokens <del>should</del> <ins>SHOULD</ins> be registered; to allow
interoperability between clients and servers, specifications of the
content coding algorithms needed to implement a new value <del>should</del> <ins>SHOULD</ins> be
publicly available and adequate for independent implementation, and
conform to the purpose of content coding defined in this section.</p></blockquote><p xmlns="http://www.w3.org/1999/xhtml">新しい <code class="ABNF">content-coding</code> 値字句は登録する<strong>べきです</strong>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>の間の相互運用性のために、
新しい値を実装するのに必要な内容符号化算法の仕様書が公開で利用可能であり、独立した実装に適当であり、この節で定義した内容符号化の目的に適合するものである<strong>べきです</strong>。</p></insert><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml">注 : 注記なき修正点は RFC 1945 → RFC 2068 における変更。</p></insert></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="433" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[433]</anchor-end> RFC 2295 (HTTP 透過内容折衝) 10.8 Negotiation on content encoding</figcaption><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="420" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[420]</anchor-end> </p><blockquote><p>Negotiation on the content encoding of a response is orthogonal to
transparent content negotiation.  The rules for when a content
encoding may be applied are the same as in HTTP/1.1: servers MAY
content-encode responses that are the result of transparent content
negotiation whenever an Accept-Encoding header in the request allows
it.  When negotiating on the content encoding of a cacheable
response, servers MUST add the accept-encoding header name to the
Vary header of the response, or add `Vary: *'.</p></blockquote><p>応答の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容符号化</anchor>に関する折衝は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">透過内容折衝</anchor>とは直交します。
内容符号化を適用しても良い場合についての規則は HTTP/1.1
にあるのと同じで、サーバーは要求の <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Accept-Encoding</anchor></code>
頭が認めているときはいつでも透過内容折衝の結果の応答を内容符号化しても<strong>構いません</strong>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キャッシュ可能</anchor>応答の内容符号化の折衝の時には、
サーバーは <code class="HTTP">accept-encoding</code> 頭名を応答の <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Vary</anchor></code>
頭に追加するか、 <code class="HTTP">Vary: *</code> を追加するかしなければ<strong>なりません</strong>。</p><blockquote><p>Servers SHOULD always be able to provide unencoded versions of every
transparently negotiated response.  This means in particular that
every variant in the variant list SHOULD at least be available in an unencoded form.</p></blockquote><p>サーバーは、各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">透過折衝可能応答</anchor>の符号化されていない版を提供することが常に可能である<strong>べきです</strong>。
これは、特に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">変種目録</anchor>にある各変種は少なくても符号化されていない形式で利用可能である<strong>べきである</strong>ことを意味します。</p><blockquote><p>Like HTTP/1.1, this specification allows proxies to encode or decode
relayed or cached responses on the fly, unless explicitly forbidden
by a Cache-Control directive.  The encoded or decoded response still
contains the same variant as far as transparent content negotiation
is concerned.  Note that HTTP/1.1 requires proxies to add a Warning
header if the encoding of a response is changed.</p></blockquote><p>HTTP/1.1 同様に、この仕様書は、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cache-Control</anchor></code>
指令が陽に禁じていない限り、中継あるいはキャッシュする応答を串が自動で符号化したり復号したりすることを認めます。
符号化あるいは復号した応答は、透過内容折衝に関する限りは依然として同じ変種を含んでいます。
HTTP/1.1 は串が応答の符号化を変更した時には <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Warning</anchor></code>
頭を追加することを要求しているのに注意してください。</p></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="452" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[452]</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.2.7">https://tools.ietf.org/html/rfc4236#section-3.2.7</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="451" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[451]</anchor-end> <cite>Remove the ability to control content codings. Fixes https://github.com/... · 43f8a7b · whatwg/fetch</cite>
( (<time>2014-08-01 07:01:59 +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/whatwg/fetch/commit/43f8a7b90f07325a58cc31c33129522443c8b843">https://github.com/whatwg/fetch/commit/43f8a7b90f07325a58cc31c33129522443c8b843</anchor-external></p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="453" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[453]</anchor-end> <cite xml:lang="ja">Web サイトの読み込みエラー | Firefox ヘルプ</cite>
( (<time>2014-11-16 15:46:51 +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://support.mozilla.org/ja/kb/websites-dont-load-troubleshoot-and-fix-errors#w_kiagianeoeadaeaeiaau">https://support.mozilla.org/ja/kb/websites-dont-load-troubleshoot-and-fix-errors#w_kiagianeoeadaeaeiaau</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <cite xml:lang="en">HTTP compression - Wikipedia, the free encyclopedia</cite>
(<time>2015-07-27 23:42: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="https://en.wikipedia.org/wiki/HTTP_compression">https://en.wikipedia.org/wiki/HTTP_compression</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <cite xml:lang="en">Issue 452335 - chromium - Support Brotli as a content-encoding method on HTTPS connections - Monorail</cite>
(<time>2016-04-10 09:43:17 +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://bugs.chromium.org/p/chromium/issues/detail?id=452335#c12">https://bugs.chromium.org/p/chromium/issues/detail?id=452335#c12</anchor-external></figcaption><blockquote><p>Also, I'd like to restrict any potential Accept-Encoding schemes to https only to reduce headaches associated with intermediaries. SDCH is littered with workaround hacks to deal with them, and it would be great to remove the need for those on new encoding schemes. </p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <cite xml:lang="en">draft-ietf-httpbis-encryption-encoding-01 - Encrypted Content-Encoding for HTTP</cite>
( (<time>2016-06-06 09:12:04 +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/draft-ietf-httpbis-encryption-encoding-01">https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-01</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <cite xml:lang="en">draft-reschke-http-oob-encoding-06 - 'Out-Of-Band' Content Coding for HTTP</cite>
( (<time>2016-06-06 23:52:11 +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/draft-reschke-http-oob-encoding-06">https://tools.ietf.org/html/draft-reschke-http-oob-encoding-06</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> <cite xml:lang="en">Content codings contract · Issue #58 · httpwg/http-core</cite>
(<time>2018-04-21 18:47:39 +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/httpwg/http-core/issues/58">https://github.com/httpwg/http-core/issues/58</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <cite xml:lang="en">Handle failure while handling content codings</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2018-04-23 22:05:18 +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/whatwg/fetch/commit/939d5851d6fa592de2de1d0d0e53e76c133a4d9b">https://github.com/whatwg/fetch/commit/939d5851d6fa592de2de1d0d0e53e76c133a4d9b</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <cite xml:lang="en">Define how to handle bad content encoding · Issue #657 · whatwg/fetch</cite>
(<time>2018-04-24 13:10:43 +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/whatwg/fetch/issues/657">https://github.com/whatwg/fetch/issues/657</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <cite xml:lang="en">Handle failure while handling content codings by annevk · Pull Request #710 · whatwg/fetch</cite>
(<time>2018-04-24 13:10: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="https://github.com/whatwg/fetch/pull/710">https://github.com/whatwg/fetch/pull/710</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <cite xml:lang="en">Remove Gecko-only quirk by annevk · Pull Request #816 · whatwg/fetch</cite>
(<time>2019-03-04 18:44: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="https://github.com/whatwg/fetch/pull/816">https://github.com/whatwg/fetch/pull/816</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> <cite>curl - How To Use</cite>
(<time>2020-09-21T09:01:13.000Z</time>, <time>2020-10-01T05:58:44.383Z</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://curl.haxx.se/docs/manpage.html#--compressed">https://curl.haxx.se/docs/manpage.html#--compressed</anchor-external></p></section></body></html>