HTTP3.0和HTTP2.0的不同

QUIC协议简介:HTTP/3的核心——更快、更安全的互联网传输技术HTTP/2 是目前最新的网络传输协议(如上图左), - 掘金

传输协议不同

HTTP/2 基于TCP(传输控制协议)

  • 依赖TCP的可靠传输,但是tcp的队头阻塞问题会影响性能
  • 如果TCP数据包丢失或者延迟,后续所有数据会被阻塞,即使他们属于不同的流

HTTP/3基于QUIC(Quick UDP internet Connections),运行在UDP协议上

  • 彻底解决了TCP的队头阻塞问题,每个流独立传输,丢包仅影响当前流
  • 支持连接迁移(wifi切换蜂窝网络的时候无需重新握手)

解决队头阻塞的方式

HTTP/2:

  • 再应用层实现了多路复用,一个请求/响应通过单一TCP连接并行传输
  • 但TCP层的队头阻塞依然存在:如果某个TCP包丢失,所有流都需要等待重传

连接建立速度

HTTP/2: 需要TCP三次握手+ TLS握手

HTTP/3:QUIC将传输和加密合二为一,支持快速建立连接

image-20250130204038298

image-20250130204057916

错误回复与拥塞控制

HTTP/2: 依赖TCP的拥塞控制和丢包重传机制,恢复速度较慢

HTTP/3: QUIC内置更智能的拥塞控制算法,且丢包恢复更快(每个包独立编号,无需全局等待)

image-20250130204454936

头部压缩

HTTP/2: 使用HPACK压缩头部,减少冗余数据传输

HTTP/3: 升级为QPACK,兼容QUIC的无序传输特性,确保头部压缩高效而且可靠

服务器推送

HTTP/2 支持服务器主动推送资源,但实际应用较少

HTTP/3 弱化或者弃用服务器推送,改为其他优化手段

安全性

  • HTTP/2:通常依赖 TLS(HTTPS),但非强制。
  • HTTP/3QUIC 默认加密(基于 TLS 1.3),所有数据必须加密传输,安全性更高。