3. WebSockets Upgrade over HTTP/3 (WebSockets-Upgrade über HTTP/3)
[RFC8441] definiert einen Mechanismus zum Ausführen des WebSocket-Protokolls (WebSocket Protocol) [RFC6455] über einen einzelnen Stream einer HTTP/2-Verbindung. Es definiert eine erweiterte CONNECT-Methode (Extended CONNECT method), die ein neues „:protocol"-Pseudo-Header-Feld (pseudo-header field) spezifiziert und neue Semantiken für die „:path"- und „:authority"-Pseudo-Header-Felder definiert. Es definiert auch eine neue HTTP/2-Einstellung (setting), die von einem Server gesendet wird, um dem Client die Verwendung von erweitertem CONNECT zu ermöglichen.
Die Semantiken der Pseudo-Header-Felder und der Einstellung sind identisch mit denen in HTTP/2, wie in [RFC8441] definiert. Anhang A.3 von [HTTP/3] erfordert, dass HTTP/3-Einstellungen separat für HTTP/3 registriert werden. Der Wert SETTINGS_ENABLE_CONNECT_PROTOCOL ist 0x08 (dezimal 8), wie in HTTP/2.
Wenn ein Server Unterstützung für erweitertes CONNECT ankündigt, aber eine erweiterte CONNECT-Anfrage mit einem unbekannten oder nicht unterstützten „:protocol"-Wert erhält, sollte (SHOULD) der Server auf die Anfrage mit einem 501 (Not Implemented) Statuscode (Abschnitt 15.6.2 von [HTTP]) antworten. Ein Server kann (MAY) über eine „Problem Details"-Antwort [RFC7807] weitere Informationen bereitstellen.
Der HTTP/3-Stream-Abschluss (stream closure) ist auch analog zum TCP-Verbindungsabschluss von [RFC6455]. Geordnete TCP-Level-Abschlüsse werden als FIN-Bit auf dem Stream dargestellt (Abschnitt 4.4 von [HTTP/3]). RST-Ausnahmen werden mit einem Stream-Fehler (stream error) (Abschnitt 8 von [HTTP/3]) vom Typ H3_REQUEST_CANCELLED (Abschnitt 8.1 von [HTTP/3]) dargestellt.