1. HTTP/2 是一种网络协议,是 HTTP/1.1 的升级版,由 IETF 在 2015 年发布
    2. HTTP/2 旨在提高 Web 性能,减少延迟,增加安全性,使 Web 应用更加快速、高效和可靠
    3. HTTP/2 是 HTTP 协议的第二个主要版本,用于在 Web 服务器和客户端之间传输数据
    4. HTTP/2 主要基于 Google 的 SPDY 协议,旨在减少网页的加载延迟以提升性能
    5. HTTP/2 是 HTTP 协议自 1999 年 HTTP 1.1 的改进版 RFC 发布后的首个更新,主要基于 SPDY 协议
    6. HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),简称为h2(基于TLS/1.2或以上版本的加密连接)或h2c(非加密连接)
    7. 多数主流浏览器已经在 2015 年底支持了 HTTP/2
    8. HTTP/2 使用二进制格式传输数据,而不是 HTTP/1.x 的文本格式,这使得解析、传输和描述消息更加高效
    9. HTTP/2 在一个单一的连接上,可以并发多个请求或响应,而不需要建立多个连接。这消除了 HTTP/1.x 中因为多个连接造成的冗余、竞态条件和其他问题
    10. HTTP/2 使用 HPACK 压缩格式减少了请求和响应的首部大小,从而减少了无用的带宽消耗
    11. HTTP/2 使得客户端可以设置请求的优先级,这允许更为关键的请求更快地完成
    12. 在 HTTP/2 中,流量控制则是双向的,既适用于客户端也适用于服务器
    13. HTTP/2 允许服务器在客户端需要之前主动“推送”资源
      1. 例如,如果一个客户端请求一个 HTML 文档,服务器可以在客户端请求前预先推送 CSS 和 JavaScript 文件
    14. HTTP/2 可以与 HTTP/1.1 共存,服务器可以同时支持 HTTP/1.1 和 HTTP/2。如果客户端不支持 HTTP/2,服务器可以回退到 HTTP/1.1
    15. HTTP/2 默认使用 TLS(Transport Layer Security)加密传输数据,提高了安全性
    16. 虽然技术上 HTTP/2 也可以不使用 TLS,但在现实世界的实践中,几乎所有的浏览器都要求使用 TLS 才支持 HTTP/2
    17. HTTP/2 vs. HTTP/1.x
      1. 减少延迟:多路复用和首部压缩减少了网页加载所需的往返时间
      2. 节省服务器资源:由于其二进制帧和更好的数据流控制,HTTP/2 更少地消耗服务器资源
      3. 提高网络利用率:优先级和多路复用提高了带宽的利用效率,从而使网络更为快速和高效

    HTTP/2 对数据传输采用多路复用,让多个请求合并在同一 TCP 连接内,如下图所示:

    image.png

    HTTP/2 减少网络延迟,提高浏览器的页面加载速度:

    image.png

    HTTP/2 使用二进制格式来传输数据,而不是像 HTTP/1.1 一样使用文本格式。这提高了效率并降低了数据传输的延迟。

    image.png

    HTTP/2 使用头部压缩来减少传输数据的大小。这有助于减少网络带宽的使用量,并提高页面加载速度。

    image.png

    HTTP/2 允许服务器在不被请求的情况下主动向客户端发送数据。这有助于减少请求延迟,并提高页面加载速度。

    image.png