<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="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続エラー<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">connection error</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/2接続</anchor>全体に影響するエラーです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。
<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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src>。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)</cite> (<time>2015-05-15 10:14:54 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7540#section-2.2">https://tools.ietf.org/html/rfc7540#section-2.2</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 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)</cite> (<time>2015-05-15 10:14:54 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7540#section-3.5">https://tools.ietf.org/html/rfc7540#section-3.5</anchor-external></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> <strong><cite xml:lang="en">RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)</cite> (<time>2015-05-15 10:14:54 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7540#section-5.4.1">https://tools.ietf.org/html/rfc7540#section-5.4.1</anchor-external></strong></li></ul></refs></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 次のエラーは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続エラー</anchor>となることがあります。<figure class="list short"><ul><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">COMPRESSION_ERROR</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ENHANCE_YOUR_CALM</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">FLOW_CONTROL_ERROR</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">FRAME_SIZE_ERROR</anchor></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">INADEQUATE_SECURITY</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PROTOCOL_ERROR</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SETTINGS_TIMEOUT</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">STREAM_CLOSED</anchor></code></li></ul></figure></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</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>として扱うこともできます。 <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src></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="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;11</anchor-internal> に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 形式の一覧データファイルがあります。<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="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite xml:lang="en">data-web-defs/http-frames.txt at master · manakai/data-web-defs</cite> (<time>2015-05-28 00:33:14 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/manakai/data-web-defs/blob/master/doc/http-frames.txt">https://github.com/manakai/data-web-defs/blob/master/doc/http-frames.txt</anchor-external></li></ul></refs></comment-p></section><section><h1>処理</h1><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続エラー</anchor>となった<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エンドポイント</anchor>は、
まず <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GOAWAY</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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src>。<figure class="list members"><figcaption><p><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GOAWAY</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フレーム</anchor></p></figcaption><dl><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ストリーム識別子</anchor></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">peer</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><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り符号</anchor></dt><dd>接続を終える理由</dd></dl></figure></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</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:">peer</anchor> に伝えようとするものですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">peer</anchor> が受信する保証はありません <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src>。</comment-p><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:">接続序文</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:">PROTOCOL_ERROR</anchor></code> は、相手が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/2</anchor>
でない可能性が高いため、 <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GOAWAY</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><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> その送信後、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TCP接続</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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src>。</p></section></body></html>