协议升级要不要开
七层监听通常可以开启 HTTP/2,用多路复用与头部压缩提升并发请求效率;部分产品还支持 QUIC(HTTP/3),基于 UDP 传输,对弱网与移动端体验更友好。开启前要确认证书配置正确、客户端链路支持,并保留回退路径——协商不上时必须还能退回旧协议。
基本信息
| HTTP/2 | 多路复用与头部压缩,通常需在 HTTPS 上启用 |
|---|---|
| QUIC / HTTP/3 | 基于 UDP 传输,改善弱网表现,客户端覆盖逐步扩大 |
| 前提条件 | 证书配置正确、客户端支持对应协议 |
| 协商机制 | 通过 ALPN 协商,客户端不支持则回退到旧协议 |
| 验证方式 | 用 curl 的协议选项观察实际使用的版本 |
典型使用场景
- 页面资源请求数多,开启 HTTP/2 降低连接开销
- 移动端占比高的业务,评估 QUIC 对弱网环境的改善
- 排查「协议协商不上」导致的部分客户端异常
- 压测时确认客户端实际使用的协议版本,避免测错对象
- 面向旧客户端的产品保留 HTTP/1.1 回退能力
验证协商到的协议
验证协商到的协议
# 需要 curl 编译时支持 HTTP/2
curl -sI --http2 https://example.com/ | head -3
# 需要 curl 支持 HTTP/3,且网络放行 UDP 443
curl -sI --http3 https://example.com/ 2>/dev/null | head -3
# 查看服务端提供的 ALPN 协议列表
openssl s_client -connect example.com:443 -alpn h2,http/1.1 </dev/null 2>/dev/null | grep -i alpn协议特性对照
| 协议 | 传输层 | 主要收益 |
|---|---|---|
| HTTP/1.1 | TCP | 兼容性最好,连接复用受限 |
| HTTP/2 | TCP | 多路复用、头部压缩 |
| HTTP/3 | UDP(QUIC) | 弱网与移动场景表现更好 |
| 回退 | 由 ALPN 决定 | 协商失败时退回旧协议 |
HTTP/2 及以上无法像 HTTP/1.1 那样直接读明文抓包,验证时优先看客户端协商结果与服务端日志。
部分企业与运营商网络会屏蔽 UDP,QUIC 在这些链路上不可用;上线时务必保留 HTTP/2 或 HTTP/1.1 回退路径。
开启前确认项
- 证书已就绪并覆盖全部对外域名
- 客户端确认支持对应协议版本
- 拨测与压测覆盖不同网络环境
- 保留回退路径并验证回退行为
观测能力的限制
HTTP/2 及以上无法像 HTTP/1.1 那样直接阅读明文,排查更依赖客户端协商结果、服务端日志与监控指标;升级协议之前先把可观测性补齐,否则出问题时缺少抓手。