HTTP2 规范( RFC7540 )在 2015 年发布,即将迈入第 5 个年头,你的网站有没有支持呢?给大家普及下 HTTP2 一些基本概念和开启方式:
1
yhxx 2019-12-31 21:28:23 +08:00 7
2020 年了,该上 HTTP3 了,TLS1.2 也该干掉了
|
2
unicloud 2019-12-31 21:32:09 +08:00 via iPhone 1
确实该普及下了,正好最近写了个检查网站是否开启 HTTP/2 的在线工具: https://www.dute.org/http2
|
3
Love4Taylor 2019-12-31 21:32:38 +08:00
HTTP/3 都支持了.
|
4
bclerdx 2019-12-31 22:14:02 +08:00
@unicloud 不错的在线检测工具。那么问题来了,如果检测网站的 URL 支持 HTTP/2 的话,那能说明什么呢?能代表这个网站有什么优秀的地方?
|
6
luozic 2019-12-31 22:48:03 +08:00 via iPhone
http2/http3 传输的是二进制数据,并且有复用连接的设计。http2/http1.1 都是 tcp 的,http3 基于 udp。
|
7
id7368 2019-12-31 22:50:06 +08:00 via iPhone
都上 QUIC 了
|
8
wangyzj 2019-12-31 22:56:59 +08:00
该 3 了吧
|
13
weiruanniubi 2020-01-01 09:17:28 +08:00 via Android
应该是 QUIC+TLSv1.3
|
14
zuokanyunqishi 2020-01-01 11:17:51 +08:00 via Android
h2/tls1.3
|
15
dyy1997 2020-01-01 11:38:20 +08:00
昨晚连夜给 nas 登录页面加了 HTTP/3
|
16
marcushbs 2020-01-01 11:42:02 +08:00
我的 CDN 支持就行了
|
17
slyang5 2020-01-01 12:53:54 +08:00
http3 马上出来了 http2 设计本身存在缺陷
|
18
azh7138m 2020-01-01 12:59:02 +08:00 via Android
国内 UDP 感人,我看我们项目 QUIC 错误有万五,比 HTTP/2 高不少。
|
19
pmispig 2020-01-01 13:25:13 +08:00
暂时不打算支持,很多安卓 APP 的老的基础库不支持 http2
|
20
jinliming2 2020-01-01 13:51:27 +08:00 via iPhone
@weiruanniubi QUIC 是 h3 的试验品,就类似于 SPDY 和 h2 的关系差不多,现在 h3 标准出了,QUIC 之前的实验版本就都过时了
|
21
jinliming2 2020-01-01 13:54:24 +08:00 via iPhone
@pmispig 高版本 HTTP 都是向下兼容的,就算是你部署了 HTTP/3,不支持的用户仍旧可以使用 HTTP/2 或是 HTTP/1.1 (只要你不主动禁用低版本就行)。
不能因为部分用户使用旧库不支持新技术,你就拉着大批使用新设备的用户也体验不到新技术啊…… |
22
sobigfish 2020-01-01 13:57:47 +08:00
@jinliming2 他这是为了少数"用户"在“惩罚”大多数用户
|
23
wnanbei 2020-01-01 14:56:17 +08:00
H2 的设计能有哪些新的应用方式呢?除了能加快加载速度以外
|
25
kile 2020-01-01 15:28:58 +08:00
我测试半天只测出一个淘宝....
|
26
puilu 2020-01-01 15:31:49 +08:00
证书花钱。。。个人续费证书很贵啊
|
29
Vhc001 2020-01-01 16:10:30 +08:00
楼主,HTTP/2 的官方正式缩写是 h2,不是 HTTP2
|
30
steley 2020-01-01 16:15:13 +08:00
昨天一顿折腾,终于也用上了 HTTP/2
|
31
Vhc001 2020-01-01 16:16:06 +08:00 1
看了下面的回帖,大多都被楼主带歪了
http/2、http/3 ✔ h2、h3 ✔ http2、http3 ✘ |
32
ayase252 2020-01-01 16:18:40 +08:00
cdn 默认 HTTP/2,找机会上 HTTP/3
|
33
wanguorui123 2020-01-01 17:01:22 +08:00 via iPhone
反向代理啥协议都可以支持
|
34
richangfan 2020-01-01 17:09:31 +08:00 via Android
做的两个项目都上了
|
36
bigtan 2020-01-01 18:03:16 +08:00 via Android
https://estan.cn caddy 做前端,PHP7.1 后端 WordPress HTTP2 早都支持了
|
37
404error 2020-01-01 18:16:24 +08:00 via iPad
我是套 cloudflare 实现的 http/3,nginx 1.17.6 只弄了 http/2 + tls v1.3 + 0rtt,萌新不知道 http/3 怎么搞
|
38
noobma 2020-01-01 18:27:31 +08:00
说到 http/2,小弟有个问题,大佬们都是在 nginx 那里启用 http/2 就行了吗?后端服务需要启用 http/2 吗?如果后端服务也启用的话带来的性能提升大吗?
|
39
jinliming2 2020-01-01 18:29:42 +08:00 via iPhone 1
@puilu 免费证书 let's encrypt 已经普及多久了,几乎所有浏览器都信任……
|
40
Love4Taylor 2020-01-01 18:38:51 +08:00 1
|
41
Vhc001 2020-01-01 18:40:44 +08:00 1
@noobma #38
server { listen 80; listen [::]:80; listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; |
42
renyiqiu 2020-01-01 18:46:27 +08:00
有人说下 http/3 比 http/2 相比有啥优势么
|
44
lostpg 2020-01-01 18:55:01 +08:00 via Android 1
@noobma nginx 的建议是后端使用 http 1.1 在网络条件良好的情况下 http 1.1 是最好的选择,后端用 h2 似乎还会有反效果。
|
45
tt67wq 2020-01-01 19:16:24 +08:00
这就要看 gayhub 啥时候支持了
|
46
EXChen 2020-01-01 19:31:36 +08:00
@unicloud 你的工具感觉有点问题,输入我的网址出错了,最后在这个站点( https://myssl.com )检测的。
|
47
EXChen 2020-01-01 19:35:31 +08:00
我的站点使用了阿里云的全站加速,直接支持到 HTTP2 了。
|
49
404error 2020-01-01 21:38:57 +08:00
@Love4Taylor 谢谢大佬>.<
我看了你的博客后,才知道你原来写过相关的教程啊! |
50
yafoo 2020-01-01 21:45:50 +08:00 via Android
没有 http2,网站都不好意思上线
|
51
sleepm 2020-01-01 22:31:26 +08:00 via Android
h5 情何以堪
|
52
kirbykfc 2020-01-01 22:31:50 +08:00 1
@noobma nginx 也只能启用 nginx 端的 h2 了,后端不能启用,因为 nginx 不支持 h2 反代且以后也不会支持。如果想在后端启用 h2,可以使用 haproxy。
|
53
BFDZ 2020-01-01 23:22:37 +08:00
http/2 早就支持了,还启用了 TLS1.3
|
54
uqf0663 2020-01-02 00:40:46 +08:00 via Android
微信小程序 ios 不支持 http2,安卓正常,脑壳疼
|
55
conn4575 2020-01-02 00:48:44 +08:00 via Android
有一个问题,h2 不是支持服务端推送吗?如果光 nginx 开启 h2,服务端不开的话应该也用不了吧
|
57
xenme 2020-01-02 09:28:30 +08:00 via iPhone
还不支持 https
|
58
unicloud 2020-01-02 11:02:12 +08:00
@kile 根据我的测试,目前国内支持 HTTP/2 的大型网站有:
- qq.com - taobao.com - tmall.com - jd.com - sina.com.cn - sohu.com - toutiao.com - douyin.com 让人意外的是,baidu.com 和 weibo.com 竟然都不支持 HTTP/2。 另外,同一网站,使用 http 协议和 https 协议,测试结果有可能是不一样的,比如: https://www.163.com 是支持 HTTP/2 的,但是 http://www.163.com 就不支持。 |
59
ceet 2020-01-02 14:49:19 +08:00
支持 QUIC 一年多了
|
60
129ykx733D016U2n 2020-01-02 16:32:33 +08:00
博客已支持 HTTP/2 https://imoegirl.com
|
61
jinliming2 2020-01-02 21:07:34 +08:00 via iPhone
@unicloud HTTP 下不支持 h2 是因为浏览器强制要求的,主流浏览器都拒绝实现 HTTP 协议下的 h2c,只实现了 HTTPS 下的 h2。
所以你用 HTTP 访问的时候就只能是 HTTP/1.1 |
62
pmispig 2020-01-03 09:07:56 +08:00
@jinliming2 之前开启过 http/2 因为安卓客户端的底层库版本低,所以一直有问题,后来我就不打算趟这种雷了,没什么好处
|
63
jinliming2 2020-01-04 00:50:31 +08:00 via iPhone
@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 )。 当然,如果你遇到问题的解决方案就是逃避问题的话,那当我没说…… |