Skip to content

HTTP 1.0 和 2.0 的区别

1. 连接管理

特性HTTP/1.0HTTP/2.0
连接复用每个请求需单独建立 TCP 连接(短连接)多路复用:一个 TCP 连接并行处理多个请求
队头阻塞存在(请求按顺序处理,前一个阻塞后续请求)无队头阻塞(请求/响应可乱序处理)

示例
加载一个包含 10 张图片的页面:

  • HTTP/1.0:需建立 10 次 TCP 连接(或有限并发,如浏览器默认 6 个)。
  • HTTP/2.0:仅需 1 次 TCP 连接,所有图片并行传输。

2. 数据传输效率

特性HTTP/1.0HTTP/2.0
数据格式文本协议(可读性高,解析效率低)二进制协议(解析高效,错误率低)
头部压缩无压缩,重复头部导致冗余HPACK 压缩(减少 50%~90% 头部大小)
优先级控制可标记请求优先级(优先加载关键资源)

示例
请求头部包含 CookieUser-Agent

  • HTTP/1.0:每次请求重复发送完整头部。
  • HTTP/2.0:仅首次发送完整头部,后续用索引标识。

3. 服务器推送(Server Push)

特性HTTP/1.0HTTP/2.0
主动推送资源不支持支持(服务器可主动推送 CSS/JS/图片等资源)

场景
用户请求 index.html,服务器可同时推送 style.css,减少往返延迟。


4. 流控制与错误处理

特性HTTP/1.0HTTP/2.0
流控制依赖 TCP 的流控基于流的独立控制(精细管理带宽)
错误恢复错误导致整个连接中断单个流错误不影响其他流

5. 安全性

特性HTTP/1.0HTTP/2.0
加密要求明文传输(HTTP)或可选加密(HTTPS)主流实现(如浏览器)要求基于 HTTPS

总结:HTTP/2.0 的核心优势

  1. 更快的加载速度:多路复用和头部压缩减少延迟。
  2. 更高的带宽利用率:二进制协议和优先级控制优化资源分配。
  3. 更好的用户体验:服务器推送提前加载关键资源。

何时选择 HTTP/2.0?

  • 现代 Web 应用(尤其是 SPA、媒体网站)
  • 需要高并发请求的场景(如实时聊天、高频 API 调用)
  • 资源依赖复杂的页面(多 CSS/JS/图片)