跳转至

HTTP/3(QUIC)与 HTTP/2 对比要点

HTTP/2 把多路复用带到 TCP 之上,而 HTTP/3 把多路复用与 TLS 直接放到 QUIC(UDP)之上,目标是减少时延并降低丢包带来的队头阻塞。

1. 连接建立与握手

  • HTTP/2:TCP 三次握手 + TLS 握手(通常 1-2 RTT)
  • HTTP/3:QUIC 把传输与 TLS 1.3 结合,可更快完成握手,并支持 0-RTT(有重放风险)

2. 队头阻塞(HoL Blocking)

  • HTTP/2:应用层多路复用,但底层 TCP 丢一个包会阻塞整个连接上的所有 stream
  • HTTP/3:每个 stream 在 QUIC 层独立确认与重传,丢包影响更局部

3. 网络与设备兼容性

  • 企业网络/防火墙可能对 UDP 更严格
  • NAT/负载均衡需要支持 QUIC 相关特性(如连接迁移、四元组变化)

4. 观察与排障

建议同时打开:

  • 客户端侧:浏览器 netlog / curl 的 --http3
  • 服务端侧:QUIC 握手失败原因、TLS 报错、0-RTT 命中率
  • 网络侧:UDP 丢包、MTU、路径变更频率