HTTP/1.1发表于1999年,该协议持续被使用到了至今
HTTP/2标准于2015年5月以RFC7540正式发表。由于HTTP2对1.1协议保持有高度的兼容,并且主要以字节传输,相比于1.1有更好的传输效率和更强大的传输能力,所以他快速流行起来
HTTP2的RFC主要由7540和补充的7541,因为少量数据的请求如GET请求头占比100%,头部流量的优化变成了极为重要的性能提升点,所以很大的一部分把重点放在头部(7541)的优化。HPACK: HTTP2的头部压缩
图:前缀中编码的整数值(以N=5为例),动态表长度更新即N=5否则,前缀的所有位均设置为1,并且使用一个或多个八位字节列表对值进行编码,该值减去2^N-1。每个八位字节的最高有效位用作续表标记:其值设置为1,列表中的最后一个八位字节除外。八位字节的其余位用于编码减小后的值。
图:前缀后编码的整数值(以N=5为例)从八位字节列表解码整数值首先从列表中反转八位字节的顺序。然后,对于每个八位字节,删除其最高有效位。将八位字节的剩余位连接起来,并增加2N-1以获得整数值。
在HPACK中跟长度相关的编解码都用如上方式字符串的表示
图:字符串文字表示字符串文字表示包含以下字段:
图: 头信息索引,Index为长度编码,遵循前缀1的长度编码增量索引的文字头部字段
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |