浏览器如何知道站点是否支持 HTTP/3?
How does a browser know if a site supports HTTP/3?
我有一个和一样的问题。我想知道浏览器是怎么知道网站支持http3的。
我正在使用 Safari 并打开了 http3 支持。然后我去https://cloudflare-quic.com
,协议是h3-29
。我想我的 safari 使用 h3 协议探索这个网站。它是怎么知道的?
The spec defines 'Discovering an HTTP/3 Endpoint':
An HTTP origin can advertise the availability of an equivalent HTTP/3 endpoint via the Alt-Svc HTTP response header field or the HTTP/2 ALTSVC frame (ALTSVC), using the "h3" ALPN token.
在这种情况下,Alt-svc
存在:
$ curl -i https://cloudflare-quic.com
HTTP/2 200
...
alt-svc: h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400
因此,收到此响应的浏览器可以尝试在同一服务器上的 UDP 端口 443 上使用这三个草稿版本进行下一次连接。
我有一个和一样的问题。我想知道浏览器是怎么知道网站支持http3的。
我正在使用 Safari 并打开了 http3 支持。然后我去https://cloudflare-quic.com
,协议是h3-29
。我想我的 safari 使用 h3 协议探索这个网站。它是怎么知道的?
The spec defines 'Discovering an HTTP/3 Endpoint':
An HTTP origin can advertise the availability of an equivalent HTTP/3 endpoint via the Alt-Svc HTTP response header field or the HTTP/2 ALTSVC frame (ALTSVC), using the "h3" ALPN token.
在这种情况下,Alt-svc
存在:
$ curl -i https://cloudflare-quic.com
HTTP/2 200
...
alt-svc: h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400
因此,收到此响应的浏览器可以尝试在同一服务器上的 UDP 端口 443 上使用这三个草稿版本进行下一次连接。