作者回复: http2里每条消息都是http语法,包括头部、URL、包体,而websocket则没有要求,它其实更像TCP。因此场景不同。
作者回复: 这是一个原因,还有以下原因: 1、HTTP2传输的数据量更小,因为同一个连接下HPACK可以基于时间做增量压缩,基于huffman算法做解决统计冗余问题,基于静态表使用二进制数字替代字符串。 2、基于优先级,浏览器可以指导服务器分配资源给不同的请求,使用户可体验的性能更好。 3、同一个TCP连接只有一次慢启动。 4、有些服务器配置了推送,性能更好。
作者回复: 没错,HTTP/1可以并发。HTTP2的优势是,TCP连接有个慢启动,它用于减少高流量下的恶性丢包,你可以参考第98课。而且新的HTTPS连接,TLS握手也很耗时,所以复用同一个TCP连接可以减少这些性能消耗。 当然,HTTP2还有很多特性也优于HTTP1,比如权重、RST关闭STREAM等等,你可以再细看看这一部分的后面的课程
作者回复: 不是所有网站都care性能优化的,他们可能更在乎业务流量。HTTP2部署非常成熟,虽然队头阻塞也是存在的,但一般相对HTTP1都有很大的性能提升。
作者回复: 比如一个数字10000如果是用ASCII编码,需要5个字节,而如果用整型编码,只要2个字节。后续HPACK算法介绍中你可以看到,http2对于用1个字节或者1个以上字节编码整数都不同
作者回复: 如果需要使用更快、更安全的TLS1.3,需要使用1.1.1这个版本,下一部分课程会介绍TLS1.3协议,建议更新为这个版本
作者回复: “看网站”,是指什么?同一个浏览器?在服务器端抓包吗?现在绝大部分浏览器都支持http2,但仍然有不支持http2的浏览器或者爬虫存在
作者回复: 1、spdy是google弄出来的,其他厂商不买帐,而http2不同,它是IETF规范,大家都有参与,这才能推广。 2、http2在hpack压缩算法上不同,hpack采用的是静态huffman树,后面课程会讲到。 3、http2是用tls中的ALPN来升级协议的,而且http2还支持h2c,这都是与SPDY不同的。