HTTP 2.0
背景
- HTTP 1.1 协议繁琐,没有软件实现了协议中提及的全部细节
- 未充分利用 TCP 性能,HTTP客户端和浏览器就要找寻其它方法来解决页面加载时间过多的问题。
- 延迟问题
HTTP 1.1 解决方案 - HTTP Pipelining 技术,但也会造成HTTP头阻塞
概念
流:stream
存在于 TCP 连接中的一个虚拟连接通道
消息:message
它是由数据帧构成。
帧:data frame
HTTP2 中构成消息的最小单位。消息有一个或多个帧构成。
特性
- 多路复用
每个 HTTP 请求/应答在各自的流中完成数据交换
流都是相互独立。因此如果一个请求/应答阻塞或者速度很慢,也不会影响其它流中的请求/应答处理。
在一个 TCP 连接中就可以传输多个流数据而无需建立多个连接。 - 流量控制
确保在同一连接上的流不会相互干扰 - 流优先级
为流分配带宽和计算资源的优先次序 - HEAD 头数据压缩
- 采用二进制编码,而不是原来的文本格式数据。
- 服务端推送