解决方案
HTTP/2 是 HTTP 协议的第二个主要版本,最初命名为 HTTP2.0,主要基于 SPDY 协议;
原理简述
SPDY(SPeeDY)是谷歌开发的基于 TCP 协议的应用层协议。目标是优化 HTTP 协议的性能,通过压缩、多路复用和优先级等技术,缩短网页的加载时间并提高安全性。SPDY 协议的核心思想是尽量减少 TCP 连接数。SPDY 并不是一种用于替代 HTTP 的协议,而是对 HTTP 协议的增强;
性能增强的核心:二进制传输
在 HTTP/1 中,数据是通过文本的方式传输。数据基于文本的方式传输存在缺陷,这是由于文本的表现形式有多样性,需要考虑各种场景才能达到健壮性;
在 HTTP/2 中,但是二进制则不同,只有 0 和 1 的组合,因此选择二进制传输,实现方便且健壮;
特性特征
HTTP2.0 的特点是:在不改动 HTTP 语义、方法、状态码、URI 及首部字段的情况下,大幅度提高 web 性能;
HTTP/2 其他增强:
1)头部压缩:采用 HPACK 算法压缩头部,减少头部大小提升性能;
2)多路复用:每条请求消息可以继续细分为帧交错发送,然后在另一端重新组装为帧。在 HTTP/1.1 中当客户端在一个 TCP 连接同时发起多个请求时,服务器必须按顺序依次响应每个请求,后续的请求可能被阻塞;
3)服务器推送:服务器除了可以响应客户端请求,还可以向客户端推送额外的资源;
4)优先级:HTTP/2 设计了复杂的优先级排定规则,浏览器可以一次请求多个资源,指定一些优先级信息来帮助服务器确定应该如何处理这些资源,避免资源处理的相互竞争;