每天做个总结吧,坚持就是胜利!
/**
@date 2021-07-08
@description HTTP/2.0的多路复用
*/
壹(序)
HTTP/2.0是相比于HTTP/1.x更快,更简单,更稳定,具体的差别如下:
- HTTP/2.0是
二进制协议,HTTP/1.x是文本协议 - HTTP/2.0会进行
首部压缩 - HTTP/2.0引入
多路复用 - HTTP/2.0引入
推送功能
今天简单的总结一下多路复用
贰(持久连接与管线化)
持久连接:
在HTTP最初的版本中,每次进行HTTP通信时都会连接/断开TCP,在HTTP/1.1以及部分HTTP/1.0中实现了持久连接,也就是只需要进行一次TCP连接,在之后的通信中,只要没有哪一端明确的表示断开连接,就会一直基于这个TCP连接进行HTTP通信
管线化:持久连接的实现让管线化的实现成为了可能,在之前的HTTP中,只能等待上一次请求完成再去进行下一次请求,但是管线化可以实现并发请求
不足:
持久连接和管线化从减少TCP重复连接的开销,让请求与响应的过程更快
但是也存在不足,就是虽然可以并行发送请求,但是在处理请求时依然是需要等待上一个请求处理完成,再处理下一个请求,如果第一个请求耗费的时间太长,就会造成队头阻塞;
其次,浏览器每次并行发送的请求是有限制的,基于浏览器的实现,大概水6-8个
叁(多路复用)
HTTP/2.0实现多路复用,解决以上问题,具体如下:
HTTP/2.0是二进制协议,所以传输都是二进制帧,而给一个TCP连接设置多条流,就是多路复用,多个请求就可以通过这些流进行通信,而且两端可以通过帧的标识识别属于哪个请求,这样就可以极大的提高传输性能。