<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="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</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">instance manipulation</rt></rubyb></dfn>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値</anchor>に対する種々の操作を表します。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</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#page-8">http://tools.ietf.org/html/rfc3229#page-8</anchor-external></li><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> <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-4.1">http://tools.ietf.org/html/rfc3229#section-4.1</anchor-external></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> <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.1">http://tools.ietf.org/html/rfc3229#section-10.1</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <cite 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.5.3">http://tools.ietf.org/html/rfc3229#section-10.5.3</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <cite xml:lang="en">RFC 3230 - Instance Digests in HTTP</cite> (<time>2014-08-31 18:57:37 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3230#page-6">http://tools.ietf.org/html/rfc3230#page-6</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <cite>Instance Manipulation Values</cite> (<time>2014-01-31 02:45:13 +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/inst-man-values/inst-man-values.xhtml">http://www.iana.org/assignments/inst-man-values/inst-man-values.xhtml</anchor-external></li></ul></refs></section><section><h1>意味</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値操作</anchor>は、1つ以上の<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> 具体的には、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">差分符号化</anchor>、<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="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">差分符号化</anchor>は、2入力の<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>選択は、1入力の<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="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;36</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>の項や
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BREACH攻撃</anchor>を参照。</comment-p></section><section><h1>構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値操作</anchor>は、名前と0個以上の<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="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src> によって識別できます。
<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:">;</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="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</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="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> 仕様書上では0個か1個の<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="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:">空白</anchor>が明記されていませんが、
<code xmlns="http://www.w3.org/1999/xhtml" class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">;</anchor></code> の前後に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OWS</anchor> が挿入できると思われます。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <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="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字・小文字不区別</anchor>と思われます。</p><figure class="railroad"><ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">字句</anchor></li><li>*<ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OWS</anchor></li><li><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">;</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OWS</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor></li></ol></li></ol></figure><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>は、名前か、名前と <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">=</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="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <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="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。
<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="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:">引数</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="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。</p><figure class="railroad"><ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">字句</anchor></li><li>?<ol><li><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">=</anchor></code></li><li>|<ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">字句</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引用文字列</anchor></li></ol></li></ol></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の名前は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">q値</anchor>と区別するため、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">q</anchor></code>
であっては<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="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。</p></section><section><h1>文脈</h1><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> <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:">IM:</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:">A-IM:</anchor></code> <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="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">範囲</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>を得たいことがあるなど、
各種操作の適用順序は状況に依存することから、 
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">A-IM:</anchor></code>/<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IM:</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="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</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="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:">範囲</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:">内容符号化</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><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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml" class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IM:</anchor></code>, <code xmlns="http://www.w3.org/1999/xhtml" class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">A-IM:</anchor></code> も参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <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:">range</anchor></code>) の後に他の<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/byteranges</anchor></code> で複数に分かれた後に適用される可能性もあります。</p></section><section><h1>処理モデル</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> 適用する<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:">A-IM:</anchor></code> を参照。</p><p><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>における処理については、<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">226</anchor></code> を参照。</p><p><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>を参照。</p></section><section><h1>実現値操作の一覧</h1><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> 次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値操作</anchor>の名前があります。<figure class="short list"><ul><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">vcdiff</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">diffe</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gdiff</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gzip</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deflate</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">range</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">identity</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">feed</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">f-range</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">items</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">channel</anchor></code></li></ul></figure></p><p><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:">IANA登録簿</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src> があります <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。</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:">RFC 3229</anchor> のもの以外は登録されていません。 <time xmlns="http://www.w3.org/1999/xhtml">2014-11-19T15:11:06.500Z</time></comment-p><p><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> 名前に「diff」が入った3つは特に<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="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。</p></section><section><h1>歴史</h1><section><h1>RFC 3229</h1><figure class="quote"><figcaption><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> RFC 3229 (差分符号化) 用語定義より抜粋</p></figcaption><blockquote><dl><dt>instance manipulation</dt><dd>
An operation on one or more instances which may
result in an instance being conveyed from server to
client in parts, or in more than one response
message.  For example, a range selection or a delta
encoding.  Instance manipulations are end-to-end, and
often involve the use of a cache at the client.</dd></dl></blockquote><dl><dt>実現値操作</dt><dd>
一つ以上の<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>の使用を伴う。</dd></dl><blockquote><p>For reasons that will become clear later on, it is convenient to
think about subrange selection as a form of instance manipulation.
In some contexts, compression might also be treated as an instance
manipulation, rather than as a content-coding or transfer-coding.</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>ではなく実現値操作として扱われるかもしれません。</p></figure><figure class="quote"><figcaption><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> RFC 3229 (差分符号化) 10.1 Protocol parameter specifications</p></figcaption><blockquote><p>This specification defines a new HTTP parameter type, an instance-manipulation:</p></blockquote><p>この仕様書は新しい HTTP 引数型 <code class="ABNF">instance-manipulation</code>
を定義します。</p><blockquote><ul><li>instance-manipulation = token [imparams]</li></ul><ul><li>imparams = &quot;;&quot; imparam-name [ &quot;=&quot; ( token | quoted-string ) ]</li><li>imparam-name = token</li></ul></blockquote><blockquote><p>Note that the imparam-name MUST NOT be &quot;q&quot;, to avoid ambiguity with
the use of qvalues (see [10]).</p></blockquote><p><code class="ABNF">imparam-name</code> は <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">qvalue</anchor></code> の使用時の曖昧性を避けるために <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">q</anchor></code> であっては<strong>ならない</strong>ことに注意して下さい。</p><blockquote><p>The set of instance-manipulation values is initially:<dl><dt>-  vcdiff</dt><dd>
A delta using the &quot;vcdiff&quot; encoding format [19, 20].</dd><dt>-  diffe</dt><dd>
The output of the UNIX &quot;diff -e&quot; command [26].</dd><dt>-  gdiff</dt><dd>
The GDIFF encoding format [14].</dd><dt>-  gzip</dt><dd>
Same definition as the HTTP &quot;gzip&quot; content-coding.</dd><dt>-  deflate</dt><dd>
Same definition as the HTTP &quot;deflate&quot; content-coding.</dd><dt>-  range</dt><dd>
A token indicating that the result is partial content, as the
result of a range selection.</dd><dt>-  identity</dt><dd>
A token used only in the A-IM header (not in the IM header), to
indicate whether or not the identity instance-manipulation is acceptable.</dd></dl></p></blockquote><p>最初の実現値操作の集合は:<dl><dt><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">vcdiff</anchor></code></dt><dd><code>vcdiff</code> 符号化書式を用いた差分。</dd><dt><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">diffe</anchor></code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UNIX</anchor> <kbd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">diff</anchor> -e</kbd> 命令の出力。</dd><dt><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gdiff</anchor></code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GDIFF</anchor> 符号化書式。</dd><dt><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">gzip</anchor></code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> <code class="HTTP">gzip</code> 内容符号化と同じ定義。</dd><dt><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deflate</anchor></code></dt><dd>HTTP <code class="HTTP">deflate</code> 内容符号化と同じ定義。</dd><dt><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">range</anchor></code></dt><dd>結果が範囲選択の結果である部分内容であることを示す字句。</dd><dt><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">identity</anchor></code></dt><dd><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">A-IM</anchor></code> 頭でのみ使用する
(<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IM</anchor></code> 頭では使用しない) 字句で、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">同一</anchor>実現値操作を受入れるかどうかを示すために使用する。</dd></dl></p><blockquote><p>For convenience in the rest of this specification, we define a subset
of instance-manipulation values as delta-coding values:</p></blockquote><p>この仕様書の後の部分での便宜のために、実現値操作の部分集合を
<dfn><code class="ABNF">delta-coding</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">差分符号化</anchor>) 値</dfn>として定義します。</p><blockquote><ul><li>delta-coding = &quot;vcdiff&quot; | &quot;diffe&quot; | &quot;gdiff&quot; | token</li></ul></blockquote><blockquote><p>Future instance-manipulation values might also be included in this list.</p></blockquote><p>将来の実現値操作値もこの並びに含められるかもしれません。</p></figure><figure class="quote"><figcaption><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> RFC 3229 (差分符号化) 10.2 IANA Considerations</p></figcaption><blockquote><p>The Internet Assigned Numbers Authority (IANA) administers the name
space for instance-manipulation values.  Values and their meaning
must be documented in an RFC or other peer-reviewed, permanent, and
readily available reference, in sufficient detail so that
interoperability between independent implementations is possible.
Subject to these constraints, name assignments are First Come, First
Served (see RFC 2434 [25]).</p></blockquote><p>インターネット割当て番号事務局 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA</anchor>)
は実現値操作値の名前空間を管理します。
値とその意味は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> または他のよく評価された、持続的で、
既に入手可能な参照物で、独立な実装が相互運用可能である程度十分詳細に文書化されていなければなりません。
この制約の元、名前割り当ては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">先来先給</anchor>とします
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2434</anchor> を参照)。</p><blockquote><p>This specification also inserts a new value in the IANA HTTP Status
Code Registry (see RFC 2817 [18]).  See section 10.4.1 for the
specification of this code.</p></blockquote><p>この仕様書は IANA HTTP 状態符号登録簿 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2817</anchor> 参照)
にも新しい値を挿入します。この符号の仕様は10.4.1節を参照。</p></figure></section><section><h1>その後の利用</h1><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> <cite>Re: RFC3229 w/ feeds <strong></strong>[<strong></strong>was: Paging, Feed History, etc.<strong></strong>]<strong></strong></cite>
( (<time>2006-06-09 20:12:53 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.imc.org/atom-syntax/mail-archive/msg18576.html">http://www.imc.org/atom-syntax/mail-archive/msg18576.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <cite>Does an implementation of RFC 3229 (Delta encoding for HTTP) exist? - Stack Overflow</cite>
( (<time>2014-11-20 01:39:50 +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://stackoverflow.com/questions/3264457/does-an-implementation-of-rfc-3229-delta-encoding-for-http-exist">http://stackoverflow.com/questions/3264457/does-an-implementation-of-rfc-3229-delta-encoding-for-http-exist</anchor-external></p><p><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:">DUL</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="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。</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="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <cite xml:lang="en">draft-mouat-xml-patch-00 - A delta format for XML documents</cite> (<time>2014-10-17 16:07:55 +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-mouat-xml-patch-00#section-7.1">https://tools.ietf.org/html/draft-mouat-xml-patch-00#section-7.1</anchor-external></li></ul></refs><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> いずれも結局ほとんど使われませんでした。</p></section></section></body></html>