5. Verwendung von erweitertem CONNECT zum Bootstrappen des WebSocket-Protokolls (Using Extended CONNECT to Bootstrap the WebSocket Protocol)
Das in der CONNECT-Anforderung enthaltene :protocol Pseudo-Header-Feld gibt an, dass der Stream für das WebSocket-Protokoll verwendet werden soll. Der Wert dieses Feldes MUSS "websocket" sein.
Das :scheme Pseudo-Header-Feld MUSS für wss-URIs auf "https" und für ws-URIs auf "http" gesetzt werden.
Das :path Pseudo-Header-Feld MUSS auf die Pfad- und Abfrageteile des Ziel-URI gesetzt werden.
Das :authority Pseudo-Header-Feld MUSS auf den Autoritätsteil des Ziel-URI gesetzt werden.
Die Anforderung DARF NICHT die Header-Felder "Connection", "Upgrade", "Sec-WebSocket-Key" oder "Sec-WebSocket-Version" enthalten.
Ein Server, der dieses Dokument unterstützt UND eine CONNECT-Anforderung mit einem :protocol Pseudo-Header-Feld gleich "websocket" empfängt, MUSS die Anforderung als WebSocket-Handshake verarbeiten.
Wenn der Server der WebSocket-Verbindung zustimmt, MUSS er mit einem Statuscode 200 (OK) antworten.
5.1. Beispiel
[[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)