热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《为什么Web浏览器不支持h2c(没有TLS的HTTP/2)?》经验,为你挑选了1个好方法。

我真的在网上搜索,我找不到网页浏览器不支持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证书。
推荐阅读
author-avatar
手机用户2502861905
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有