http2.0

多路复用:

  http1.1中怎么同时加载大量的静态资源呢? 也就是怎么同时发送多个请求,来提高加载效率呢?http1.1提供了pipeline技术,但是默认不使用,而是采用建立多个tcp连接的方式,来发送http请求。在同一个域名下,建立tcp的请求是有限制的,chrome浏览器是不超过6个。所以,并发请求还有很大的提升空间!!

  http2.0可以同时在一个tcp上发送多个http请求。怎么做到的呢?为什么http1.1不这样做呢?

    http2.0在应用层和传输层之间添加了一个二进制分帧层。(相当于将http的包又给拆分了???)

   (加密和设置传输格式通常是在会话层进行的!!)

如何实现的多路复用?? 就很神奇?? 就很不理解!!! 怎么做到的啊??
  由于http1.1 的报文结构,使得必须在一个http请求和响应结束后,才能进行下一个http请求的发送。否则,当响应发来的时候,不知道对应的是哪一个请求!!

    (那在http的请求中加入一个属性怎么样呢??响应头中也加入一个属性,相当于标识!! 不是可以解决的吗???)

       http1.1在应用层是以文本类型传输,http2.0将http1.1的文本进行拆分成更小的帧,并采用二进制格式编码。????

    也就是http2.0引入了新的通信方式,帧!

  帧的 结构!!!

 

    原来的一个http1.1的报文,就变为了一个 Headers 类型的帧和一系列 Data 类型的帧。  由于帧中都含有一个标识符,所以可以同时发送多个帧,在另一端根据帧的标识符来进行重组。

 

 

首部压缩:

 

服务端推送:

  

  

参考文档:

  https://blog.csdn.net/zhuyiquan/article/details/69257126?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.compare

posted @ 2020-07-28 08:39  你眼里的星辰  阅读(204)  评论(0)    收藏  举报