即将到来的 HTTP/3 标准不再基于 TCP,而是基于 QUIC 协议。WebSocket 基于 TCP 并作为 HTTP 更新启动。
WebSocket 连接是否基于 QUIC 而不是 TCP 作为 HTTP/3 更新启动?还是无法将 HTTP/3 连接更新为 WebSocket 连接?
目前, RFC6455仅支持 HTTP/1.1用于连接升级。
一旦建立了与服务器的
连接(包括通过代理或通过 TLS 加密隧道的连接),客户端
必须向服务器发送打开握手。握手包括一个 HTTP 升级请求,以及一个必需和
可选的头字段列表。此握手的要求
如下。
握手必须是 [RFC2616] 指定的有效 HTTP 请求。
请求的方法必须是 GET,并且 HTTP 版本必须至少为 1.1。
然而,有提议支持 HTTP/2 和 HTTP/3(正如 Remy Lebeau 在上面的评论中提到的)。