HTTP1.1/2.0区别

多路复用


并发请求
  2.0采用多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比1.1大了好几个数量级

多路复用概念
  即连接共享,即每一个request都是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面

HTTP2.0多路复用优势?
  HTTP 性能优化的关键并不在于高带宽,而是低延迟。TCP 连接会随着时间进行自我「调谐」,起初会限制连接的最大速度,如果数据成功传输,会随着时间的推移提高传输的速度。这种调谐则被称为 TCP 慢启动。由于这种原因,让原本就具有突发性和短时性的 HTTP 连接变的十分低效。

  HTTP2.0 通过让所有数据流共用同一个连接,可以更有效地使用 TCP 连接,让高带宽也能真正的服务于 HTTP 的性能提升


HTTP2.0的多路复用和HTTP1.1中的长连接复用有什么区别?
  1.1 Pipeling解决方式为,若干个请求排队串行化单线程处理,后面的请求等待前面请求的返回才能获得执行机会,一旦有某请求超时等,后续请求只能被阻塞,毫无办法,也就是人们常说的线头阻塞;
  2.0多个请求可同时在一个连接上并行执行。某个请求任务耗时严重,不会影响到其它连接的正常执行


Header压缩
  1.1的header带有大量信息,而且每次都要重复发送,2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,差量更新HTTP头部,只发送改变的,既避免了重复header的传输,又减小了需要传输的大小。
  1.1不支持header数据的压缩,2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。

服务器推送
  客户端对支持HTTP2.0的服务器请求某个资源时,服务器会顺便把一些客户端需要的别的资源一起推送过来,这样只需要一次HTTP通信就可以得到全部资源,提高了性能。
  这种方式非常合适加载静态资源。


解析格式
  HTTP1.0和1.1的解析是基于文本,解析存在天然缺陷
  HTTP2.0的协议解析采用二进制格式,只认0和1的组合,实现方便且健壮。

posted @ 2021-08-25 14:17  默行于世  阅读(48)  评论(0编辑  收藏  举报