来源:
https://www.cnblogs.com/purpleraintear/p/6026085.html
《趣谈网络协议》
1 场景引入
假设有一个页面要发送三个独立的请求:一个获取css,一个获取js,一个获取图片.jpg
如果使用HTIP1.1,那么就是串行发送(如图的上侧,不考虑pipeline)
但如果使用HTTP 2.0,那么在一个连接里,客户端和服务端都可以同时发送多个请求或回应,而且不用按照顺序一对一对应(如图的下侧)
其实就是以将多个请求分到不同的流中,然后将请求内容拆成帧,进行二进制传输.这些帧可以打散顺序发送,然后根据每个帧首部的流标识符重新组装,并且可以根据优先级,决定优先处理哪个流的数据.
HTTP 2.0 成功解决了HTTP 1.1 的队首阻塞问题:严格串行的返回响应,它不允许多个数据交错到达,只能等待一个响应完全返回后,下一个响应才能发送,无论下一个响应是否早于前一个响应完成处理;
同时,也不需要通过HTTP 1.x 的pipeline机制用多条TCP 连接来实现并行请求与晌应,减少了TCP 连接数对服务器性能的影响;
同时将页面的多个数据css、js、jpg