tcp长连接对比 websocket

TCP 长连接

HTTP/1.1 默认为长连接（Connection 默认为 Keep-alive）, 因此只要在指定时间（超时时间）内保持请求且未达到服务器于客户端承载上限就可以长期保持。

相对于短连接，只是少了多次请求间的开闭操作。

websocket 长连接

websocket 是基于 TCP 协议的双向传输协议，通过 HTTP/1.1 协议 101 状态码握手。

websocket 通过 HTTP 协议建立握手后，后续通讯通过 TCP 协议而不是通过 HTTP 协议

区别

由于 websocket 是全双工协议，因此服务器可以主动向客户端发送数据，而 TCP 长连接需要等待客户端发起请求才能响应

websocket 先建立连接，再保持通讯，因此后续通信可以省略部分状态信息，而 TCP长连接每次请求可能都需要携带状态信息