HPACK 算法
算法的主要压缩思路是通过静态字典表和动态字典表来共享已知的HTTP头部字段,使用索引号来代替HTTP头部字段名和值,从而减少了传输数据的大小;同时还使用了Huffman编码来压缩字符串,进一步减小了传输数据的体积;
静态表
静态表是预定义的,其中包含了61个常见的HTTP头部字段和值;
这些字段和值是写死在协议中的,发送方可以通过发送静态表中对应的索引号来代替完整的HTTP头部字段和值,从而实现压缩;
动态表
动态表是动态生成的;其中存储了请求或响应中出现的自定义HTTP头部字段和值;
动态表的初始状态为空,首次请求之后动态表已经建立相关记录;
发送方可以将动态表中的部分内容发送给接收方;即通过发送动态表中对应的索引号来代替完整的HTTP头部字段和值;从而进一步减少传输数据的大小;
实例