Http2 浏览器如何知道站点是否支持HTTP/2?
如果我输入,chrome浏览器将自动发送HTTP/2请求。这是如何做到的?chrome浏览器只会向网站发送HTTP/1.1请求。由于该网站启用了HTTP/2,它将向浏览器发送一条消息,表明它支持HTTP/2。如果发现浏览器能够识别HTTP/2,则服务器会将其与服务器之间的通信协议升级为HTTP/2。 因此,通常是服务器将请求转换为HTTP/2连接。浏览器仅符合服务器的升级策略。 只有在服务器升级通信协议后,chrome浏览器才会显示您与服务器或网站建立了HTTP/2连接 字符串“h2”标识HTTP/2使用传输层>安全性(TLS)[TLS12]的协议。 此标识符用于TLS应用层协议协商(ALPN)>扩展[TLS-ALPN]字段中,以及在识别TLS上的HTTP/2的任何位置 如果服务器支持http2.0,浏览器将发现服务器在TLS应用层协议协商中支持http2.0。Http2 浏览器如何知道站点是否支持HTTP/2?,http2,Http2,如果我输入,chrome浏览器将自动发送HTTP/2请求。这是如何做到的?chrome浏览器只会向网站发送HTTP/1.1请求。由于该网站启用了HTTP/2,它将向浏览器发送一条消息,表明它支持HTTP/2。如果发现浏览器能够识别HTTP/2,则服务器会将其与服务器之间的通信协议升级为HTTP/2。 因此,通常是服务器将请求转换为HTTP/2连接。浏览器仅符合服务器的升级策略。 只有在服务器升级通信协议后,chrome浏览器才会显示您与服务器或网站建立了HTTP/2连接 字符串“h2”标识HTT
! 以stackoverflow为例,当浏览器向
stackoverflow.com
发送请求时,它必须执行以下步骤:
ClientHello
发送到服务器,该服务器承载多个内容
- 支持的密码套件。你喜欢哪一套
- 支持的TLS版本
- 随机数
- 支持的应用程序协议。e、 g.HTTP/2,HTTP 1.1/Spdy/。
- 选择密码套件
- 选择TLS版本
- 随机产生的数字
- 以及,在中选择的应用程序协议,例如
HTTP/2
HTTP2请求/响应发生在步骤4中。在此之前,browser已经知道服务器是否支持通过TLS握手的HTTP/2。在RFC中有一个很好的解释: