http2协议之多路复用

http2多路复用解决的问题,由于浏览器的限制访问网站资源的时候浏览器在同一个域名下最多开启6个线程,这样如果前几个线程执行比较慢的任务或者需要等待服务器端响应,后面的资源就被阻塞住了 .以往的做法是把静态资源如图片 css等文件放在不同的域名下以提高页面加载速度.

另外一点就是明显减少了tcp连接的3次握手4次挥手,和ssl(tsl)协议中反复的client hello servier hello与证书传输的浪费.

插入待补充

这张图片就可以描述多路复用的情况,同一域名下所有访问都是从同一个tcp连接中走,ssl的数据包是并发的,原来http1.1的机制是client发出请求后必须等到服务器响应后才能发出第二个请求.现在所有请求都是同时发送的不需要等待.另外在http2包中还有服务器响应优先级的设置位.

http2采用二进制分帧,把header与data分成二进制帧    

 

下面分析一下为什么HTTP2协议可以多路双向并发了.

通过wireshark抓包可以看到

1.发送的是headers包

2.发送的headers data包

length字段分配在前三个字节标示整个流的长度

type字段标示流的类型 分别为 HEADERS ,DATA ,MAGIC,SETTINGS 如果比较小的话headers与data可以放在一个包里.

magic 第一次传输之前client端都会发送magic让服务器端确认使用http2协议

3.Stream Identifier  4个字节 标志同步发送中的包属于哪一个请求 通过这个服务器判断是哪个请求的数据.

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值