gpt4 book ai didi

https - 为什么网络浏览器不支持 h2c(没有 TLS 的 HTTP/2)?

转载 作者:行者123 更新时间:2023-12-03 11:37:29 25 4
gpt4 key购买 nike

我真的在网上搜索,我找不到网络浏览器不支持h2c(没有TLS的http/2)的原因。任何想法,赞赏。

一点澄清
带有 https 的 http/2 使用 ALPN(这称为 h2)。
http/2 和 http 不需要 ALPN(这称为 h2c),但几乎没有 Web 浏览器支持它。为什么会这样?

我觉得对于许多资源来说,虽然真实性总是好的,但不需要保密(尽管有一些私有(private)实现,但 http 正文的数字签名并未得到广泛支持)。鉴于不需要保密,那么拥有 h2c 确实是一件好事。

最佳答案

技术上

HTTP/2 比 HTTPS 更好、更容易处理的技术原因有以下几个:

  • 使用 ALPN 在 TLS 中进行 HTTP/2 协商要容易得多,并且不会丢失像 Upgrade: 这样的往返行程。在普通的 HTTP 中。并且它不会受到使用纯文本 HTTP/2 获得的 POST 升级问题的影响。
  • N% 的网络不支持未经请求的 Upgrade: h2c请求中的 header ,而是以 400 错误响应。
  • 在 Y% 的情况下,通过 TCP 端口 80 执行 HTTP/1.1 以外的操作会中断 Y% 的情况,因为世界上到处都是“帮助”并为此类连接替换/添加流内内容的中间盒。如果那不是 HTTP/1.1,那么事情就会中断(这也是为什么 brotli 例如也需要 HTTPS)。

  • 意识形态上

    一些较大的 Web 浏览器开发团队共享并部分参与了 Web 上更多 HTTPS 的插入。如果功能仅通过 HTTPS 实现,这将被视为一种奖励,因为它们会成为网站和服务迁移到 HTTPS 的另一个动机。因此,一些团队从未非常努力地(如果有的话)使 HTTP/2 在没有 TLS 的情况下工作。

    几乎

    至少有一家浏览器供应商很早就表达了它的意图,即通过纯文本 HTTP (h2c) 为用户实现和提供 HTTP/2。由于上述技术障碍,他们最终从未这样做过。

    关于https - 为什么网络浏览器不支持 h2c(没有 TLS 的 HTTP/2)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46788904/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com