Alt-Svc 头

HTTP Alt-Svc 响应头允许服务器指示另一个网络位置(“替代服务”)在未来的请求中可以被视为该源的权威。

这样做可以宣传新的协议版本,而不会影响正在进行的请求,也可以帮助服务器管理流量。使用替代服务对终端用户是不可见的;它不改变 URL 或请求的源,也不引入额外的往返开销。

头类型 响应头
禁止请求头

语法

http
Alt-Svc: clear
Alt-Svc: <protocol-id>=<alt-authority>; ma=<max-age>
Alt-Svc: <protocol-id>=<alt-authority>; ma=<max-age>; persist=1
clear

该源的所有替代服务都将失效。

<protocol-id>

应用层协议协商 (ALPN) 协议标识符。示例包括 HTTP/2 的 h2 和 HTTP/3 协议草案 25 的 h3-25

<alt-authority>

一个带引号的字符串,指定替代权威,由可选的主机覆盖、冒号和强制的端口号组成。

ma=<max-age> 可选

替代服务被认为是新鲜的秒数。如果省略,默认为 24 小时。替代服务条目可以缓存最多 <max-age> 秒,减去响应的年龄(来自 Age 头)。一旦缓存条目过期,客户端就不能再将此替代服务用于新连接。

persist=1 可选

条目不会因网络配置更改而被删除。缓存的替代服务条目通常在此类更改时被清除。

可以在单个 Alt-Svc 头中指定多个条目,使用逗号作为分隔符。在这种情况下,靠前的条目被认为是更优先的。

示例

http
Alt-Svc: h2=":443"; ma=2592000;
Alt-Svc: h2=":443"; ma=2592000; persist=1
Alt-Svc: h2="alt.example.com:443", h2=":443"
Alt-Svc: h3-25=":443"; ma=3600, h2=":443"; ma=3600

规范

规范
HTTP 备用服务
# alt-svc

浏览器兼容性

另见

  • HTTP 工作组主席 Mark Nottingham (2016) 的替代服务