<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="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:">HTTP</anchor> および関連仕様は、いくつかの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> の派生版を使っています。</p><p><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:">ABNF</anchor> の構文と意味の他に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> 特有の規則も記述できることになっています。</p><section><h1>RFC 1945, RFC 2068, RFC 2616 の ABNF</h1><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> RFC 1945 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/1.0</anchor>), RFC 2068 / RFC 2616 (<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:">ABNF</anchor> です。</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:">RFC 822のABNF</anchor> を元にしていますが、違いがあって互換性はありません。</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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1945</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2068</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2616</anchor> 2.1節で規定されています。</p><ul><li><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:">RFC 822のABNF</anchor>と違って選択 (<q>or</q>) は <code class="ABNF">&quot;/&quot;</code>
ではなく <code class="ABNF">&quot;|&quot;</code> を使います。</li><li><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:">HTTP</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> では、 <code class="ABNF">*<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LWS</anchor></code> の挿入可能箇所を構文では明記せずに、
本文で説明しています。 <ul><li><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:">RFC 822のABNF</anchor>から引き継いだ性質ですが、使われ方は少し違います。</li></ul></li><li>
<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> 右辺が <code class="ABNF">&lt; <var>自然言語文</var> &gt;</code> のような形で定義されることがあります。
(がそのことは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> の定義に明記はされていません。)<ul><li><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822のABNF</anchor>から引き継いだ構文です。</li></ul></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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リスト</anchor>を表す <code>#</code> 記法が定義されています。</li></ul><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:">HTTP</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:">ABNF</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:">RFC 2616</anchor> の改訂版である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7230</anchor> は、この <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor>
を引き継がず、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETFのABNF</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822</anchor> から派生したもの) をベースにしています (後述)。</p></section><section><h1>RFC 1738 の ABNF</h1><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:">RFC 1738</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> のバリエーションを使っています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPのABNF</anchor>と似ていますが、違いもあります。</p><ul><li><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> 選択は <code>/</code> ではなく <code>|</code></li><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>は <code>( ... )</code> ではなく <code> [ ... ] </code><ul><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> 
単なる [ ... ] は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822</anchor> と同じく省略を表します。 *[ ... ] は0個以上を表します。
1*[ ... ] は1個以上を表します。 (<code>*</code> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822</anchor> と同義です。)</li></ul></li></ul><p><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:">RFC 2056</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1738</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="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;40</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="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite xml:lang="en">RFC 1738 - Uniform Resource Locators (URL)</cite> (<time>2015-06-28 14:20:24 +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/rfc1738#section-5">http://tools.ietf.org/html/rfc1738#section-5</anchor-external></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> <cite xml:lang="en">RFC 2056 - Uniform Resource Locators for Z39.50</cite> (<time>2015-06-14 14:22: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="http://tools.ietf.org/html/rfc2056#section-5">http://tools.ietf.org/html/rfc2056#section-5</anchor-external></li></ul></refs></section><section><h1>CGI の ABNF</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:">RFC 3875</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI/1.1</anchor>) は「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822</anchor> のものと似た <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor>」を定義しています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal></src>
実態としては <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPのABNF</anchor> と同じものです。</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> ただし <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">#</strong></anchor></code> や <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">;</anchor></code> は定義されておらず使ってもいません。</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> また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LWS</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="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:">CGI</anchor> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</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="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal> 2.2.</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:">CGI</anchor> の仕様では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>を明示するために <code class="ABNF">&quot;&quot;</code> と記述していることがよくあります。</p><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> 明確に説明されていませんが、反復回数を変数のように表現することがあります。</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="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> 例えば<pre>      request-body   = &lt;CONTENT_LENGTH&gt;OCTET</pre>... は、 <code class="ABNF" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OCTET</anchor></code> の長さが <code class="CGI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CONTENT_LENGTH</anchor></code>
であることを表します。</p></example><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:">ABNF</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="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3875</anchor> - The Common Gateway Interface (CGI) Version 1.1</cite> (<time>2011-05-08 16:20:31 +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/rfc3875">http://tools.ietf.org/html/rfc3875</anchor-external></li></ul></refs></section><section><h1>RFC 2069 の ABNF</h1><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:">Digest認証</anchor>を規定する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2068</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPのABNF</anchor> を使うと述べていますが、
実際には <var>FOO(...)</var> のような関数の表記を使っています。これは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>として使われることを表しています。</p></section><section><h1>RFC 2295 の ABNF</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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2295</anchor> (3.) は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPのABNF</anchor>に更に追加の記法
<dfn><code class="ABNF">%</code></dfn> <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="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src> を定義しています。</p><figure class="ABNF"><ul><li>element /= ssv</li><li>ssv = ( [number] &quot;%&quot; [number] ) element ;; %rule<ul><li>;; <code class="ABNF">1%rule</code> == <code class="ABNF">rule *(FWS rule)</code></li></ul></li></ul></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="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2295</anchor> - 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-3">http://tools.ietf.org/html/rfc2295#section-3</anchor-external></li></ul></refs></section><section><h1>RFC 3229 の ABNF</h1><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3229</anchor> は <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:">ABNF</anchor> を使っているようですが (明記はされていません)、
既存の定義に更に新たな定義を付け加えることを表すために「<code class="ABNF">...</code>」を使っています。</p></section><section><h1>AtomPub の ABNF</h1><p><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 xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5023</anchor> は <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Slug</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:">RFC 2616のABNF</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="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <cite xml:lang="en">RFC 5023 - The Atom Publishing Protocol</cite> (<time>2008-11-20 18:52: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="http://tools.ietf.org/html/rfc5023#section-9.7.1">http://tools.ietf.org/html/rfc5023#section-9.7.1</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> しかし、実際には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4234のABNF</anchor> にある
<code class="ABNF">%20-7E</code> という表現が混在しています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><code xmlns="http://www.w3.org/1999/xhtml" class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">|</anchor></code> を使っているので、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4234のABNF</anchor> ではありません。</comment-p></section><section><h1>RFC 7230 の ABNF</h1><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:">HTTP/1.1</anchor> の第3次仕様である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7230</anchor> 他では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5234</anchor>
を拡張した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</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="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <cite xml:lang="en">RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</cite> (<time>2014-06-07 01:59:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7230#section-1.2">https://tools.ietf.org/html/rfc7230#section-1.2</anchor-external></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> <cite xml:lang="en">RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</cite> (<time>2014-06-07 01:59:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7230#section-7">https://tools.ietf.org/html/rfc7230#section-7</anchor-external></li></ul></refs><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:">RFC 2616</anchor> 以前と同様な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リスト<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">リスト (HTTP)</title></anchor>記法 (<code>#<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">リスト (HTTP)</title></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="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:">リスト (HTTP)</anchor>の項を参照してください。</comment-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:">RFC 2822</anchor> と同様に、 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">obs-*</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="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;28</anchor-internal></src> ことになっています。</p></section><section><h1>CATP の拡張BNF</h1><ul><li><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> <cite xml:lang="ja"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CATP/1.0</anchor> &lt;2. 表記上の慣習と一般的な文法&gt;</cite>, <time>2023-06-26T07:43:57.000Z</time>, <time>2023-07-04T02:21:33.884Z</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://catill.bitbucket.io/CATP/catp/chap2.html">https://catill.bitbucket.io/CATP/catp/chap2.html</anchor-external></li><li><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> <cite xml:lang="JA">null</cite>, <time>2023-11-22T00:11:30.000Z</time>, <time>2023-11-25T04:21:04.886Z</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://catill.bitbucket.io/CATP/catp1.1/honbun.html#_Toc464618941">https://catill.bitbucket.io/CATP/catp1.1/honbun.html#_Toc464618941</anchor-external></li></ul></section><section><h1>歴史</h1><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> <cite>BNF Notation for syntax</cite>
(<time>1995-02-02 05:07: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://www.w3.org/Notation.html">https://www.w3.org/Notation.html</anchor-external></p><section><h1>RFC 1945, RFC 2068, RFC 2616</h1><figure class="quote"><figcaption><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:">RFC 1945</anchor> (HTTP/1.0) 2.; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2068</anchor>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2616</anchor> (HTTP/1.1) 2 Notational Conventions and Generic Grammar</figcaption><section><h1>2.1 Augmented BNF</h1><blockquote><p>All of the mechanisms specified in this document are described in
both prose and an augmented Backus-Naur Form (BNF) similar to that
used by RFC 822 <del> [7] </del><ins> [9] </ins>. <del><del>Implementors</del> <ins>Implementers</ins></del> <ins>Implementors</ins> will need to be familiar with the
notation in order to understand this specification. The augmented BNF
includes the following constructs:</p></blockquote><p>この文書で規定するすべての機構は、文章および <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822</anchor>
で使われているものに似た増補 Backus・Naur 式 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor>)
で記述します。実装者は、この視湯所を理解するためにこの記法に精通する必要があります。
増補 BNF には、次の構造が含まれます。</p><blockquote><dl><dt>name = definition</dt><dd>
The name of a rule is simply the name itself (without any enclosing
&quot;&lt;&quot; and &quot;&gt;&quot;) and is separated from its definition by the equal <del>character &quot;=&quot;</del> <ins>&quot;=&quot; character</ins>.
White<ins> </ins>space <ins>{2616}</ins> is only significant in that indentation of continuation lines is used to indicate a rule definition that spans
more than one line. Certain basic rules are in uppercase, such as
SP, LWS, HT, CRLF, DIGIT, ALPHA, etc. Angle brackets are used
within definitions whenever their presence will facilitate
discerning the use of rule names.</dd></dl></blockquote><p>規則の名前は、単に名前自体 (<code>&lt;</code> や <code>&gt;</code> で囲まない。) であり、
その定義とは <code class="ABNF">=</code> 文字で分離します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は、規則定義が複数行にまたがっていることを示すための、
継続行標識として使われるときのみ意味を持ちます。
幾つかの基本規則は、 <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SP</anchor></code>, <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LWS</anchor></code>,
<code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HT</anchor></code>, <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRLF</anchor></code>, <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DIGIT</anchor></code>,
<code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ALPHA</anchor></code> などのように大文字です。
角括弧は、定義中で規則名を使っていることをわかりやすくできるのであれば使用します。</p><blockquote><dl><dt>&quot;literal&quot;</dt><dd>
Quotation marks surround literal text. Unless stated otherwise, the
text is case-insensitive.</dd></dl></blockquote><p>引用符は表記文を囲みます。特に言及されていない限り、
文は大文字・小文字を区別しません。</p><blockquote><dl><dt>rule1 | rule2</dt><dd>
Elements separated by a bar (<del>&quot;I&quot;</del><ins>&quot;|&quot;</ins>) are alternatives,
e.g., &quot;yes | no&quot; will accept yes or no.</dd></dl></blockquote><p>棒線 (<code class="ABNF">|</code>) で分離した要素群は、代替選択肢で、
例えば <samp class="ABNF">yes | no</samp> は <samp class="ABNF">yes</samp> または <samp class="ABNF">no</samp>
を受け入れます。</p><blockquote><dl><dt>(rule1 rule2)</dt><dd>
Elements enclosed in parentheses are treated as a single element.
Thus, &quot;(elem (foo | bar) elem)&quot; allows the token sequences &quot;elem foo elem&quot; and &quot;elem bar elem&quot;.</dd></dl></blockquote><p>括弧で囲まれた要素群は、単一の要素として扱います。
従って、 <samp class="ABNF">(elem (foo | bar) elem)</samp>
は字句列 <samp class="ABNF">elem foo elem</samp> および <samp class="ABNF">elem bar elem</samp>
を認めます。</p><blockquote><dl><dt>*rule</dt><dd>
The character &quot;*&quot; preceding an element indicates repetition. The
full form is &quot;&lt;n&gt;*&lt;m&gt;element&quot; indicating at least &lt;n&gt; and at most
&lt;m&gt; occurrences of element. Default values are 0 and infinity so
that &quot;*(element)&quot; allows any number, including zero; &quot;1*element&quot;
requires at least one; and &quot;1*2element&quot; allows one or two.</dd></dl></blockquote><p>要素の前の文字 <code class="ABNF">*</code> は、反復を示します。
完全形は <code class="ABNF"><var>&lt;n&gt;</var>*<var>&lt;m&gt;</var><var>element</var></code> で、
最低 <var>&lt;n&gt;</var> 個、最高 <var>&lt;m&gt;</var> 個の <var class="ABNF">element</var>
が現れることを示しています。既定値は <code>0</code> と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">∞</anchor>ですから、
<samp class="ABNF">*(<var>element</var>)</samp> は零個を含む任意個を認めます。
<samp class="ABNF">1*<var>element</var></samp> は最低1つ必要です。
<samp class="ABNF">1*2<var>element</var></samp> は1つか2つ認めます。</p><blockquote><dl><dt>[rule]</dt><dd>
Square brackets enclose optional elements; &quot;[foo bar]&quot; is
equivalent to &quot;*1(foo bar)&quot;.</dd></dl></blockquote><p>四角括弧は任意選択要素を囲みます。 <samp class="ABNF"> [foo bar] </samp>
は <samp class="ABNF">*1(foo bar)</samp> と同等です。</p><blockquote><dl><dt>N rule</dt><dd>
Specific repetition: &quot;&lt;n&gt;(element)&quot; is equivalent to
&quot;&lt;n&gt;*&lt;n&gt;(element)&quot;; that is, exactly &lt;n&gt; occurrences of (element).
Thus 2DIGIT is a 2-digit number, and 3ALPHA is a string of three alphabetic characters.</dd></dl></blockquote><p>特定反復: <code class="ABNF"><var>&lt;n&gt;</var>(<var>element</var>)</code> は
<code class="ABNF"><var>&lt;n&gt;</var>*<var>&lt;n&gt;</var>(<var>element</var>)</code> と同等です。
つまり、丁度 <var>&lt;n&gt;</var> 回の <var class="ABNF">element</var> の出現です。
従って、 <samp class="ABNF">2DIGIT</samp> は2桁の数字で、
<samp class="ABNF">3ALPHA</samp> は3文字の英数字の文字列です。</p><blockquote><dl><dt>#rule</dt><dd>
A construct &quot;#&quot; is defined, similar to &quot;*&quot;, for defining lists of
elements. The full form is &quot;&lt;n&gt;#&lt;m&gt;element &quot; indicating at least
&lt;n&gt; and at most &lt;m&gt; elements, each separated by one or
more commas (&quot;,&quot;) and <del>optional</del> <ins><ins>{2616}</ins> OPTIONAL</ins> linear white<ins> </ins>space <ins>{2616}</ins> (LWS). This
makes the usual  form of lists very easy; a rule such as <del>&quot;</del>( *LWS element *( *LWS &quot;,&quot; *LWS element )) <del>&quot;</del> can be shown as <del>&quot;</del>1#element<del>&quot;</del> <ins>{削除部 = 1945,2068}</ins>. Wherever this
construct is used, null elements are allowed, but do not contribute
to the count of elements present.  That is, &quot;(element), , (element)&quot;
is permitted, but counts as only two elements. Therefore, where
at least one element is required, at least one non-null element <del>must</del> <ins><ins>{2616}</ins> MUST</ins> be present. Default values are 0 and infinity so that <del><ins>{1945}</ins> &quot;#(element)&quot;</del> <ins>&quot;#element&quot;</ins>
allows any number, including zero; &quot;1#element&quot; requires at least one; and &quot;1#2element&quot; allows one or two.</dd></dl></blockquote><p>構造 <code class="ABNF">#</code> は、要素の並びを定義するために、 <code class="ABNF">*</code> と同様に定義します。完全形は <code class="ABNF"><var>&lt;n&gt;</var>#<var>&lt;m&gt;</var><var>element</var></code> で、最低 <var>&lt;n&gt;</var> 個、最高 <var>&lt;m&gt;</var> 個の <var class="ABNF">element</var> であり、それぞれは一つ以上の読点 (<code class="ABNF">,</code>) と<strong><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">任意選択</anchor></strong>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">線形空白</anchor> (<code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LWS</anchor></code>) で分離します。これは並びの通常形を非常に容易とします。 <samp class="ABNF">( *LWS element *( *LWS &quot;,&quot; *LWS element ))</samp> のような規則は <samp class="ABNF">1#element</samp> と示すことができます。
個の構造が使われているときはいつでも空の要素が認められますが、出現要素の数に入れません。つまり、 <samp class="ABNF">(element), , (element)</samp> は認められますが、
2つだけの要素と数えます。従って、最低一つの要素が必要なところでは、最低一つの空でない要素が現れなければ<strong>なりません</strong>。既定値は 0 と無限大ですので、
<samp class="ABNF">#element</samp> は零個を含む任意個を認めます。 <samp class="ABNF">1#element</samp> は最低一個必要です。 <samp class="ABNF">1#2element</samp> は1個か2個認めます。</p><blockquote><dl><dt>; comment</dt><dd>
A semi-colon, set off some distance to the right of rule text,
starts a comment that continues to the end of line. This is a
simple way of including useful notes in parallel with the specifications.</dd></dl></blockquote><p>セミコロンは、規則文の右端と少し離して、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈</anchor>のはじめとします。
注釈は行の終わりまで続きます。これは、仕様書と並行に有用な注記を含める簡単な方法です。</p><blockquote><dl><dt>implied *LWS</dt><dd>
The grammar described by this specification is word-based. Except
where noted otherwise, linear white<ins> </ins>space <ins>{2616}</ins> (LWS) can be included
between any two adjacent words (token or quoted-string), and
between adjacent <del>tokens and delimiters (tspecials)</del> <ins><ins>{2616}</ins> words and separators</ins>, without
changing the interpretation of a field. At least one delimiter
(<del>tspecials</del> <ins><ins>{2616}</ins> LWS and/or separators</ins>) <del>must</del> <ins><ins>{2616}</ins> MUST</ins> exist between any two tokens <ins><ins>{2616}</ins> (for the definition of &quot;token&quot; below)</ins>, since they would
otherwise be interpreted as a single token. <del>However, applications should attempt to follow &quot;common form&quot; when generating HTTP constructs, since there exist some implementations that fail to accept anything beyond the common forms.</del></dd></dl></blockquote><dl><dt>暗黙の <code class="ABNF">*<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LWS</anchor></code></dt><dd>個の仕様書で記述する文法は語を基にしたものです。
別途注記の無い限り、線形空白 (LWS) を二つの隣接する語
(<code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">token</anchor></code> や <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-string</anchor></code>) の間ならびに隣接する語と分離子の間に欄の解釈を変えてしまうことなく入れることができます。
二つの字句の間には、最低一つの区切子 (<code class="ABNF">LWS</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">及び/又は</anchor>分離子)
がなければ<strong>なりません</strong>。そうでないと、一つの字句として解釈されてしまいます。<del>しかしながら、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は HTTP 構造を生成する時には「共通形」に従うように試みるべきです。共通形以外のものを受け入れてくれない実装もあります。</del></dd></dl><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></section><section><h1>2.2 Basic Rules</h1><p>→<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP//メッセージ</anchor></p></section></figure><figure class="ABNF"><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> <ul><li>rule = rule-name defined-as elements [CFWS] ;; name = definition</li><li>defined-as = [CFWS] &quot;=&quot; [CFWS]</li><li>rule-name = ALPHA *(ALPHA / DIGIT / &quot;-&quot;)  ;; 名前文字の規定なし。</li><li>elements = alternation</li><li>alternation = concatenation *([CFWS] &quot;|&quot; [CFWS] concatenation) ;; rule1 | rule2</li><li>concatenation = repetition *([CFWS] repetition)</li><li>repetition = [repeat] element<ul><li>;; <code class="ABNF">element</code> が <code class="ABNF">char-val</code> の時は、 <code class="ABNF">repeat &quot;(&quot; char-val &quot;)&quot;</code> とするのが普通。</li></ul></li><li>element = rule-name / group / option / char-val / prose-val / csv</li><li>repeat = number / [number] &quot;*&quot; [number]     ;; *rule / N rule</li><li>group = &quot;(&quot; alternation &quot;)&quot;                 ;; (rule1 rule2)</li><li>option = &quot;[&quot; alternation &quot;]&quot;                ;; [rule]</li><li>char-val = &lt;&quot;&gt; 1*(CHAR - &lt;&quot;&gt;) &lt;&quot;&gt;           ;; &quot;literal&quot;</li><li>prose-val = &quot;&lt;&quot; 1*(CHAR / FWS) &quot;&gt;&quot; ;; <code class="ABNF">&lt;&quot;&gt;</code> 又は自由文。<ul><li>;; <code class="ABNF">&quot;&lt;&quot; / &quot;&gt;&quot;</code> が文中に入ることもある。</li></ul></li><li>csv = ( [number] &quot;#&quot; [number] ) element     ;; #rule<ul><li>;; 1#element == ([FWS] [element] *([FWS] &quot;,&quot; [FWS] [element]))</li><li>;; ただし element は最低1つ必要。</li></ul></li><li>number = 1*DIGIT / rule-name<ul><li>;; <code class="ABNF">rule-name</code> は、 <code class="ABNF">chunk-data = chunk-size(OCTET)</code> という用例がある。</li></ul></li><li>CFWS = FWS *([comment] FWS)</li><li>comment = &quot;;&quot; 1*CHAR CRLF 1*WSP             ;; ; comment</li></ul></p></figure></section><section><h1>RFC 7230</h1><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:">RFC 2616</anchor> の改訂版である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7230</anchor> その他では、従来の独自 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor>
にかわって、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5234</anchor> を採用しています。ただしリストを表す <code>#</code>
記法は引き続き独自に定義しています。</p><figure class="quote"><figcaption><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> <cite xml:lang="en">RFC 6455 - The WebSocket Protocol</cite>
(<time>2015-03-11 20:42: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://tools.ietf.org/html/rfc6455#section-4.3">http://tools.ietf.org/html/rfc6455#section-4.3</anchor-external></figcaption><blockquote><p>Some names of the rules correspond to names of the corresponding</p><p>header fields.  Such rules express values of the corresponding header</p><p>fields, for example, the Sec-WebSocket-Key ABNF rule describes syntax</p><p>of the |Sec-WebSocket-Key| header field value.  ABNF rules with the</p><p>&quot;-Client&quot; suffix in the name are only used in requests sent by the</p><p>client to the server; ABNF rules with the &quot;-Server&quot; suffix in the</p><p>name are only used in responses sent by the server to the client.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <cite xml:lang="en">Clarify the ABNF flavor in use</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-02-14 23:34:56 +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/406f86052d37f9318efe4a3c6844d04ea38d5ae3">https://github.com/whatwg/fetch/commit/406f86052d37f9318efe4a3c6844d04ea38d5ae3</anchor-external></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> <cite xml:lang="en">Add some infrastructure notes.</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">@annevk</anchor>著, <time>2017-03-08 17:52: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://github.com/w3c/webappsec-csp/commit/40d2e607855b91f91cfb0f1a183be1b3ce209553">https://github.com/w3c/webappsec-csp/commit/40d2e607855b91f91cfb0f1a183be1b3ce209553</anchor-external></p><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> <cite xml:lang="en">Relax ABNF for invalid policy tokens (#102)</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">@annevk</anchor>著, <time>2017-03-28 20:31:35 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webappsec-referrer-policy/commit/380d752a0194aaa95be1784c3cf27e4a54233822">https://github.com/w3c/webappsec-referrer-policy/commit/380d752a0194aaa95be1784c3cf27e4a54233822</anchor-external></p><p><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">Merge pull request #109 from w3c/abnf</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">plehegar</anchor>著, <time>2017-04-19 06:31: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://github.com/w3c/resource-timing/commit/e73e3677bd9b5a66fbd8c82a10dd681eded76ef3">https://github.com/w3c/resource-timing/commit/e73e3677bd9b5a66fbd8c82a10dd681eded76ef3</anchor-external></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> <cite xml:lang="en">Feedback from @reschke.</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">@reschke</anchor>著, <time>2017-06-29 20:47:29 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webappsec-clear-site-data/commit/9f20dcc7580e241636c4787b6cf852a7e6258d63">https://github.com/w3c/webappsec-clear-site-data/commit/9f20dcc7580e241636c4787b6cf852a7e6258d63</anchor-external></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> <cite xml:lang="en">address w3ctag review feedback (#31)</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">cvazac</anchor>著, <time>2017-09-02 10:22: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://github.com/w3c/server-timing/commit/7e195cdb533ffb23307278163a9c50b279e71868">https://github.com/w3c/server-timing/commit/7e195cdb533ffb23307278163a9c50b279e71868</anchor-external></p></section></section></body></html>