HTTP2
HTTP2与HTTP1的区别
- 头部压缩
- HPACK
- 二进制
- 不再使用明文报文
- 效率满满
- 基础单位是帧
- 数据流
- 客户端发出的是奇数
- 服务端发出的是偶数
- 多路复用
- 解决HTTP 队头阻塞
- maxstream
- Server Push
- 一个TCP连接上有多少流
HTTP2改进项
- 头部压缩
- 很多字段占据大量字节,有必要压缩
- 多次传输的数据都是重复的
- 字段是ASCII编码,有必要改成二进制编码
- HPACK (50~90%压缩效率)
- 静态字典
- 61组
- 动态字典
- Http2maxrequests
- 避免动态表无限增大
- Http2maxrequests
- Huffman编码(压缩算法)
- 静态字典
- 二进制帧
- header+payload
- 9 =(帧长度3+帧类型1+标志位1+2^31流标志符)
- 并发传输
- Connection [N*Stream [(Request|Response)Message[N *frame]]]
- Stream 单调递增
- nginx http2maxconcuttentstreams = 128
- goaway
- Connection [N*Stream [(Request|Response)Message[N *frame]]]
- server push
- 通过pushpromise帧告诉下一个资源
- 需要预先设置