Alt-svc

替代服务(alternative service, Alt-svc:)头部和它相对应的 ALT-SVC HTTP/2帧并不是特别为QUIC和HTTP/3设计的。它是为了让服务器可以告诉客户端 “看,我在这个主机的这个端口用这个协议提供相同的服务” 而设计的。详见RFC 7838

如果初始连接使用的是HTTP/2(甚至HTTP/1),服务器可以响应并告诉客户端它可以再试试HTTP/3。连接可以指向相同主机或者不同但提供相同服务的主机。Alt-svc回复中有一个到期计时器,让客户端可以在指定的时间内使用建议的替代协议将后续的连接和请求直接发送给替代主机。

例子

一个HTTP服务器的响应中包含了如下的一个 Alt-Svc: 头部:

  1. Alt-Svc: h3=":50781"

这指示了同一名称的主机在UDP端口50781提供HTTP/3服务。

然后,客户端可以尝试与该端口建立QUIC连接。如果成功,后续将通过该连接继续通信,代替初始的HTTP版本。