在 H2 和 TLS1.3 的加持下, HTTPS 的速度是不是完胜 HTTP 了? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
weiruanniubi
V2EX    问与答

在 H2 和 TLS1.3 的加持下, HTTPS 的速度是不是完胜 HTTP 了?

  •  
  •   weiruanniubi 2019-08-16 08:41:47 +08:00 5365 次点击
    这是一个创建于 2248 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在竟然还有人说 HTTPS 比 HTTP 慢……

    第 1 条附言    2019-08-16 12:44:59 +08:00
    我想的比较简单,H2 和 tls1.3 有很多提升性能的新特性,这些都是 HTTP 所无法使用的,这种情况下,感觉 HTTPS 不应该再会比 HTTP 慢了。
    27 条回复    2019-08-17 10:54:37 +08:00
    heijiaotuan
        1
    heijiaotuan  
       2019-08-16 08:44:54 +08:00 via Android
    tls 会变慢
    zy445566
        2
    zy445566  
       2019-08-16 09:00:33 +08:00
    H2 提速比较大的点就两个一个是多路复用,一个二进制格式传输.但也对 HTTP 的 DEBUG 要求更高了,毕竟原来 HTTP 都是字符串格式传输的。剩下的都是拖慢速度的。
    chenset
        3
    chenset  
       2019-08-16 09:03:03 +08:00
    http 有 keepalive 的, h2 速度上好像就一个链接同时传多个文件(multiplex?)

    所以我觉得速度上还是没法和 http 比
    lhx2008
        4
    lhx2008  
       2019-08-16 09:06:10 +08:00 via Android
    完胜?楼主可能对 TLS 有什么误解。
    而且 HTTP2 并不一定要和 TLS 绑定的
    2kCS5c0b0ITXE5k2
        5
    2kCS5c0b0ITXE5k2  
       2019-08-16 09:12:41 +08:00
    加密怎么可能比不加密快 tls1.3 最厉害也不过是 0-RRT
    wnpllrzodiac
        6
    wnpllrzodiac  
       2019-08-16 09:20:17 +08:00 via Android
    @chenset 我的 vps 用 2 就全堵一条路上了
    houzhimeng
        7
    houzhimeng  
       2019-08-16 09:22:47 +08:00
    我们公司架构为了解决 dns 污染,把 http 请求全改成 https 了,并发连接瞬间上去了
    lostberryzz
        8
    lostberryzz  
       2019-08-16 09:26:34 +08:00
    楼主你来分析一下 http 到底比 https 慢在哪
    3CH0
        9
    3CH0  
       2019-08-16 09:32:34 +08:00
    http2.akamai.com/demo http2 快在多路复用吧
    naeco
        10
    naeco  
       2019-08-16 09:33:41 +08:00
    加密怎么可能比不加密还快,还有 http2 又不是和 tls 绑定了...
    wszgrcy
        11
    wszgrcy  
       2019-08-16 09:41:11 +08:00 via Android
    @naeco http2 下不是强制 https 吗?
    jsq2627
        12
    jsq2627  
       2019-08-16 09:55:21 +08:00
    @lhx2008 #4 标准现在不要求绑定,但是主流浏览器实现还是要求 h2 绑定 tls
    cissoid
        13
    cissoid  
       2019-08-16 09:56:17 +08:00   1
    看你指的是什么速度了。

    HTTP 在 TCP 握手之后就可以直接发送数据,TLS 还有额外的握手过程。建立连接的速度肯定是 HTTP 快。

    HTTP 明文传输,TLS 全程加密,但我觉得加密的影响主要还是 CPU 负载上,可能加密算法的 padding 等额外数据对传输速度的影响更大点。

    HTTP/2 与其说是提高速度,不如说是提高 HTTP 的效率吧。HPACK 压缩 header,多路复用提高连接使用率,server push 减少客户端请求次数。但是遇到 head of line blocking 一样玩蛋。

    以上都是个人脑补。
    alphatoad
        14
    alphatoad  
       2019-08-16 10:02:03 +08:00 via iPhone
    赶紧上 HTTP3 吧,一次 UDP 解决所有问题
    至于加密,有 AES-NI 问题不大
    nikandaoleshenme
        15
    nikandaoleshenme  
       2019-08-16 10:21:48 +08:00
    lz 的服务器都怕是在国内吧,响应时间都是 1000ms 以内吧,没碰到那种 2 3s 的延迟

    阿里云上的香港区域 ESC,使用 https,DNS 也是阿里的,业务有美国那边的访问,
    测试了接口,平均 DNS 解析 900-1100ms,TCP Handshake 20-40ms,SSL Handshake 50-60ms 后续的数据传输 300-500ms 一次最简单的接口请求 1500-2000ms ,后面的请求如果是长连接的的话少了 DNS 和 SSL 会快很多,300-500ms

    若 http 直接使用 IP 的话,https 比它多两个步骤 DNS 解析和 SSL 校验,
    你说 https 比 http 快在哪,拿出说明来,别开口就来
    jsq2627
        16
    jsq2627  
       2019-08-16 12:00:14 +08:00
    我觉得这个问题要分场景看待:
    1. 对于前端页面、前端资源,H2 多路复用、头部压缩等能极大提高页面加载速度,相比之下 TLS 增加的那点开销可以忽略了。而且前端资源都是 CDN 部署,服务器 CPU 开销很容易分散。
    2. 对于后端 API,H2 的新特性没有太大收益,对比之下 TLS 的开销就不能忽略。API gateway 开 TLS 和不开 TLS 吞吐量会有明显差别,要搞分布式架构还比较麻烦。
    liuminghao233
        17
    liuminghao233  
       2019-08-16 12:29:53 +08:00 via iPhone
    你拿 quic 来说快点还能理解

    大家都是 tcp 的话
    加密的比没加密的快?
    xenme
        18
    xenme  
       2019-08-16 12:37:10 +08:00 via iPhone
    要是请求多,header 巨大的话,h2 multiplex 加上 header compression 可以节省大量的冗余流量和加快页面加载速度

    但都是有前提条件的,你要说 YouTube 整个站点从 h1 切到 h2 那么确实整体是加速和节省流量的,但是某一个页面就不一定了。
    wysnylc
        19
    wysnylc  
       2019-08-16 15:22:50 +08:00
    tls 是加密方式,只会变慢不会变快

    现在竟然还有人说 HTTPS 比 HTTP 慢……

    你这句话也太暴露自己了哈哈哈
    zhujinliang
        20
    zhujinliang  
       2019-08-16 15:54:35 +08:00 via iPhone
    H2 能比现在的 H5 快?
    sherlockwhitebb
        21
    sherlockwhitebb  
       2019-08-16 16:32:49 +08:00
    H5 也太秀了。
    flynaj
        22
    flynaj  
       2019-08-16 16:36:20 +08:00 via Android
    看网页,大多数情况确实 https 要快,实测
    jamesliu96
        23
    jamesliu96  
       2019-08-16 17:08:42 +08:00 via Android
    @zhujinliang 秀得头秃
    lcdtyph
        24
    lcdtyph  
       2019-08-16 17:35:15 +08:00 via iPhone
    h2 的 server push 居然没人提…

    假定 lz 说的速度是指一个网址从按下回车到渲染完毕的延时,两种情况都需要 dns 参与
    在 h2+tls 的情况下,首次链接的 tls 握手带来的延时是不可忽略的,这一步就是比无 tls 情况的 http1.1 慢。而后面浏览器加载这个页面的其他资源的时候情况就不一样了,

    首先就是 server push,一般会把一些 js css 跟随第一个页面一起推给客户端,这里 http1 一个一个去发 request 给服务器;

    然后就是多路复用,同个域名下的若干个链接可以公用一个 tcp+tls session,这也省下了一部分延时;

    还有就是 h2 的头压缩,在网页需要 http 头携带很多信息的情况下头压缩带来的好处也是很明显的。

    因此,对于一个复杂的站点来说,h2+tls 确实有可能做到比普通 http1 更快。但是对于简单页面,那毫无疑问是普通 http1 快。
    fairytale
        25
    fairytale  
       2019-08-16 23:24:09 +08:00 via iPhone
    因为运营商没劫持,所以快了
    aawei
        26
    aawei  
       2019-08-16 23:51:32 +08:00 via iPhone
    我只想知道老铁们。h2 有啥好的抓包改包工具吗?
    Cu635
        27
    Cu635  
       2019-08-17 10:54:37 +08:00
    @nikandaoleshenme
    https 比 http 快就快在了现在墙内的网络要对 http 包进行检测,技术之外的因素人为耽误的时间 https 是没有的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     983 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 23:01 PVG 07:01 LAX 16:01 JFK 19:01
    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