メインコンテンツまでスキップ

5. 拡張 CONNECT を使用した WebSocket プロトコルのブートストラップ (Using Extended CONNECT to Bootstrap the WebSocket Protocol)

CONNECT リクエストに含まれる :protocol 疑似ヘッダーフィールドは、ストリームが WebSocket プロトコルに使用されることを示します。このフィールドの値は "websocket" でなければなりません (MUST)。

:scheme 疑似ヘッダーフィールドは、wss URI の場合は "https"、ws URI の場合は "http" に設定する必要があります (MUST)。

:path 疑似ヘッダーフィールドは、ターゲット URI のパスとクエリ部分に設定する必要があります (MUST)。

:authority 疑似ヘッダーフィールドは、ターゲット URI の権限部分に設定する必要があります (MUST)。

リクエストには、"Connection"、"Upgrade"、"Sec-WebSocket-Key"、または "Sec-WebSocket-Version" ヘッダーフィールドを含めてはなりません (MUST NOT)。

本文書をサポートし、:protocol 疑似ヘッダーフィールドが "websocket" に等しい CONNECT リクエストを受信するサーバーは、リクエストを WebSocket ハンドシェイクとして処理する必要があります (MUST)。

サーバーが WebSocket 接続に同意する場合、200 (OK) ステータスコードで応答する必要があります (MUST)。

5.1. 例

[[HEADERS frame]] :method = CONNECT :protocol = websocket :scheme = https :path = /chat :authority = server.example.com sec-websocket-protocol = chat, superchat sec-websocket-version = 13 origin = http://www.example.com

[[DATA frame]] (WebSocket data)