首页 > 解决方案 > WebSocket 连接:它可以遵循以前的 HTTP/1.1 请求/响应吗?

问题描述

是否可以使用一个或多个常规 HTTP 请求/响应已使用的 TCP(或 TCP+TLS)连接来启动 WebSocket 连接,或者客户端是否必须为每个 WebSocket 连接启动一个新的 TCP 连接?

[在扩展 HTTP 客户端以支持建立 WebSockets 连接的上下文中询问。客户端维护一个keep-alive连接池,并且想知道在建立WebSocket连接时是否可以使用池中的TCP连接。]

标签: httpwebsocket

解决方案


来自https://www.rfc-editor.org/rfc/rfc6455#section-4.1

一旦建立了与服务器的连接(包括通过代理或通过 TLS 加密隧道的连接),客户端必须向服务器发送打开握手。

该语言向我表明,在打开连接和发送 WebSocket 开放握手之间不应该有任何 [例如 HTTP 请求/响应] 不符合规范。

所以不,来自先前 HTTP 请求/响应的连接不能用于 WebSockets。


推荐阅读