如何玩转 HTTP 3?( 三 )

更具体的配置和说明,可以参考官方文档https://github.com/cloudflare/quiche/tree/master/extras/nginx 。
QUIC 的实现原理是首先客户端发起 tcp 连接判断服务端响应头是否有 alt-svc 头,如有则尝试使用 udp 443 去进行连接 。因此,我们看到上面的配置中 add_header alt-svc 'h3-23=":443"; ma=86400';,客户端请求类似如下:

如何玩转 HTTP 3?

文章插图
 
Alt-Svc 全称为“Alternative-Service”,直译为“备选服务” 。该头部列举了当前站点备选的访问方式列表 。一般用于在提供 “QUIC” 等新兴协议支持的同时,实现向下兼容 。
h3-23=":443" 这部分内容定义了替代服务使用的协议、主机名和端口,其中主机名和端口可选,多个替代服务之间用英文逗号分隔 。
ma 是 max-age 的缩写,单位为秒 。显然,它表示浏览器在指定时间内,可以直接使用替代服务地址 。
客户端访问1.浏览器配置
以Chrome 为例进行配置,开启 quic 的支持,chrome://flags 安装如图所示 Experimental QUIC protocol 设置为 enable 重启浏览器:
如何玩转 HTTP 3?

文章插图
 
2.如何判断QUIC是否已经生效?
第一种方法是安装插件,在Chrome商店安装 HTTP/2 and SPDY indicator,右上角有个闪电图标会显示 google 已经开启 quic/43版本的支持 。如图所示:
如何玩转 HTTP 3?

文章插图
 
打开 chrome://net-internals/#quic 也可以看到当前使用 quic 协议的站点连接情况 。第二种方式是通过wireshark抓包也可以看到QUIC的数据包 。




推荐阅读