引用:https://www.cnblogs.com/confach/p/10141273.html
https://zhuanlan.zhihu.com/p/26559480
Http2使用二进制比1更节约资源
2的请求头部动态表 直接减少请求头资源
一次请求 多个返回 相比1的头部阻塞策略(在浏览器中同一域名会限制6到8个tcp连接以控制资源) 2的多路复用(一次请求返回所有的资源如css、js、html)更加高效 这个方式的基础支撑是基于:
HTTP/2 中,同域名下所有通信都在单个连接上完成,该连接可以承载任意数量的双向数据流。每个数据流都以消息的形式发送,而消息又由一个或多个帧组成。多个帧之间可以乱序发送,根据帧首部的流标识可以重新组装。
简单说,HTTP头压缩需要在HTTP/2 Client和服务端之间:
- 维护一份相同的静态表(Static Table),包含常见的头部名称,以及特别常见的头部名称与值的组合;
- 维护一份相同的动态表(Dynamic Table),可以动态地添加内容;
- 基于静态哈夫曼码表的哈夫曼编码(Huffman Coding);
在HTTP头里,有些key:value是固定,例如:
:method: GET :scheme: http
在编码时,它们直接用一个index编号代替,例如:method:GET是2,这些在一个静态表定义。静态表的定义如下,总共61个Header Name