<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="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <dfn><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>と
<dfn><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-None-Match:</anchor></code></dfn> <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><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> <strong><cite xml:lang="en">RFC 7232 - Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</cite> (<time>2014-09-11 10:02: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/rfc7232#section-3.1">https://tools.ietf.org/html/rfc7232#section-3.1</anchor-external></strong></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> <strong><cite xml:lang="en">RFC 7232 - Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</cite> (<time>2014-09-11 10:02: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/rfc7232#section-3.2">https://tools.ietf.org/html/rfc7232#section-3.2</anchor-external></strong></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite xml:lang="en">RFC 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-7.1">http://tools.ietf.org/html/rfc3229#section-7.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="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <cite xml:lang="en">RFC 5789 - PATCH Method for HTTP</cite> (<time>2014-09-22 15:11:26 +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/rfc5789#section-2">http://tools.ietf.org/html/rfc5789#section-2</anchor-external></li></ul></refs></section><section><h1>意味</h1><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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</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:">If-None-Match:</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>とするものです <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="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:">対象資源</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="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</anchor></code> や <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-None-Match:</anchor></code>
の値は、 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">*</anchor></code> か、
または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> (<code>#</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="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="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal></src>。</p><figure class="railroad"><ol><li>|<ol><li><code><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>*<ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OWS</anchor></li><li><code><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></li></ol></li></ol></figure></section><section><h1>文脈</h1><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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</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:">lost update</anchor>」問題) を防ぐために状態を変更する <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">POST</anchor></code>、
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PUT</anchor></code>、<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DELETE</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-None-Match:</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:">安全</anchor>でない <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PUT</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:">lost update</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="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</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>を中断するために使うこともできます
<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></src>。</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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-None-Match:</anchor></code> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">条件付きGET要求</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:">GET</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:">If-None-Match:</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="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="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:">内容折衝</anchor>などの理由で同じ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</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="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <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>に<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:">If-None-Match:</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:">要求URL</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><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>を使う場合には、<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:">If-None-Match:</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>に複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体タグ</anchor>を指定することができます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;19</anchor-internal></src>。</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:">HTTP認証</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">challenge</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:">If-Match:</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:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP認証</anchor>参照。</comment-p><p><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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PATCH</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:">If-Match:</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:"><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="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。</p></section><section><h1><code class="HTTP">*</code></h1><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" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</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:">対象資源</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src>。</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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-None-Match:</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:">対象資源</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="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal></src>。</p></section><section><h1>実体タグ</h1><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" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</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>を使わなければ<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-None-Match:</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>を使わなければ<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="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="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Meter</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>を複数指定することはできません。</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:">Meter</anchor></code> 参照。</comment-p></section><section><h1>処理モデル</h1><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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</anchor></code> や <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-None-Match:</anchor></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="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">差分符号化</anchor>に関しては、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">差分符号化</anchor>の項を参照してください。</p><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>における<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></section><section><h1>歴史</h1><figure class="quote"><figcaption><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> RFC 2068 (HTTP/1.1) 14.25; RFC 2616 (HTTP/1.1) 14.24 If-Match</figcaption><blockquote><p>The If-Match request-header field is used with a method to make it
conditional. A client that has one or more entities previously
obtained from the resource can verify that one of those entities is
current by including a list of their associated entity tags in the If-Match header field. <ins>Entity tags are defined in section 3.11.</ins>
The purpose of this feature is to allow efficient updates of cached
information with a minimum amount of transaction overhead.
It is also used, on updating requests, to prevent inadvertent modification of
the wrong version of a resource. As a special case, the value &quot;*&quot;
matches any current entity of the resource.</p></blockquote><p><code class="HTTP">If-Match</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>から得た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>は、
その実体群の1つが現行のものであることを、
<code class="HTTP">If-Match</code> 頭欄にそれらの実体と関連付けられた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体札</anchor>の並びを含めることで検証できます。<ins>実体札は3.11節で定義しています。</ins>
この機能の目的は、キャッシュした情報の効果的な更新最小限のやり取り overhead
で実現することです。この機能は、資源の誤った版を不注意に修正してしまうことを防ぐためにも使えます。
特別な場合として、値 <code class="HTTP">*</code> は資源の現在の実体に一致します。</p><blockquote><ul><li>If-Match = &quot;If-Match&quot; &quot;:&quot; ( &quot;*&quot; | 1#entity-tag )</li></ul></blockquote><blockquote><p>If any of the entity tags match the entity tag of the entity that
would have been returned in the response to a similar GET request
(without the If-Match header) on that resource, or if &quot;*&quot; is given
and any current entity exists for that resource, then the server MAY
perform the requested method as if the If-Match header field did not exist.</p></blockquote><p>実体札のいずれかが同様の (<code class="HTTP">If-Match</code> 頭なしの) <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GET</anchor></code> 
要求への応答で返されるであろう実体の実体札と一致するか、
または <code class="HTTP">*</code> が与えられ、その資源に現在の実体が存在するなら、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>は <code class="HTTP">If-Match</code> 頭欄が存在しないかのように要求された方式を処理して<strong>構いません</strong>。</p><blockquote><p>A server MUST use the strong comparison function (see section <del>3.11</del> <ins>13.3.3</ins>)
to compare the entity tags in If-Match.</p></blockquote><p>サーバーは、 <code class="HTTP">If-Match</code> 中の実体札を比較するのに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強い比較</anchor>関数を使わなければ<strong>なりません</strong>。</p><blockquote><p>If none of the entity tags match, or if &quot;*&quot; is given and no current
entity exists, the server MUST NOT perform the requested method, and
MUST return a 412 (Precondition Failed) response. This behavior is
most useful when the client wants to prevent an updating method, such
as PUT, from modifying a resource that has changed since the client
last retrieved it.</p></blockquote><p>実体札のどれもが一致しなかったか、または <code class="HTTP">*</code>
が与えられたものの現在実体が存在しない場合は、サーバーは要求された方式を実行しては<strong>ならず</strong>、
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">412</anchor></code> (前条件失敗) 応答を返さなければ<strong>なりません</strong>。
この振る舞いは、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PUT</anchor></code> のような更新する方式で、
クライアントが最後にそれを取り出してから変更されている資源を修正してしまうことを防ぎたい時に有用です。</p><blockquote><p>If the request would, without the If-Match header field, result in
anything other than a 2xx <ins>or 412</ins> status, then the If-Match header
MUST be ignored.</p></blockquote><p><code class="HTTP">If-Match</code> 頭欄がなければ要求の結果が <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2xx</anchor></code> 状態または
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">412</anchor></code> 状態以外のものになるとしたら、
<code class="HTTP">If-Match</code> 頭は無視しなければ<strong>なりません</strong>。</p><blockquote><p>The meaning of &quot;If-Match: *&quot; is that the method SHOULD be performed
if the representation selected by the origin server (or by a cache,
possibly using the Vary mechanism, see section <del>14.43</del> <ins>14.44</ins>) exists, and
MUST NOT be performed if the representation does not exist.</p></blockquote><p><code class="HTTP">If-Match: *</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"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Vary</anchor></code> 機構を使って)
選択された表現が存在するときに実行される<strong>べき</strong>であり、
表現が存在しないときには実行しては<strong>ならない</strong>ということです。</p><blockquote><p>A request intended to update a resource (e.g., a PUT) MAY include an
If-Match header field to signal that the request method MUST NOT be
applied if the entity corresponding to the If-Match value (a single
entity tag) is no longer a representation of that resource. This
allows the user to indicate that they do not wish the request to be
successful if the resource has been changed without their knowledge.</p></blockquote><p>資源を更新する意図の要求 (例えば <code class="HTTP">PUT</code>)
は、 <code class="HTTP">If-Match</code> 値 (1つの実体札) の対応する実体がもはやその資源の表現ではないときにその要求方式を適用しては<strong>ならない</strong>ことを通知するために
<code class="HTTP">If-Match</code> 頭欄を含めても<strong>構いません</strong>。
これにより、利用者が、彼らの知識なしに資源が変更されているとしたら要求が成功することを望まないことを示すことができます。</p><blockquote><p>Examples:<ul><li>If-Match: &quot;xyzzy&quot;</li><li>If-Match: &quot;xyzzy&quot;, &quot;r2d2xxxx&quot;, &quot;c3piozzzz&quot;</li><li>If-Match: *</li></ul></p></blockquote><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><blockquote xmlns="http://www.w3.org/1999/xhtml"><p>The result of a request having both an If-Match header field and
either an If-None-Match or an If-Modified-Since header fields is
undefined by this specification.</p></blockquote><p xmlns="http://www.w3.org/1999/xhtml"><code class="HTTP">If-Match</code> 頭欄と <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-None-Match</anchor></code>
頭欄または <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Modified-Since</anchor></code> 頭欄のいずれかを持っている要求の結果は子の仕様書では未定義とします。</p></insert></figure><figure class="quote"><figcaption><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> RFC 2068・2616 (HTTP/1.1) 14.26 If-None-Match</figcaption><blockquote><p>The If-None-Match request-header field is used with a method to make
it conditional. A client that has one or more entities previously
obtained from the resource can verify that none of those entities is
current by including a list of their associated entity tags in the
If-None-Match header field. The purpose of this feature is to allow
efficient updates of cached information with a minimum amount of
transaction overhead. It is also used<del>, on updating requests,</del> to prevent <ins>a method (e.g. PUT)</ins> <del>inadvertent modification of a resource which was not known to</del> <ins>from inadvertently modifying an existing resource when the client believes that the resource does not</ins> exist.</p></blockquote><p><code class="HTTP">If-None-Match</code> 要求頭欄は、それを条件付とする<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">方式</anchor>とともに使います。
以前に資源から得た1個か複数個の実体を持っているクライアントは、その実体群のどれもが現行のものではないことを、 <code class="HTTP">If-None-Match</code> 頭欄にそれらの実体と関連付けられた実体札の並びを含めることで検証できます。
この機能の目的は、キャッシュした情報の効果的な更新を最小限のやり取り overhead で実現することです。この機能は、<del>更新する要求で、</del>クライアントがその資源は存在しないと信じている時に既存の資源を不注意に修正してしまうことを防ぐためにも使えます。</p><blockquote><p>As a special case, the value &quot;*&quot; matches any current entity of the resource.</p></blockquote><p>特別な場合として、値 <code class="HTTP">*</code> は資源の現在の実体に一致します。</p><blockquote><ul><li>If-None-Match = &quot;If-None-Match&quot; &quot;:&quot; ( &quot;*&quot; | 1#entity-tag )</li></ul></blockquote><blockquote><p>If any of the entity tags match the entity tag of the entity that
would have been returned in the response to a similar GET request
(without the If-None-Match header) on that resource, or if &quot;*&quot; is
given and any current entity exists for that resource, then the
server MUST NOT perform the requested method<ins>, unless required to do so because the resource's modification date fails to match that supplied in an If-Modified-Since header field in the request</ins>.
Instead, if the request method was GET or HEAD, the server SHOULD
respond with a 304 (Not Modified) response, including the cache-related <del>entity-</del>header fields
(particularly ETag) of one of the entities that matched. For all
other request methods, the server MUST respond with a status of
412 (Precondition Failed).</p></blockquote><p>実体札のいずれかが同様の (<code class="HTTP">If-None-Match</code> 頭なしの) 
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GET</anchor></code> 要求への応答で返されるであろう実体の実体札と一致するか、
または <code class="HTTP">*</code> が与えられ、その資源に現在の実体が存在するなら、<ins>資源の修正日付が要求の <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Modified-Since</anchor></code> 頭欄で供給されたものと一致しなかったためにそうする必要がある場合を除き、</ins>
サーバーは要求された方式を処理しては<strong>なりません</strong>。
代わりに、要求方式が <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GET</anchor></code> または <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HEAD</anchor></code>
であるなら、サーバーは、その一致する実体の一つのキャッシュ関連の頭欄 (特に <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ETag</anchor></code>)
を含めた <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">304</anchor></code> (未修正) 応答で応答する<strong>べきです</strong>。
他のすべての要求方式では、サーバーは <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">412</anchor></code> (前条件失敗)
の状態で応答しなければ<strong>なりません</strong>。</p><blockquote><p>See section 13.3.3 for rules on how to determine if two <del>entity</del> <ins>entities</ins> tags
match. The weak comparison function can only be used with GET or HEAD requests.</p></blockquote><p>二つの実体札の一致をどう決定するかの規則は13.3.3節を参照。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">弱い比較</anchor>関数は <code class="HTTP">GET</code> または <code class="HTTP">HEAD</code> の要求でのみ使うことができます。</p><blockquote><p>If none of the entity tags match, <del>or if &quot;*&quot; is given and no current entity exists,</del>
then the server MAY perform the requested method as if
the If-None-Match header field did not exist<ins>, but MUST also ignore any If-Modified-Since header field(s) in the request. That is, if no entity tags match, then the server MUST NOT return a 304 (Not Modified) response</ins>.</p></blockquote><p>実体札のいずれもが一致しなかった<del>か、<code class="HTTP">*</code> が与えられ現在の実体が存在しない</del>なら、
サーバーは要求された方式を <code class="HTTP">If-None-Match</code> 頭欄(群)が要求に存在しなかったものとしてその要求された方式を実行して<strong>構いません</strong><ins>が、要求にある <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Modified-Since</anchor></code> 頭欄(群)も無視しなければ<strong>なりません</strong>。つまり、実体札がどれも一致しなければ、サーバーは <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">304</anchor></code> (未修正) 応答を返さなければ<strong>なりません</strong></ins>。</p><blockquote><p>If the request would, without the If-None-Match header field, result
in anything other than a 2xx <ins>or 304</ins> status, then the If-None-Match
header MUST be ignored. <ins>(See section 13.3.4 for a discussion of server behavior when both If-Modified-Since and If-None-Match appear in the same request.)</ins></p></blockquote><p><code class="HTTP">If-None-Match</code> 頭欄がなければ要求の結果が <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2xx</anchor></code> 状態<ins>または <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">304</anchor></code> 状態</ins>以外のものになるとしたら、 
<code class="HTTP">If-None-Match</code> 頭は無視しなければなりません。<ins>(<code class="HTTP">If-Modified-Since</code> と <code class="HTTP">If-None-Match</code> の両方が同じ要求に現れる時のサーバーの振る舞いについての議論は13.3.4節を参照。)</ins></p><blockquote><p>The meaning of &quot;If-None-Match: *&quot; is that the method MUST NOT be
performed if the representation selected by the origin server (or by
a cache, possibly using the Vary mechanism, see section <del>14.43</del> <ins>14.44</ins>)
exists, and SHOULD be performed if the representation does not exist.
This feature <del>may</del> <ins>is intended to</ins> be useful in preventing races between PUT operations.</p></blockquote><p><code class="HTTP">If-None-Match: *</code> の意味は、その方式は起源サーバーによって (またはキャッシュによって、もしかすると <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Vary</anchor></code> 機構を使って) 選択された表現が存在しないときに実行しては<strong>ならず</strong>、表現が存在しないときには実行する<strong>べき</strong>だということです。
この機能は <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PUT</anchor></code> 操作間の競合を防ぐのに有用であることを意図しています。</p><blockquote><p>Examples:</p></blockquote><blockquote><ul><li>If-None-Match: &quot;xyzzy&quot;</li><li>If-None-Match: W/&quot;xyzzy&quot;</li><li>If-None-Match: &quot;xyzzy&quot;, &quot;r2d2xxxx&quot;, &quot;c3piozzzz&quot;</li><li>If-None-Match: W/&quot;xyzzy&quot;, W/&quot;r2d2xxxx&quot;, W/&quot;c3piozzzz&quot;</li><li>If-None-Match: *</li></ul></blockquote><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><blockquote xmlns="http://www.w3.org/1999/xhtml"><p>The result of a request having both an If-None-Match header field and
either an If-Match or an If-Unmodified-Since header fields is
undefined by this specification.</p></blockquote><p xmlns="http://www.w3.org/1999/xhtml"><code class="HTTP">If-None-Match</code> 頭欄と <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match</anchor></code> 頭欄または <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Unmodified-Since</anchor></code> 頭欄のいずれかを持っている要求の結果はこの仕様書では未定義とします。</p></insert></figure><figure class="quote"><figcaption><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 2326 12.22 If-Match</figcaption><blockquote><p>See [H14.25].</p></blockquote><blockquote><p>This field is especially useful for ensuring the integrity of the
presentation description, in both the case where it is fetched via
means external to RTSP (such as HTTP), or in the case where the
server implementation is guaranteeing the integrity of the
description between the time of the DESCRIBE message and the SETUP
message.</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> この欄は、表現記述の完全性を確認するのに、これが RTSP
以外の手段 (例えば HTTP) 
で入手した場合においても或いはサーバー実装が
DESCRIBE メッセージの時刻及び SETUP
メッセージ間の記述の正当性を保証する場合においても、特に有用です。</p><blockquote><p>The identifier is an opaque identifier, and thus is not specific to
any particular session description language.</p></blockquote><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> 識別子は<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">不透明<rt xmlns="http://www.w3.org/1999/xhtml">opaque</rt></rubyb>識別子で、従ってどの特定の
session 記述言語にも依存しません。</p></figure><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="413" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[413]</anchor-end> <cite xml:lang="en">RFC 7252 - The Constrained Application Protocol (CoAP)</cite>
( (<time>2014-06-27 00:59: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/rfc7252#section-5.10.8.1">http://tools.ietf.org/html/rfc7252#section-5.10.8.1</anchor-external></li><li><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> <cite xml:lang="en">RFC 7252 - The Constrained Application Protocol (CoAP)</cite>
( (<time>2014-06-27 00:59: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/rfc7252#section-5.10.8.2">http://tools.ietf.org/html/rfc7252#section-5.10.8.2</anchor-external></li></ul></refs></section><section><h1>例</h1><figure class="list"><figcaption><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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></figcaption><ul><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> <code class="HTTP">If-Match: &quot;xyzzy&quot;</code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <code class="HTTP">If-Match: &quot;xyzzy&quot;, &quot;r2d2xxxx&quot;, &quot;c3piozzzz&quot;</code></li><li><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> <code class="HTTP">If-Match: *</code></li></ul></figure><figure class="list"><figcaption><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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-None-Match:</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></figcaption><ul><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> <code class="HTTP">If-None-Match: &quot;xyzzy&quot;</code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <code class="HTTP">If-None-Match: W/&quot;xyzzy&quot;</code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <code class="HTTP">If-None-Match: &quot;xyzzy&quot;, &quot;r2d2xxxx&quot;, &quot;c3piozzzz&quot;</code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <code class="HTTP">If-None-Match: W/&quot;xyzzy&quot;, W/&quot;r2d2xxxx&quot;, W/&quot;c3piozzzz&quot;</code></li><li><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> <code class="HTTP">If-None-Match: *</code></li></ul></figure></section><section><h1>関連</h1><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> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Overwrite:</anchor></code> は <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">If-Match:</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:">対象資源</anchor>ではなく終点資源に適応される点が異なります。</p><figure class="quote"><figcaption><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> <cite>Orchestrate</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Orchestrate</anchor> 著, <time>2016-03-08 10:22:00 +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://orchestrate.io/docs/apiref">https://orchestrate.io/docs/apiref</anchor-external></figcaption><blockquote><p>Conditional headers can be used to specify a pre-condition that determines whether the patch operation happens. The If-Match header specifies that the patch operation will succeed if and only if the ref value matches current stored ref. A failed If-Match patch-merge request will return a 412 Error &quot;item_version_mismatch&quot;.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <cite xml:lang="en">RFC 4791 - Calendaring Extensions to WebDAV (CalDAV)</cite>
(<time>2017-09-24 16:22:36 +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/rfc4791#section-5.3.2">https://tools.ietf.org/html/rfc4791#section-5.3.2</anchor-external></p><figure class="quote"><figcaption><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> <cite xml:lang="en">Buckets — Kinto 8.1.5 documentation</cite>
(<time>2018-02-21 01:03: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://kinto.readthedocs.io/en/latest/api/1.x/buckets.html">https://kinto.readthedocs.io/en/latest/api/1.x/buckets.html</anchor-external></figcaption><blockquote><p>If the If-Match: &quot;&lt;timestamp&gt;&quot; request header is provided as described in the section about timestamps, and if the list has changed meanwhile, a 412 Precondition Failed error is returned.</p></blockquote></figure><figure class="quote"><figcaption><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">Buckets — Kinto 8.1.5 documentation</cite>
(<time>2018-02-21 01:03: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://kinto.readthedocs.io/en/latest/api/1.x/buckets.html">https://kinto.readthedocs.io/en/latest/api/1.x/buckets.html</anchor-external></figcaption><blockquote><p>For cache and concurrency control, an ETag response header gives the value that consumers can provide in subsequent requests using If-Match and If-None-Match headers (see section about timestamps).</p></blockquote></figure><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> <cite xml:lang="en">Server timestamps — Kinto 8.1.5 documentation</cite>
(<time>2018-02-21 01:03:20 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://kinto.readthedocs.io/en/latest/api/1.x/timestamps.html">https://kinto.readthedocs.io/en/latest/api/1.x/timestamps.html</anchor-external></p></section></body></html>