什么是 HTTP/2
HTTP/2 就是超文本传输协议的第二个主要版本,是自1999年 HTTP 1.1 之后发布的首个更新,主要基于 SPDY 协议(是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验)。
和 HTTP1.1 比起来有什么优势
1. HTTP/2采用二进制格式而非文本格式
2. HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行
3. 使用报头压缩,HTTP/2降低了开销
4. HTTP/2让服务器可以将响应主动“推送”到客户端缓存中
其中的 多路复用对前端优化性能有很大的帮助
什么是多路复用
在 HTTP 1.1 中,发起一个请求是这样的:
浏览器请求 url -> 解析域名 -> 建立 HTTP 连接 -> 服务器处理文件 -> 返回数据 -> 浏览器解析、渲染文件
这个流程最大的问题是,每次请求都需要建立一次 HTTP 连接,也就是我们常说的3次握手4次挥手,这个过程在一次请求过程中占用了相当长的时间,而且逻辑上是非必需的,因为不间断的请求数据,第一次建立连接是正常的,以后就占用这个通道,下载其他文件,这样效率多高啊!
为了解决这个问题, HTTP 1.1 中提供了 Keep-Alive,允许我们建立一次 HTTP 连接,来返回多次请求数据。
但是这里有两个问题:
HTTP 1.1 基于串行文件传输数据,因此这些请求必须是