📜  HTTP2 和 HTTP1.1 的区别(1)

📅  最后修改于: 2023-12-03 15:01:20.182000             🧑  作者: Mango

HTTP2 和 HTTP1.1 的区别

介绍

HTTP(Hypertext Transfer Protocol,超文本传输协议)是现代网络中最常见的协议之一,用于浏览器和服务器之间的数据传输。随着网络技术的不断发展,新的版本——HTTP2已经取代了之前的版本——HTTP1.1。那么,HTTP2 和 HTTP1.1 的区别是什么呢?

HTTP1.1 的特点
  • 建立连接时,需要多次来回通信,导致延迟高;
  • 每个请求都需要独立的 TCP 连接,浪费资源,过多的连接也会导致延迟高;
  • 支持的二进制数据格式较少,传输效率低;
  • 采用的头信息未经压缩,占用带宽,数据传输效率低。
HTTP2 的特点

相比之下,HTTP2 采用了以下几种方式来优化传输效率:

  • 二进制分帧(Binary Framing):HTTP2 的传输单位是一个个二进制的帧(Frame),不再使用 HTTP1.1 中的文本形式的消息。二进制格式的帧可以更好地支持头信息压缩和单个连接上多路复用等特性。
  • 多路复用(Multiplexing):HTTP2 可以在同一连接上进行多个请求-响应交互。这样可以避免 TCP 连接数过多,有效地减少了延迟和网络瓶颈。
  • 首部压缩(Header Compression):HTTP2 可以在客户端和服务器之间使用 HPACK 算法对消息头进行压缩,从而减少头信息占用的带宽。
  • 服务器推送(Server Push):HTTP2 可以在客户端请求资源时,服务器主动推送额外的资源。这样可以避免某些重复请求,提高了响应速度。
总结

综上所述,HTTP2 相比 HTTP1.1,极大地提升了可靠性、安全性和速度。这些优化可以极大地改善用户的使用体验,特别是对移动端设备而言,可以节省宝贵的带宽和电池寿命。

参考链接:

  • 《图解 HTTP》(上野宣 著,人民邮电出版社)
  • https://developers.google.com/web/fundamentals/performance/http2/