为什么需要 HTTP/3
最近在使用一个开源工具时发现基于 UDP 的协议延迟明显更低,这让我关注了 HTTP/3。简单来说,HTTP/3 解决了 TCP 协议层面的一个根本性问题:队头阻塞(Head-of-Line Blocking)。
核心问题
HTTP/2 虽然在应用层实现了多路复用,但底层仍然依赖 TCP。当网络丢包时,TCP 会阻塞整个连接,等待重传,即使其他数据流已经到达也无法处理。这在弱网环境下尤其明显。
HTTP/3 基于 QUIC 协议(运行在 UDP 之上),从根本上解决了这个问题:
- 独立的流控制: 每个流的丢包不会影响其他流
- 0-RTT 连接建立: 首次连接后,后续连接可以零延迟
- 连接迁移: 切换网络(如 WiFi 到 4G)时无需重新握手
- 内置 TLS 1.3: 安全性和性能一步到位
