• Terry Hu
    2019-12-11
    老师,关于长肥网络下同一个连接只能有6个TCP连接的问题,我有个疑惑。在应用层,一个TCP连接的内部,通过编程仍然可以做到异步发request,异步收response,第二个HTTP请求的发送并不是要等到第一个请求收到response才能发出去,(比如Java的Future API),这样也是并发的,那从Java开发的角度来说,HTTP2有什么优势呢?

    作者回复: 没错,HTTP/1可以并发。HTTP2的优势是,TCP连接有个慢启动,它用于减少高流量下的恶性丢包,你可以参考第98课。而且新的HTTPS连接,TLS握手也很耗时,所以复用同一个TCP连接可以减少这些性能消耗。
    当然,HTTP2还有很多特性也优于HTTP1,比如权重、RST关闭STREAM等等,你可以再细看看这一部分的后面的课程

    
     1
  • 不能如期而至
    2019-10-08
    概要面板中,HTTP1.1建立多个连接,然后发送请求,HTTP2只有一个连接,然后同时发送多个请求,这里HTTP2 速度快于HTTP1.1 是因为建立连接会耗时很多吗?

    作者回复: 这是一个原因,还有以下原因:
    1、HTTP2传输的数据量更小,因为同一个连接下HPACK可以基于时间做增量压缩,基于huffman算法做解决统计冗余问题,基于静态表使用二进制数字替代字符串。
    2、基于优先级,浏览器可以指导服务器分配资源给不同的请求,使用户可体验的性能更好。
    3、同一个TCP连接只有一次慢启动。
    4、有些服务器配置了推送,性能更好。

     1
     1
  • 陆离
    2019-07-07
    http2的传输方式改为二进制传输?之前是ASCII?额,不是很明白。
    传输的时候不是都是转成二进制传输的吗?

    作者回复: 比如一个数字10000如果是用ASCII编码,需要5个字节,而如果用整型编码,只要2个字节。后续HPACK算法介绍中你可以看到,http2对于用1个字节或者1个以上字节编码整数都不同

     1
    
  • 小樱桃
    2019-07-05
    知道原因了我的 openssl 的版本是1.0.1的,nginx网站说明需要 openssl升级到 1.0.2 才支持https

    作者回复: 如果需要使用更快、更安全的TLS1.3,需要使用1.1.1这个版本,下一部分课程会介绍TLS1.3协议,建议更新为这个版本

    
    
  • 小樱桃
    2019-07-05
    听了老师的课,我立马升级成了nginx,把 nginx.conf 改成了 listen 443 ssl http2 default_server;但是看网站时候发现有的是 http2 有的资源还是 1.1 ,问下老师是我配置的方法不对吗?

    作者回复: “看网站”,是指什么?同一个浏览器?在服务器端抓包吗?现在绝大部分浏览器都支持http2,但仍然有不支持http2的浏览器或者爬虫存在

    
    
  • 一步
    2019-07-04
    HTTP2 和SPDY有什么区别呢? SPDY 发展那么多年了, 突然蹦出来了一个 HTTP2 来代替SPDY, 难道是为了跟着 HTTP/1.1 命名保持一致吗?

    作者回复: 1、spdy是google弄出来的,其他厂商不买帐,而http2不同,它是IETF规范,大家都有参与,这才能推广。
    2、http2在hpack压缩算法上不同,hpack采用的是静态huffman树,后面课程会讲到。
    3、http2是用tls中的ALPN来升级协议的,而且http2还支持h2c,这都是与SPDY不同的。

    
    
我们在线,来聊聊吧