2020 年了,你的网站支持 http2 了么

2019-12-31 21:26:53 +08:00
 robolwq

HTTP2 规范( RFC7540 )在 2015 年发布,即将迈入第 5 个年头,你的网站有没有支持呢?给大家普及下 HTTP2 一些基本概念和开启方式:

https://davidlovezoe.club/wordpress/archives/663

11318 次点击
所在节点    程序员
64 条回复
jinliming2
2020-01-02 21:07:34 +08:00
@unicloud HTTP 下不支持 h2 是因为浏览器强制要求的,主流浏览器都拒绝实现 HTTP 协议下的 h2c,只实现了 HTTPS 下的 h2。
所以你用 HTTP 访问的时候就只能是 HTTP/1.1
pmispig
2020-01-03 09:07:56 +08:00
@jinliming2 之前开启过 http/2 因为安卓客户端的底层库版本低,所以一直有问题,后来我就不打算趟这种雷了,没什么好处
jinliming2
2020-01-04 00:50:31 +08:00
@pmispig 根据 h2 的协议升级方式,只有客户端主动告知服务器客户端支持 h2 的时候,服务端才会采用 h2 与客户端进行通信,否则将自动降级使用 HTTP/1.1。

也就是说,如果客户端使用的是旧版本类库,不支持 h2,那么在请求服务器的时候就不会带有任何 h2 相关信息,服务端也就知道客户端不支持 h2,理应使用 HTTP/1.1 进行响应,以兼容旧设备。
而如果客户端支持 h2,按照标准,在进行 TLS 握手的时候,客户端会主动在 TLS 扩展中自动添加 h2 关键字,告诉服务器这个客户端支持 h2,服务器在响应的时候就可以同意使用 h2 进行响应了。

所以,根据 h2 的协商原理,如果客户端不支持的话,那么对客户端是完全无感知,直接兼容使用 HTTP/1.1 的,除非是做了某些错误的配置(比如在服务端禁用了 HTTP/1.1 )。

当然,如果你遇到问题的解决方案就是逃避问题的话,那当我没说……
Jason1021
2020-03-05 18:26:35 +08:00
@unicloud http 和 https 走的端口应该不一样,https 和 http2 走的是 443 端口

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/634043

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX