Alt-Svc

Alt-Svc HTTP 标头允许服务器指示另一个网络位置(“备用服务”)可以在进行未来请求时被视为该源的权威来源。

这样做允许新协议版本在不影响正在进行的请求的情况下进行广告,并且还可以帮助服务器管理流量。使用备用服务对最终用户不可见;它不会更改请求的 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

特殊值clear 表示源请求使该源的所有备用服务失效。

<protocol-id>

ALPN 协议标识符。例如,h2 代表 HTTP/2,h3-25 代表 HTTP/3 协议的草案 25。

<alt-authority>

指定备用权威的带引号字符串,该字符串包含可选的主机覆盖、冒号和强制性的端口号。

ma=<max-age> 可选

备用服务被认为是新鲜的秒数。如果省略,则默认为 24 小时。备用服务条目可以缓存长达 <max-age> 秒,减去响应的年龄(来自 Age 标头)。缓存条目过期后,客户端将无法再将此备用服务用于新连接。

persist=1 可选

通常,缓存的备用服务条目在网络配置更改时会被清除。使用 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

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅

  • 备用服务(HTTP 工作组主席 Mark Nottingham 关于 Alt-Svc 的文章)