WebSocket 是否与 HTTP/3 兼容
Is WebSocket compatible with HTTP/3
即将推出的HTTP/3标准不再基于TCP,而是基于QUIC协议。 WebSocket基于TCP,作为HTTP更新发起。
作为 HTTP/3 更新发起的 WebSocket 连接是否基于 QUIC 而不是 TCP?或者无法将 HTTP/3 连接更新为 WebSocket 连接?
目前只有 HTTP/1.1 被 RFC6455 支持用于连接升级。
Once a connection to the server has been established (including a
connection via a proxy or over a TLS-encrypted tunnel), the client
MUST send an opening handshake to the server. The handshake consists
of an HTTP Upgrade request, along with a list of required and
optional header fields. The requirements for this handshake are as
follows.
The handshake MUST be a valid HTTP request as specified by
[RFC2616].
The method of the request MUST be GET, and the HTTP version MUST
be at least 1.1.
但是,有人提议支持 HTTP/2 以及 HTTP/3(如上面评论中提到的 Remy Lebeau)。
由于这是“http3 websockets”的最高搜索结果,我想保留答案 up-to-date。
截至 2021 年 12 月,现在有一个 IETF draft that amends RFC8441(使用 HTTP/2 引导 WebSockets),其中包含 HTTP/3 所需的调整。如果草案 被 接受,将有一个标准化的方式来启动 WebSockets HTTP/3。
草案正在第二次修改中,如果没有进一步修改,将在 2022 年 7 月到期,届时将不被接受。
即将推出的HTTP/3标准不再基于TCP,而是基于QUIC协议。 WebSocket基于TCP,作为HTTP更新发起。
作为 HTTP/3 更新发起的 WebSocket 连接是否基于 QUIC 而不是 TCP?或者无法将 HTTP/3 连接更新为 WebSocket 连接?
目前只有 HTTP/1.1 被 RFC6455 支持用于连接升级。
Once a connection to the server has been established (including a
connection via a proxy or over a TLS-encrypted tunnel), the client
MUST send an opening handshake to the server. The handshake consists of an HTTP Upgrade request, along with a list of required and
optional header fields. The requirements for this handshake are as
follows.
The handshake MUST be a valid HTTP request as specified by [RFC2616].
The method of the request MUST be GET, and the HTTP version MUST be at least 1.1.
但是,有人提议支持 HTTP/2 以及 HTTP/3(如上面评论中提到的 Remy Lebeau)。
由于这是“http3 websockets”的最高搜索结果,我想保留答案 up-to-date。
截至 2021 年 12 月,现在有一个 IETF draft that amends RFC8441(使用 HTTP/2 引导 WebSockets),其中包含 HTTP/3 所需的调整。如果草案 被 接受,将有一个标准化的方式来启动 WebSockets HTTP/3。
草案正在第二次修改中,如果没有进一步修改,将在 2022 年 7 月到期,届时将不被接受。