] defines a mechanism for running the WebSocket Protocol [RFC 6455
] over a single stream of an HTTP/2 connection. It defines an Extended CONNECT method that specifies a new ":protocol" pseudo-header field and new semantics for the ":path" and ":authority" pseudo-header fields. It also defines a new HTTP/2 setting sent by a server to allow the client to use Extended CONNECT.
The semantics of the pseudo-header fields and setting are identical to those in HTTP/2 as defined in [RFC 8441
] requires that HTTP/3 settings be registered separately for HTTP/3. The SETTINGS_ENABLE_CONNECT_PROTOCOL value is 0x08 (decimal 8), as in HTTP/2.
If a server advertises support for Extended CONNECT but receives an Extended CONNECT request with a ":protocol" value that is unknown or is not supported, the server SHOULD
respond to the request with a 501 (Not Implemented) status code ([HTTP
]). A server MAY
provide more information via a "problem details" response [RFC 7807
The HTTP/3 stream closure is also analogous to the TCP connection closure of [RFC 6455
]. Orderly TCP-level closures are represented as a FIN bit on the stream ([HTTP/3
]). RST exceptions are represented with a stream error ([HTTP/3
]) of type H3_REQUEST_CANCELLED ([HTTP/3