HTTP/2 和 HTTP/3区别

· 阅读约需10分钟

一、最根本的区别:底层传输协议

这是所有差异的源头:
  • HTTP/2应用层协议,仍然跑在传统 TCP 协议 之上
  • HTTP/3:全新协议,基于 QUIC,跑在 UDP 协议 之上
TCP 和 UDP 天生特性不同,直接决定了两者在丢包、延迟、网络切换上的表现。

二、全维度详细对比表

表格
对比项HTTP/2HTTP/3(QUIC)影响说明
底层传输TCP(面向连接、可靠传输)UDP(无连接)+ QUIC 封装决定丢包、重连、防火墙兼容性
队头阻塞❌ 存在(连接级阻塞)✅ 完全解决最大核心差异,下文重点讲
默认端口TCP 443UDP 443HTTP/3 需要额外放行 UDP 443
握手延迟TCP 三次握手 + TLS 握手(1~2RTT)QUIC+TLS 深度融合,支持 0-RTT / 1-RTT首次访问、重连延迟更低
连接迁移❌ 不支持(IP / 端口一变,连接断开重连)✅ 原生支持(靠「连接 ID」识别,和 IP 无关)手机 WiFi ↔ 流量切换体验天差地别
多路复用单 TCP 连接内多请求流原生 UDP 多路复用,流完全独立HTTP/2 流隔离但受 TCP 拖累
加密策略依赖下层 TLS,明文 TCP + 加密强制全程加密,QUIC 设计就不支持明文HTTP/3 安全性底线更高
请求头压缩HPACKQPACKQPACK 优化了丢包场景下的压缩异常
防火墙 / 运营商兼容✅ 全网几乎全放行⚠️ 部分企业网、校园网、老旧防火墙拦截 UDP国内部分特殊网络会打不开 HTTP/3
浏览器兼容极广(现代浏览器全覆盖)主流现代浏览器支持,老旧浏览器不支持IE 等古董浏览器两者都不支持
运维复杂度低(只需开 SSL+HTTP2)略高(需放行 UDP 443 + 配置 QUIC)新版宝塔已简化配置
弱网 / 抖动网络一般优秀网络不稳、跨境、移动端优势巨大

三、核心特性深度解读(重点理解)

1. 队头阻塞(最关键差异)

HTTP/2 的痛点

HTTP/2 实现了单连接多路复用:一个 TCP 连接里同时并发多个网页请求(图片、JS、CSS、接口)。
TCP 是串行可靠传输
如果这个 TCP 连接里某一个数据包丢失,整个连接都会暂停,等待丢包重传,所有请求全部卡住