HTTP 演进史
- HTTP/1.1:文本协议,队头阻塞(同一连接请求串行)
- HTTP/2:二进制分帧,多路复用,但 TCP 队头阻塞仍在
- HTTP/3:基于 QUIC/UDP,彻底消除队头阻塞
QUIC 核心优势
TCP 问题:
Stream 1: [P1] [P2] [丢失P3] [P4等待...]
Stream 2: [P5] [P6等待...] // Stream 2 被 Stream 1 阻塞!
QUIC 解决:
Stream 1: [P1] [P2] [丢失P3] [P4] // P3 重传不影响 P4
Stream 2: [P5] [P6] [P7] // Stream 2 完全不受影响!
0-RTT 与 1-RTT 握手
| 协议 | 握手次数 | 延迟 |
| TLS 1.2 over TCP | 2-RTT | ~200ms |
| TLS 1.3 over TCP | 1-RTT | ~100ms |
| QUIC (首次) | 1-RTT | ~100ms |
| QUIC (重连) | 0-RTT | ~0ms! |
Nginx 启用 HTTP/3
# nginx.conf (需要 nginx-quic 分支)
server {
listen 443 quic reuseport;
listen 443 ssl;
server_name peaktea.cn;
ssl_protocols TLSv1.3;
ssl_certificate /path/cert.pem;
add_header Alt-Svc 'h3=":443"; ma=86400';
}
迁移策略
- HTTP/3 通过 Alt-Svc 头优雅降级,客户端不支持时自动退回 HTTP/2
- CDN 已广泛支持 (Cloudflare、AWS CloudFront)
- 内网微服务通信可直接全量切 QUIC