最佳答案
部分原因是为了让更多的东西使用 HTTPS,并鼓励用户和服务器使用 HTTPS。 Firefox 和 Chrome 开发人员都表示这总体上是好的。为了用户和用户的安全和隐私。
这也是关于部署在 Internet 上的损坏的“中间盒”,它们假定端口 80 上的 TCP 流量(可能看起来像 HTTP/1.1)意味着 HTTP/1.1,然后它们将进行干扰以“改进”或过滤以某种方式交通。在这样的网络上执行 HTTP/2 明文最终的成功率要低得多。坚持加密使那些中间盒永远没有机会扰乱流量。
此外,有一定比例的已部署 HTTP/1.1 服务器将返回对升级的错误响应:使用未知协议(protocol)(例如“h2c”,即明文形式的 HTTP/2),这也会使情况复杂化在广泛使用的浏览器中的实现。通过 HTTPS 进行协商更不容易出错,因为“不支持它”仅仅意味着切换到安全的旧 HTTP/1.1 方法。
关于google-chrome - 为什么 HTTP/2 的浏览器实现需要 TLS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34076231/