作者:手机用户2502861905 | 来源:互联网 | 2023-01-12 18:03
我真的在网上搜索,我找不到网页浏览器不支持h2c(没有TLS的http/2)的原因.任何想法,赞赏.
用https稍微澄清http/2使用ALPN(这称为h2).带http的http/2不需要ALPN(这叫做h2c),但几乎没有网页浏览器支持它.为什么会这样?
我觉得对于许多资源,虽然真实性总是好的,但是不需要保密(虽然有一些私有实现,但http主体的数字签名并未得到广泛支持).鉴于不需要保密,那么h2c确实是一件好事.
1> Daniel Stenb..:
技术上
有几个技术原因可以解释为什么HTTP/2通过HTTPS更好更容易处理:
使用ALPN在TLS中进行HTTP/2协商要容易得多,并且不会像Upgrade:
普通HTTP那样丢失往返.并且它不会受到使用纯文本HTTP/2获得的POST升级问题的影响.
N%的网络不支持请求中未经请求的Upgrade: h2c
标头,而是响应400个错误.
通过TCP端口80执行除HTTP/1.1之外的其他操作会在Y%的情况下中断,因为世界上充满了中间框,这些中间框可以"帮助"并替换/添加内部用于此类连接的内容.如果那不是HTTP/1.1,事情就会中断(这也是brotli例如也需要HTTPS的原因).
在意识形态
在网络上推动了更多的HTTPS,这些HTTPS由一些较大的Web浏览器开发团队共享和部分工作.如果功能仅以HTTPS实现,那么它就会被视为奖励,因为它们是网站和服务转移到HTTPS的另一个动机.因此,有些团队从未尝试过非常努力(如果有的话)在没有TLS的情况下使HTTP/2工作.
几乎
至少有一家浏览器供应商早期表示有意为通过纯文本HTTP(h2c)完成的用户实施和提供HTTP/2.由于上面提到的技术障碍,他们最终从未这样做过.
好的,但是对于本地网络呢?我有一台路由器,并且想在http://192.168.1.1上打开它的管理面板,因此该路由器除了我的浏览器将拒绝的自签名之外,没有任何有效的TLS证书。