4. 那在详细说一下 http 2.0 的特点

发布于:2025-07-11 ⋅ 阅读:(17) ⋅ 点赞:(0)

总结

  1. 二进制协议:文本通信改为二进制帧通信,数据可以划分为更小的帧,便于高效解析和传输。
  2. 多路复用:废除 pipeline 管道,避免了“队头阻塞”问题。允许同一个 TCP 连接同时发送多个请求和协议,提高网络资源利用率和页面加载速度。
  3. 头部信息压缩
  4. 服务端主动推送
  5. 数据流

详细说一下 HTTP/2 的特点

HTTP/2 是 HTTP 协议的第二个主要版本,基于 Google 的 SPDY 协议发展而来,旨在解决 HTTP/1.1 中存在的性能瓶颈。HTTP/2 在协议层面进行了多项优化,显著提升了网页加载速度和网络资源利用率。

1. 二进制分帧协议(Binary Protocol)

  • 描述:HTTP/2 将原本 HTTP/1.x 中的文本格式通信改为**二进制帧(Frame)**通信。
  • 作用
    • 数据被划分为更小的帧(frame),便于高效解析和传输。
    • 每个帧都有明确的类型和流标识符,支持多路复用。
  • 优势
    • 更易于解析,减少解析错误。
    • 提高了协议的可扩展性和性能。

2. 多路复用(Multiplexing)

  • 描述:HTTP/2 允许在同一个 TCP 连接上并发发送多个请求和响应。
  • 与 pipeline 的区别
    • HTTP/1.1 的 pipeline 仍存在“队头阻塞”问题(Head-of-line blocking)。
    • HTTP/2 完全避免了该问题,多个请求可以独立处理、响应。
  • 优势
    • 减少连接数。
    • 显著提升页面加载速度,尤其是资源较多的页面。

3. 首部压缩(Header Compression)

  • 描述:HTTP/2 使用 HPACK 算法对请求和响应头进行压缩。
  • 作用
    • 减少重复头部信息带来的冗余流量。
    • 支持上下文感知的压缩机制。
  • 优势
    • 减少带宽占用。
    • 加快数据传输速度。

4. 服务器推送(Server Push)

  • 描述:服务器可以在客户端未主动请求时,提前将资源推送到客户端缓存中。
  • 应用场景
    • 页面中引用的 CSS、JS 文件。
    • 图片等静态资源。
  • 优势
    • 减少往返次数(RTT)。
    • 提前加载关键资源,加快页面渲染。

5. 数据流(Streams)

  • 描述:HTTP/2 引入“流”的概念,每个请求/响应对应一个独立的数据流。
  • 特性
    • 每个流有唯一 ID。
    • 支持优先级设置,浏览器可指定哪些资源优先加载。
  • 优势
    • 更细粒度地控制资源加载顺序。
    • 提升用户体验。

6. 基于 TLS(通常为 HTTPS)

  • 描述:虽然不是强制要求,但主流实现中 HTTP/2 通常运行在 TLS(加密通道)之上。
  • 优势
    • 提供安全性保障。
    • 被主流浏览器广泛支持。

总结对比表

特性 HTTP/1.1 HTTP/2
通信格式 文本 二进制帧
并发请求 队头阻塞 多路复用,无队头阻塞
首部压缩 使用 HPACK 压缩
服务器推送 不支持 支持
数据流 支持流和优先级
连接数量 多个并发连接 单个连接即可完成所有请求
安全性 可选 通常基于 HTTPS


网站公告

今日签到

点亮在社区的每一天
去签到