网站首页 > 文章精选 正文
一句话总结:
“短连接”= 一次请求一次 TCP;“长连接”= 一个 TCP 多次请求。前者像一次性纸杯,用完即丢;后者是保温杯,喝完还能续水。
1. 基本概念
名称 | 关键特征 | HTTP/1.0 默认 | HTTP/1.1 默认 |
短连接 (non-persistent) | 请求–响应结束就FIN | ||
长连接 (persistent / Keep-Alive) | TCP 连接可复用多次 | 需显式Connection: keep-alive | 默认打开;如要关闭需Connection: close |
注意:这里的 “Keep-Alive” 是 HTTP 语义,与操作系统内核的 TCP keepalive 探活包 不是一回事。
2. 报文级触发方式
- 开启长连接
// HTTP/1.0
Connection: keep-alive
- 2、关闭长连接
// HTTP/1.1
Connection: close
- 3、Keep-Alive 头(可选,提示超时与复用上限)
Keep-Alive: timeout=5, max=100
3. 整体时序图
4. 演进与关联协议
- HTTP/1.0
o 规范假定短连接;Connection: keep-alive为后续 RFC 扩展。 - HTTP/1.1
o 默认长连接,故浏览器能复用同一 TCP,减少 3 次握手。
o 但同一连接同一时刻只能飞一条请求,造成“队头阻塞”。 - HTTP/2
o 仍是长连接概念,但在单条 TCP 内用“多路复用”实现并行多流。 - HTTP/3 (QUIC)
o 长连接跑在 UDP + QUIC 上,可串流同时避免 TCP 队头阻塞;支持 0-RTT 恢复、连接迁移。
5. 优缺点小结
长连接 | 短连接 | |
性能 | 减少握手 RTT;节约端口 | 每次握手 + 慢启动 |
并发 | HTTP/1.x 仍受限:一条连接一次只能一个请求;需开多 TCP | 每次新建,天然并行 |
服务器资源 | 常驻 FD / 内存;需设空闲超时 | 用完即关,释放快 |
部署复杂度 | 需要正确的超时、连接池、负载均衡 sticky | 简单 |
6. 超时 & 连接池实践
- 浏览器
o Chrome 空闲 115 s 后断开;最多并发 6~10 条 TCP/域名(HTTP/1.x 时)。 - 服务器
o Nginxkeepalive_timeout 75s;keepalive_requests 1000。 - 后端 SDK
o JavaHttpClient/ Gohttp.Transport都默认启用连接池;需设置IdleConnTimeout。
猜你喜欢
- 2025-07-27 HTTP状态码滥用指南:全栈开发者的REST API最佳实践
- 2025-07-27 开发者必须了解的HTTP头部(http头部参数)
- 2025-07-27 轻松操控C#下载文件:WebClient与HttpClient实战详解
- 2025-07-27 http状态码完整版,再也不需要度娘了。
- 2025-07-27 探索Apache HttpClient超时时间如何设定?
- 2025-07-27 Java实现调用HTTP请求的几种常见方式
- 2025-07-27 HTTP与HTTPS的区别(http和https之间的区别)
- 2025-07-27 100个Java工具类之6:用4种方式发起HTTP请求
- 2025-07-27 HTTP和HTTPS(HTTP和HTTPS的主要区别是什么)
- 2025-07-27 http常见状态码(http常见状态码的含义)
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)
- fmt.println (52)