网络的演进:比较 HTTP/1.1、HTTP/2 和 HTTP/3
发布: (2026年1月7日 GMT+8 10:56)
3 min read
原文: Dev.to
Source: Dev.to
如果你曾经好奇为什么现代网页比十年前快了许多,答案就在于互联网的“管道”。超文本传输协议(HTTP)已经经历了巨大的变革,以跟上我们数据密集的世界。
1. 瓶颈:HTTP/1.1
在早期,HTTP/1.1 是黄金标准,但它受到 行首阻塞(Head‑of‑Line,HOL) 的困扰。
- 每个连接单个请求: 浏览器在每个 TCP 连接上一次只能处理一个请求。
- 并发受限: 浏览器通常对同一域名打开 最多 6 条并发 TCP 连接。
- 影响: 一个包含 100 张图片的页面会以六张为一批排队,导致明显的延迟。
2. 效率升级:HTTP/2
2015 年发布的 HTTP/2 引入了 真正的多路复用:
- 单连接,多流: 数据在单个 TCP 连接上被拆分为独立的流。
- HPACK 压缩: 头部压缩降低了开销。
需要注意的点
HTTP/2 仍然依赖 TCP。如果丢失了一个数据包,TCP 会暂停 所有 内容以重新传输,导致 TCP 级别的行首阻塞。
3. 未来已来:HTTP/3(QUIC)
HTTP/3 用基于 UDP 的 QUIC 替代了 TCP,消除了剩余的性能瓶颈。
- 不再等待: “图片 A” 的数据包丢失不会阻塞 “图片 B”。
- Zero‑RTT(0‑RTT)握手: 连接和安全握手合并,使首次交互几乎瞬间完成。
- 连接迁移: 唯一的 Connection ID 使会话在 IP 变化(例如 Wi‑Fi → LTE)时仍能保持,不会中断。
技术对比
| 方面 | HTTP/1.1 | HTTP/2 | HTTP/3 |
|---|---|---|---|
| Transport | TCP | TCP | QUIC over UDP |
| Concurrency | Max ~6 requests/conn | Multiplexed streams | Multiplexed (no HOL) |
| HOL Blocking | Connection‑level | TCP‑level (packet loss) | None |
| Compression | None (plaintext) | HPACK | QPACK |
| TLS | Optional | Effectively mandatory | Mandatory (TLS 1.3) |
| Handshake | Multi‑step | Faster (ALPN) | Instant (0‑RTT/1‑RTT) |
| Connection Migration | No | No | Yes (Wi‑Fi to LTE) |
总结:该选哪个?
- HTTP/1.1: 最好仅用于遗留的内部系统。
- HTTP/2: 当前通用网络流量的行业标准。
- HTTP/3: 对移动应用、高延迟地区以及对性能要求极高的平台(如 Google、Facebook、Netflix)至关重要。
向 HTTP/3 的转变代表了一种“移动优先”的互联网,连接不再被假设为稳定,而是被优化为具有弹性。