http报文结构
起始行
头部
空行
实体
队头阻塞问题
HTTP队头阻塞
是什么
- http开启长连接时
- 公用一个tcp连接
- 同一时刻只能处理一个请求
- 前面的如果慢就会阻塞后面的
http2如何解决
TCP队头阻塞
- 在数据包层面,
- 单位是数据包
- 前一个报文没有收到便不会将后面收到的报文上传给 HTTP
http2改进
头部压缩 HPACK 算法
- 把请求头的内容做个约定
- 以后只传索引
- 整数和字符串进行哈夫曼编码
- 原理
- 就是先将所有出现的字符建立一张索引表
- 然后让出现次数多的字符对应的索引尽可能短
- 传输的时候使用这样的索引
- 原理
多路复用
- 以前是明文传输文本
- 现在是传输二进制帧--流
- 不存在先后顺序
- 同一个请求的帧是有顺序的
- 可以在同一个tcp连接下
- 还可以双向传输
- 不存在先后顺序