<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p>A connection endpoint has:<figure class="list"><dl><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">read timer</f></dt><dd>A timer, initially unset.</dd></dl></figure></p><p>When a connection has been established,
or whene a connection has received some data,
set connection's <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">read timer</f> to 60s.</p><p>When connection's <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">read timer</f>'s current time becomes <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>,
close the connection <var>endpoint</var>.</p><figure class="steps"><ol><li>改行を読み飛ばします。</li><li><var>要求行</var>を、要求行を構文解析した結果に設定します。</li><li><var>要求行</var>がエラーなら、<ol><li>致死的エラーとし、ここで停止します。</li></ol></li><li><var>要求行</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコルの版</f>が <code>null</code> なら、<ol><li><var>応答</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコルの版</f>を、 <code>HTTP/0.9</code> に設定します。</li><li><var>要求行</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求メソッド</f>が <code>GET</code> 以外なら、<ol><li>致死的エラーとし、ここで停止します。</li></ol></li></ol></li><li>それ以外の場合、<ol><li><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><var xmlns="http://www.w3.org/1999/xhtml">要求行</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコルの版</f></ed></li><li><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><var xmlns="http://www.w3.org/1999/xhtml">要求行</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求メソッド</f></ed></li><li><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">要求ヘッダー</ed></li></ol></li><li><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><var xmlns="http://www.w3.org/1999/xhtml">要求行</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求対象</f></ed></li><li><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">要求本体</ed></li></ol></figure><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>とは</ed><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> 致死的エラーでは、次のようにします。<figure class="steps"><ol><li><code>400</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答本体</anchor>を送信します。</li><li>Close the connection <var>endpoint</var>.</li></ol></figure></p><p>To close the connection <var>endpoint</var>:<figure class="steps"><ol><li>Let <var>endpoint</var>'s connection be closed.</li></ol></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 要求行を構文解析とは<figure class="steps"><ol><li><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"></ed></li><li><var>要求対象</var>の先頭が <code>/</code> でなければ、エラーを返します。</li></ol></figure></p><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">CONNECT hoge HTTP/1.1</ed><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">CONNECT mode</ed><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">WS mode</ed></body></html>