HTTP2二进制协议
介绍
与Http1.x(文本协议)不同,Http2是一个二进制协议,所有的消息被http2拆分封装成更小的消息单元帧,并进行二进制编码。其中http1.x的首部信息被封装成HEADER帧和CONTINUATION帧,请求体被封装到DATA帧,如下图所示:
为什么使用二进制协议?
- 性能。二进制协议的解析效率超高,几乎没有解析代价;
- 带宽。二进制协议没有冗余字段,占用带宽少;
- 压缩及Https技术弱化了文本协议的价值;
二进制格式
附录:二进制协议 VS 文本协议
二进制协议
二进制协议一般消息头固定和消息体变长 ,每个字段固定了含义 ,其特点如下:
- 可读性差,难于调试(缺点);
- 扩展性不好 ,如果要扩展字段,旧版协议就不兼容了(缺点);
- 解析效率超高,几乎没有解析代价(优点);
- 没有冗余字段,体积小(优点);
文本协议
- 可读性好,便于调试;
- 扩展性也好,方便兼容旧协议;
- 解析效率一般,需要进行字符串比对;
- 存在冗余字段,体积大;
参考: