定义

HTTP/2 (Hypertext Transfer Protocol 2) 是一种应用层协议,是 HTTP 协议的第三个主要版本。它在 HTTP/1.1 的基础上进行了改进,旨在提高 Web 应用的性能和效率。

核心特点

  • 多路复用 (Multiplexing): 允许在同一个 TCP 连接上同时发送多个 HTTP 请求和响应,解决了 HTTP/1.1 的队头阻塞问题,提高了并发性能。
  • 头部压缩 (Header Compression): 使用 HPACK 算法对 HTTP 头部进行压缩,减少了头部的大小,提高了传输效率。
  • 服务器推送 (Server Push): 允许服务器主动地向客户端推送资源,而无需客户端显式地请求,减少了客户端的请求次数,提高了性能。
  • 优先级 (Prioritization): 允许客户端指定 HTTP 请求的优先级,服务器可以根据优先级来调度请求,保证重要资源的优先传输。
  • 二进制协议: HTTP/2 使用二进制协议,而不是像 HTTP/1.1 那样使用文本协议,提高了解析效率。

应用

  • Web 浏览器: Web 浏览器使用 HTTP/2 协议与 Web 服务器进行通信,获取网页内容。
  • Web 服务器: Web 服务器使用 HTTP/2 协议与 Web 浏览器进行通信,提供网页内容。
  • API: 许多 API 使用 HTTP/2 协议进行数据传输。

优缺点

  • 优点: - 提高了性能和效率。 - 解决了队头阻塞问题。 - 减少了头部的大小。 - 支持服务器推送。 - 支持优先级。
  • 缺点: - 部署和配置相对复杂。 - 需要 TLS 加密,增加了 CPU 负担。

相关概念

  • 1.1: HTTP 协议的第二个主要版本。
  • TCP: 一种传输层协议,用于在客户端和服务器之间建立可靠的连接。
  • TLS: 一种加密协议,用于保护客户端和服务器之间的通信安全。
  • HPACK: 一种头部压缩算法,用于压缩 HTTP 头部。

案例

  • Web 浏览器访问网页: Web 浏览器使用 HTTP/2 协议与 Web 服务器进行通信,获取网页内容。
  • API 获取数据: API 使用 HTTP/2 协议进行数据传输。

问答卡片

  • Q1:HTTP/2 和 HTTP/1.1 有什么区别?
  • A:HTTP/2 在 HTTP/1.1 的基础上进行了改进,引入了多路复用、头部压缩、服务器推送和优先级等新的特性,提高了 Web 应用的性能和效率。
  • Q2:HTTP/2 为什么需要 TLS 加密?
  • A:HTTP/2 规范建议使用 TLS 加密,以提高安全性。虽然 HTTP/2 也可以在非加密的 TCP 连接上运行,但大多数浏览器只支持在 TLS 加密的连接上使用 HTTP/2。

参考资料