2020 年了,你的网站支持 http2 了么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
robolwq
V2EX    程序员

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

  •  1
     
  •   robolwq 2019-12-31 21:26:53 +08:00 11867 次点击
    这是一个创建于 2112 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    64 条回复    2020-03-05 18:26:35 +08:00
    yhxx
        1
    yhxx  
       2019-12-31 21:28:23 +08:00   7
    2020 年了,该上 HTTP3 了,TLS1.2 也该干掉了
    unicloud
        2
    unicloud  
       2019-12-31 21:32:09 +08:00 via iPhone   1
    确实该普及下了,正好最近写了个检查网站是否开启 HTTP/2 的在线工具: https://www.dute.org/http2
    love4taylor
        3
    love4taylor  
    PRO
       2019-12-31 21:32:38 +08:00
    HTTP/3 都支持了.
    bclerdx
        4
    bclerdx  
       2019-12-31 22:14:02 +08:00
    @unicloud 不错的在线检测工具。那么问题来了,如果检测网站的 URL 支持 HTTP/2 的话,那能说明什么呢?能代表这个网站有什么优秀的地方?
    robolwq
        5
    robolwq  
    OP
       2019-12-31 22:22:14 +08:00
    @bclerdx 理论上,如果用现代浏览器访问支持 http2 的网站,加载会比 http1.x 更快些
    luozic
        6
    luozic  
       2019-12-31 22:48:03 +08:00 via iPhone
    http2/http3 传输的是二进制数据,并且有复用连接的设计。http2/http1.1 都是 tcp 的,http3 基于 udp。
    id7368
        7
    id7368  
    PRO
       2019-12-31 22:50:06 +08:00 via iPhone
    都上 QUIC 了
    wangyzj
        8
    wangyzj  
       2019-12-31 22:56:59 +08:00
    该 3 了吧
    bclerdx
        9
    bclerdx  
       2019-12-31 23:42:28 +08:00
    @luozic 网络爆料,HTTP/1.1 也有使用多路复用技术哦。
    bclerdx
        10
    bclerdx  
       2019-12-31 23:43:13 +08:00
    @wangyzj H2 都还没完美普及呢,H3 还要往后排了。
    luozic
        11
    luozic  
       2019-12-31 23:59:49 +08:00 via iPhone
    @bclerdx http/1.1 和 http 的 stream 多路复用是一会事?
    zeocax
        12
    zeocax  
       2020-01-01 00:15:51 +08:00 via Android
    @bclerdx “网络爆料”可还行
    weiruanniubi
        13
    weiruanniubi  
       2020-01-01 09:17:28 +08:00 via Android
    应该是 QUIC+TLSv1.3
    zuokanyunqishi
        14
    zuokanyunqishi  
       2020-01-01 11:17:51 +08:00 via Android
    h2/tls1.3
    dyy1997
        15
    dyy1997  
       2020-01-01 11:38:20 +08:00
    昨晚连夜给 nas 登录页面加了 HTTP/3
    marcushbs
        16
    marcushbs  
       2020-01-01 11:42:02 +08:00
    我的 CDN 支持就行了
    slyang5
        17
    slyang5  
       2020-01-01 12:53:54 +08:00
    http3 马上出来了 http2 设计本身存在缺陷
    azh7138m
        18
    azh7138m  
       2020-01-01 12:59:02 +08:00 via Android
    国内 UDP 感人,我看我们项目 QUIC 错误有万五,比 HTTP/2 高不少。
    pmispig
        19
    pmispig  
       2020-01-01 13:25:13 +08:00
    暂时不打算支持,很多安卓 APP 的老的基础库不支持 http2
    jinliming2
        20
    jinliming2  
       2020-01-01 13:51:27 +08:00 via iPhone
    @weiruanniubi QUIC 是 h3 的试验品,就类似于 SPDY 和 h2 的关系差不多,现在 h3 标准出了,QUIC 之前的实验版本就都过时了
    jinliming2
        21
    jinliming2  
       2020-01-01 13:54:24 +08:00 via iPhone
    @pmispig 高版本 HTTP 都是向下兼容的,就算是你部署了 HTTP/3,不支持的用户仍旧可以使用 HTTP/2 或是 HTTP/1.1 (只要你不主动禁用低版本就行)。
    不能因为部分用户使用旧库不支持新技术,你就拉着大批使用新设备的用户也体验不到新技术啊……
    run2
        22
    run2  
       2020-01-01 13:57:47 +08:00
    @jinliming2 他这是为了少数"用户"在“惩罚”大多数用户
    wnanbei
        23
    wnanbei  
       2020-01-01 14:56:17 +08:00
    H2 的设计能有哪些新的应用方式呢?除了能加快加载速度以外
    kile
        24
    kile  
       2020-01-01 15:28:37 +08:00
    @unicloud 国内有哪些大型网站开启 h2 了?
    kile
        25
    kile  
       2020-01-01 15:28:58 +08:00
    我测试半天只测出一个淘宝....
    puilu
        26
    puilu  
       2020-01-01 15:31:49 +08:00
    证书花钱。。。个人续费证书很贵啊
    docx
        27
    docx  
       2020-01-01 15:48:29 +08:00 via iPhone
    @puilu 现在免费证书一大把,当然如果你非得认为付费证书才是证书那么当我没说
    puilu
        28
    puilu  
       2020-01-01 16:10:10 +08:00
    @dzyou2007 第二年又到处找免费的,没啥意思
    Vhc001
        29
    Vhc001  
       2020-01-01 16:10:30 +08:00
    楼主,HTTP/2 的官方正式缩写是 h2,不是 HTTP2
    steley
        30
    steley  
       2020-01-01 16:15:13 +08:00
    昨天一顿折腾,终于也用上了 HTTP/2
    Vhc001
        31
    Vhc001  
       2020-01-01 16:16:06 +08:00   1
    看了下面的回帖,大多都被楼主带歪了
    http/2、http/3
    h2、h3
    http2、http3
    ayase252
        32
    ayase252  
       2020-01-01 16:18:40 +08:00
    cdn 默认 HTTP/2,找机会上 HTTP/3
    wanguorui123
        33
    wanguorui123  
       2020-01-01 17:01:22 +08:00 via iPhone
    反向代理啥协议都可以支持
    richangfan
        34
    richangfan  
       2020-01-01 17:09:31 +08:00 via Android
    做的两个项目都上了
    turan12
        35
    turan12  
       2020-01-01 17:11:05 +08:00 via iPhone
    @kile #24 QQ 邮箱
    bigtan
        36
    bigtan  
       2020-01-01 18:03:16 +08:00 via Android
    https://estan.cn caddy 做前端,PHP7.1 后端 WordPress HTTP2 早都支持了
    404error
        37
    404error  
       2020-01-01 18:16:24 +08:00 via iPad
    我是套 cloudflare 实现的 http/3,nginx 1.17.6 只弄了 http/2 + tls v1.3 + 0tt,萌新不知道 http/3 怎么搞
    noobma
        38
    noobma  
       2020-01-01 18:27:31 +08:00
    说到 http/2,小弟有个问题,大佬们都是在 nginx 那里启用 http/2 就行了吗?后端服务需要启用 http/2 吗?如果后端服务也启用的话带来的性能提升大吗?
    jinliming2
        39
    jinliming2  
       2020-01-01 18:29:42 +08:00 via iPhone   1
    @puilu 免费证书 let's encrypt 已经普及多久了,几乎所有浏览器都信任……
    Vhc001
        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;
    renyiqiu
        42
    renyiqiu  
       2020-01-01 18:46:27 +08:00
    有人说下 http/3 比 http/2 相比有啥优势么
    msg7086
        43
    msg7086  
       2020-01-01 18:46:31 +08:00   2
    @puilu 不知道你活在哪年,不过 LE 的免费证书也已经是五年前开始的事了。
    lostpg
        44
    lostpg  
       2020-01-01 18:55:01 +08:00 via Android   1
    @noobma nginx 的建议是后端使用 http 1.1 在网络条件良好的情况下 http 1.1 是最好的选择,后端用 h2 似乎还会有反效果。
    tt67wq
        45
    tt67wq  
       2020-01-01 19:16:24 +08:00
    这就要看 gayhub 啥时候支持了
    EXChen
        46
    EXChen  
       2020-01-01 19:31:36 +08:00
    @unicloud 你的工具感觉有点问题,输入我的网址出错了,最后在这个站点( https://myssl.com )检测的。
    EXChen
        47
    EXChen  
       2020-01-01 19:35:31 +08:00
    我的站点使用了阿里云的全站加速,直接支持到 HTTP2 了。
    luozic
        48
    luozic  
       2020-01-01 21:34:12 +08:00 via iPhone
    @lostpg nginx 完整的支持 http stream 的版本得收费套件。
    404error
        49
    404error  
       2020-01-01 21:38:57 +08:00
    @Love4Taylor 谢谢大佬>.<
    我看了你的博客后,才知道你原来写过相关的教程啊!
    yafoo
        50
    yafoo  
       2020-01-01 21:45:50 +08:00 via Android
    没有 http2,网站都不好意思上线
    sleepm
        51
    sleepm  
       2020-01-01 22:31:26 +08:00 via Android
    h5 情何以堪
    kirbykfc
        52
    kirbykfc  
       2020-01-01 22:31:50 +08:00   1
    @noobma nginx 也只能启用 nginx 端的 h2 了,后端不能启用,因为 nginx 不支持 h2 反代且以后也不会支持。如果想在后端启用 h2,可以使用 haproxy。
    BFDZ
        53
    BFDZ  
       2020-01-01 23:22:37 +08:00
    http/2 早就支持了,还启用了 TLS1.3
    uqf0663
        54
    uqf0663  
       2020-01-02 00:40:46 +08:00 via Android
    微信小程序 ios 不支持 http2,安卓正常,脑壳疼
    conn4575
        55
    conn4575  
       2020-01-02 00:48:44 +08:00 via Android
    有一个问题,h2 不是支持服务端推送吗?如果光 nginx 开启 h2,服务端不开的话应该也用不了吧
    hifumi
        56
    hifumi  
       2020-01-02 08:42:35 +08:00   1
    @puilu Let's Encrypt 是永久免费的啊, 而且有官方提供的自动续期脚本
    xenme
        57
    xenme  
       2020-01-02 09:28:30 +08:00 via iPhone
    还不支持 https
    unicloud
        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.comweibo.com 竟然都不支持 HTTP/2。

    另外,同一网站,使用 http 协议和 https 协议,测试结果有可能是不一样的,比如: https://www.163.com 是支持 HTTP/2 的,但是 http://www.163.com 就不支持。
    ceet
        59
    ceet  
       2020-01-02 14:49:19 +08:00
    支持 QUIC 一年多了
    129ykx733D016U2n
        60
    129ykx733D016U2n  
       2020-01-02 16:32:33 +08:00
    博客已支持 HTTP/2 https://imoegirl.com
    jinliming2
        61
    jinliming2  
       2020-01-02 21:07:34 +08:00 via iPhone
    @unicloud HTTP 下不支持 h2 是因为浏览器强制要求的,主流浏览器都拒绝实现 HTTP 协议下的 h2c,只实现了 HTTPS 下的 h2。
    所以你用 HTTP 访问的时候就只能是 HTTP/1.1
    pmispig
        62
    pmispig  
       2020-01-03 09:07:56 +08:00
    @jinliming2 之前开启过 http/2 因为安卓客户端的底层库版本低,所以一直有问题,后来我就不打算趟这种雷了,没什么好处
    jinliming2
        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 )。

    当然,如果你遇到问题的解决方案就是逃避问题的话,那当我没说……
    Jason1021
        64
    Jason1021  
       2020-03-05 18:26:35 +08:00
    @unicloud http 和 https 走的端口应该不一样,https 和 http2 走的是 443 端口
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5249 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 05:44 PVG 13:44 LAX 22:44 JFK 01:44
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86