HTTP/2是对HTTP/1的重大改进,它引入了许多新特性以改善性能、效率和安全性。以下是HTTP/2相对于HTTP/1的一些关键改进:
- 二进制协议(Binary Protocol):HTTP/2是一个二进制协议,而HTTP/1是文本协议。二进制协议更易于解析、更高效、更低错误率。
- 头部压缩(Header Compression):HTTP/1的头部信息是未压缩的,而且每个请求/响应都需要发送完整的头部信息。HTTP/2引入了HPACK压缩格式,它可以有效地压缩头部信息,并且只需要在首次请求时发送完整头部,之后的请求可以只发送差异部分。
- 多路复用(Multiplexing):在HTTP/1中,每个请求/响应都需要一个单独的TCP连接,这导致了所谓的“队头阻塞”问题,即一次只能处理一个请求。而HTTP/2通过在一个TCP连接上同时处理多个请求/响应来解决这个问题,大大提高了效率。
- 服务器推送(Server Push):HTTP/2允许服务器在客户端需要之前就主动发送数据。例如,当服务器收到一个请求HTML页面的请求后,它知道客户端接下来可能会请求这个页面中引用的CSS和JavaScript文件,因此它可以立即将这些文件推送给客户端,而无需等待客户端的请求。
- 请求优先级(Request Prioritization):由于HTTP/2支持在一个连接上处理多个并行请求,因此它允许客户端为每个请求指定一个优先级。服务器可以使用这个信息来决定优先处理哪些请求,从而更有效地利用资源。
参考:https://blog.csdn.net/m0_57236802/article/details/131542615