首页/网络/协议速查/Alt-Svc 替代服务通告
HTTP 头与缓存70 条

Alt-Svc 替代服务通告

告知客户端同一资源还有其他接入点(如 HTTP/3 的 h3、备用端口/主机),是 HTTP/3 渐进部署的关键机制。

协议速查网络更新于 2026-10-13

Alt-Svc 是什么

Alt-Svc 让服务端告诉客户端「同一个资源还有别的接入点」,例如换用 HTTP/3(协议标识 h3)走 UDP 443,或换到另一个主机与端口。它的价值在于协议可以渐进上线:域名与证书都不用变,客户端先照常走 HTTP/2 拿到响应,再从响应头里读到替代端点,后续请求才切到新协议。这样旧客户端无感,新客户端逐步受益。

基本信息

名称Alt-Svc
作用通告同一资源的替代传输端点
规范RFC 7838
常见值h3=":443"; ma=86400
生效范围按源(协议加主机加端口)缓存
清除方式响应 Alt-Svc: clear

参数与取值

元素含义注意点
h3HTTP/3 的协议标识走 UDP,需单独放行
h2基于 TLS 的 HTTP/2可与 h3 同时通告
:443替代端点使用的端口用冒号加端口或主机加端口表示
ma该通告的缓存有效期,单位秒写太短会让客户端频繁回退
clear清除该源的替代服务记录下线新协议时必须下发

查看与服务端示例

查看与服务端示例
curl -sI https://www.cloudflare.com/ | grep -i alt-svc
# alt-svc: h3=":443"; ma=86400
curl -sI https://www.example.com/ | grep -i alt-svc   # 自己的站点是否已通告
# Nginx 侧通常由支持 HTTP/3 的模块或前置网关自动添加该头

典型使用场景

  • HTTP/3 渐进上线:先让一部分客户端通过替代端点试用新协议
  • 灰度与回滚:出问题时下发 clear 让客户端退回原有协议
  • CDN 与多接入点:把客户端引导到更近或更优的端点
  • 排障「HTTP/3 连不上」:确认通告内容与 UDP 放行情况是否匹配
  • 带宽与移动网络优化:在弱网环境下评估切换新协议的实际收益
客户端会把替代服务记录缓存起来,缓存期内即便服务端已经停止通告,客户端仍可能继续尝试新端点。排查相关问题时除了看当前响应头,还要考虑本地缓存;服务端确实要下线新协议时,应主动下发 clear 而不是仅仅去掉这行配置。

易错点

  • 防火墙只放行 TCP 443 而没放行 UDP 443:新协议尝试失败后回退,表现为偶发首包变慢
  • 上线时通告了替代端点但证书或路由未就绪,客户端切过去直接失败
  • 下线新协议时只删除通告而不下发 clear,客户端在缓存期内持续走已不可用的端点
  • 把 ma 设得过小:客户端频繁回退与重试,反而增加握手开销
  • 在反向代理层看到通告就以为源站支持,实际是网关追加的,排障找错方向

数据来源与参考

  • RFC 7838 Alt-Svc
  • RFC 9114(HTTP/3)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌