相关信息
本章节主要学习长连接、短连接、web_socket的区别
-
短连接
- 模式:建立连接 -> 发送数据 -> 关闭连接。
- 背景:早期的 HTTP/1.0。每请求一个网页上的图片或 CSS,都要经历一次 TCP 三次握手和四次挥手。
- 缺点:开销极大。频繁地创建和销毁连接非常耗费 CPU 和内存资源。
-
长连接
- 模式:建立连接 -> 发送数据 -> 保持连接 -> 发送数据 -> ... -> 关闭连接。
- 背景:HTTP/1.1 默认开启。在 HTTP Header 中加入 Connection: keep-alive。
- 特点:
- 复用:同一个 TCP 连接可以发送多个 HTTP 请求。
- 半双工:虽然连接没断,但依然是“请求-响应”模式。必须客户端先问,服务端才能答。
- 阻塞:前面的请求没处理完,后面的请求就得排队(Head-of-line blocking)
-
WebSocket (全双工长连接)
- 模式:HTTP 握手升级 -> 建立持久 TCP 连接 -> 双向实时传输。
- 背景:为了解决“服务端主动推送到客户端”的问题(如聊天、实时股票)。
- 特点:
- 全双工:客户端和服务器可以同时给对方发消息,不需要等对方回应。
- 协议升级:它开始时借用 HTTP 的 80/443 端口进行握手,握手成功后就“脱离” HTTP,转为 WebSocket 协议。
- 轻量:数据头非常小,适合频繁发送短消息。
-
keep-alive 如何设置
本文作者:曹子昂
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!