TCP 长连接#
HTTP/1.1 默认为长连接(Connection 默认为 Keep-alive), 因此只要在指定时间(超时时间)内保持请求且未达到服务器于客户端承载上限就可以长期保持。
相对于短连接,只是少了多次请求间的开闭操作。
websocket 长连接#
websocket 是基于 TCP 协议的双向传输协议,通过 HTTP/1.1 协议 101 状态码握手。
websocket 通过 HTTP 协议建立握手后,后续通讯通过 TCP 协议而不是通过 HTTP 协议
区别#
- 由于 websocket 是全双工协议,因此服务器可以主动向客户端发送数据,而 TCP 长连接需要等待客户端发起请求才能响应
- websocket 先建立连接,再保持通讯,因此后续通信可以省略部分状态信息,而 TCP长连接每次请求可能都需要携带状态信息