HTTP 长连接与短连接的区别和好处?
1 个回答
你爱你的玫瑰是因为你在你的玫瑰上花了太多的时间!吴敏## 一、概念对比 ### 1. 短连接(Short Connection) * **建立方式**:每次 HTTP 请求都新建一次 TCP 连接,请求完成后立即关闭。 * **特点**: * HTTP/1.0 默认模式 * 每个请求都要经历 **三次握手 + 数据传输 + 四次挥手** * 适合请求频率低的场景 ### 2. 长连接(Keep-Alive / Persistent Connection) * **建立方式**:一个 TCP 连接可以承载多个 HTTP 请求/响应,请求完成后不立即关闭,保持一段时间。 * **特点**: * HTTP/1.1 默认开启(`Connection: keep-alive`) * 多个请求可复用同一个 TCP 连接 * 连接空闲超时后才关闭(由客户端或服务器配置) ## 二、区别表 | 对比项 | 短连接 | 长连接 | | ------------ | ------------- | ----------- | | **TCP 连接次数** | 每个请求都新建 | 多个请求复用一个 | | **握手挥手开销** | 大(每次都有) | 小(一次连接多次使用) | | **延迟** | 高(建立连接时间长) | 低(复用连接) | | **资源占用** | 少(空闲时无连接) | 多(需要保持连接状态) | | **适用场景** | 请求频率低,实时性要求不高 | 请求频繁、实时性高 | ## 三、长连接的好处 1. **减少 TCP 握手和挥手的次数** * 三次握手和四次挥手的延迟、CPU 开销都省下来了 * 对高频请求特别明显 2. **降低网络延迟** * 复用已建立的 TCP 连接,直接发数据 * 对页面加载(多个资源)或接口调用(批量请求)速度提升大 3. **减少服务器压力** * 连接复用减少了频繁的 TCP 建立和释放,减少内核资源消耗 4. **提升用户体验** * 对实时性要求高的应用(IM、交易系统)延迟更低 ## 四、注意事项(长连接并不是越久越好) * 长时间保持连接会**占用服务器资源**(线程、内存、FD),连接数多可能导致资源耗尽 * 一般配合 **连接池 + 空闲超时** 控制 * HTTP/2、HTTP/3 在长连接上还能实现**多路复用**,效率更高发布于 2025-08-13 08:49 •IP属地 香港举报评论收藏
公众号进入网站体验更佳

