12

有没有办法告诉 Chrome 或 Safari 在特定的 URL/地址/服务器上使用 HTTP/2?

我的意思是通过更改某些设置等,而不是通过在服务器套接字上实现 ALPN 或任何可能需要的东西。我想在服务器套接字上尝试 HTTP/2,而不是等到我可以进行 ALPN 协商来告诉浏览器使用 HTTP/2。


澄清:我在 Chrome 上启用了 HTTP/2(通过 chrome://flags 又名 SPDY/4)。它仍然没有通过升级探测我的(TLS 或纯文本)套接字的 HTTP/2。我想强制 Chrome 要么这样做,要么立即假设 HTTP/2。

另外,我读到 Chrome 不支持通过纯文本连接的 HTTP/2,即使 HTTP/2 标准允许它。但也许有一些方法可以解决这个问题。

4

2 回答 2

12

HTTP/2 over TLS 和 HTTP/2 over TCP 被定义为两种不同的协议,分别由h2h2c 标识

Chrome 目前仅支持 h2。

如果您的服务器仅实现 h2c,连接 Chrome 的最简单方法是在您的服务器前面使用反向代理,例如nghttpx在 HTTP/2 桥接模式

于 2015-04-02T11:20:50.127 回答
-1

据我所知,这很可能是浏览器范围的设置。在 chrome 中,您可以启用 SPDY4,请参阅chrome://flags

就 safari 而言,自版本 8 以来已添加支持。

最后,这一切都是为了了解您是否与服务器说相同的语言。如果您使用的是 http,则可以使用 Upgrade 标头进行检查。有一些插件可以与 chrome 一起使用,以指示您访问的地址是否支持 http/2。

有关 http/2 协议本身的更多信息,您应该查看https://http2.github.io/http2-spec/#starting

于 2015-04-01T20:47:13.960 回答