V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
weiruanniubi
V2EX  ›  问与答

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

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

    现在竟然还有人说 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 绑定的
    emeab
        5
    emeab  
       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   ·   我们的愿景   ·   实用小工具   ·   3135 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:29 · PVG 22:29 · LAX 07:29 · JFK 10:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.