HTTP/2 与 QUIC 加速是什么
CDN 边缘节点可以在 HTTPS 上开启 HTTP/2 或 QUIC(HTTP/3),把加速从「就近取源」延伸到传输层:HTTP/2 在一条 TCP 连接上多路复用多个请求,减少握手与队头阻塞带来的往返开销;QUIC 跑在 UDP 上,把传输与加密握手合并,弱网和高丢包场景下建连更快。客户端不支持时自动回退到 HTTP/1.1,这是正常行为,不是配置失效。
基本信息
| HTTP/2 | 单连接多路复用,需在 HTTPS 下生效 |
|---|---|
| QUIC(HTTP/3) | 基于 UDP 的传输协议,弱网建连更快 |
| 协议协商 | 通过 ALPN 协商;HTTP/3 由 alt-svc 响应头提示 |
| 回退行为 | 客户端不支持时回落 HTTP/1.1 |
| 开启前提 | 一般需要先启用 HTTPS 证书 |
| 生效范围 | 边缘与客户端之间;回源链路是否使用由回源配置决定 |
典型使用场景
- 页面资源多、并发请求密集的站点:用 HTTP/2 复用连接降低加载时间
- 移动端为主的业务:弱网环境用 QUIC 缩短首屏时间
- 跨国访问:高丢包链路下 QUIC 的重传与拥塞控制更友好
- 大促前调优:确认边缘协议能力已开启,避免流量洪峰时握手成为瓶颈
- 回退验证:确认老客户端在回退链路上功能与性能都可接受
三种协议的差别
| 协议 | 传输层 | 主要收益 | 注意事项 |
|---|---|---|---|
| HTTP/1.1 | TCP | 兼容性最好 | 并发连接多,队头阻塞明显 |
| HTTP/2 | TCP | 单连接多路复用 | TCP 层丢包仍会阻塞所有流 |
| HTTP/3(QUIC) | UDP | 握手更快、流级独立 | 链路封 UDP 时自动回退 |
验证协议协商结果
验证协议协商结果
curl -sI --http2 https://cdn.example.com/ -o /dev/null \
-w 'http_version=%{http_version}\n' # 是否协商到 HTTP/2
curl -sI https://cdn.example.com/ | grep -i alt-svc # 是否提示 h3
curl -s --http3 https://cdn.example.com/ -o /dev/null -w '%{http_version}\n' # 客户端需支持 HTTP/3
openssl s_client -connect cdn.example.com:443 -alpn h2 </dev/null 2>/dev/null | grep ALPNQUIC 使用 UDP 443 等端口,企业内网或某些运营商链路封 UDP 时客户端会回退到 TCP 方案。看到「没有走 HTTP/3」先确认本地 UDP 是否被拦,再判断是不是 CDN 配置问题。
配置顺序要先证书后协议:QUIC 与 HTTP/2 都建立在 HTTPS 之上,证书未就绪就开启会出现协商异常,排查时容易误判为 CDN 故障。