HTTP2.0 在谷歌的开发者工具里面简称为h2。首先 h2 来源于 SPDY/2 但是,HTTP/2 跟 SPDY 仍有不同的地方,主要是以下两点:
- HTTP/2 支持明文 HTTP 传输,而 SPDY 强制使用 HTTPS
- HTTP/2 消息头的压缩算法采用 HPACK,而非 SPDY 采用的 DEFLATE
- 二进制传输。HTTP/2 采用二进制格式传输数据,而非 HTTP/1.x 的文本格式。二进制格式在协议的解析和优化扩展上带来更多的优势和可能。
- 头部压缩。HTTP/2 对消息头采用 HPACK 进行压缩传输,能够节省消息头占用的网络的流量。而 HTTP/1.x 每次请求,都会携带大量冗余头信息,浪费了很多带宽资源。头压缩能够很好的解决该问题。
- 多路复用。直白的说就是所有的请求都是通过一个 TCP 连接并发完成。HTTP/1.x 虽然通过 pipeline 也能并发请求,但是服务端对多个并发请求之间的响应会阻塞,所以 pipeline(管线化) 至今也没有被普及应用,而 HTTP/2 做到了真正的并发请求。同时,流还支持优先级和流量控制。
- Server Push。服务端能够更快的把资源推送给客户端。例如服务端可以主动把 JS 和 CSS 文件推送给客户端,而不需要客户端解析 HTML 再发送这些请求。当客户端需要的时候,它已经在客户端了。
HTTP2 的推送参考 这里
参考http://io.upyun.com/2015/05/13/http2/
QUIC 和 SPDY 一样又是谷歌开发的一个基于udp 的新协议。QQ空间已经将其用户实践,其拥有的具体优点包括:
- 减少了 TCP 三次握手及 TLS 握手时间。握手包就可以传输数据。
- 改进的拥塞控制。例如 谷歌家 的 BBR
- 避免队头阻塞的多路复用。数据包可以不安顺序到达
- 连接迁移。
- 前向冗余纠错