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 连接里某一个数据包丢失,整个连接都会暂停,等待丢包重传,所有请求全部卡住
这就是「连接级队头阻塞」,HTTP/2 解决了 HTTP/1.1 的请求阻塞,但没摆脱 TCP 的天生缺陷。

HTTP/3(QUIC)的解决方案

QUIC 在 UDP 之上,每一个请求流都是独立的
  • 某个流丢包 → 只重传这一个流,其他请求完全不受影响
  • 网络抖动、丢包多的场景下,页面加载体验大幅提升
结论:网络越差、丢包越多,HTTP/3 优势越明显;网络极度稳定时,两者体感差别很小。

2. 握手延迟 & 首次访问速度

HTTPS 完整流程:传输层握手 + TLS 加密握手
  1. HTTP/2

    TCP 三次握手 + TLS 握手,最少也要 1 个往返(RTT),网络差时延迟叠加。

  2. HTTP/3

    QUIC 把「传输连接」和「TLS 加密」合并设计:

    • 首次连接:1-RTT
    • 再次访问(同一个网站):支持 0-RTT,几乎零延迟建立连接
移动端、跨境网站、偏远地区用户提升非常明显。

3. 网络切换(连接迁移)

日常场景:手机从 WiFi 切 4G/5G,IP 地址发生变化。
  • HTTP/2:TCP 靠 IP+端口 标识连接,IP 一变 → 连接直接断开,页面刷新、请求中断,需要重新握手。
  • HTTP/3:QUIC 使用独立 连接 ID 标识会话,和 IP / 端口 无关。

    网络切换后连接不中断,视频、长轮询、表单等不会断开。

这是移动互联网场景下 HTTP/3 最大的亮点

4. 防火墙与运营商限制(国内建站必看)

  • HTTP/2(TCP 443)

    全球所有机房、防火墙、校园网、企业路由默认放行 TCP 443,零拦截,稳定性拉满。

  • HTTP/3(UDP 443)

    很多老旧设备、公司内网、校园网、部分小众运营商会限制 / 拦截 UDP 端口

    现象:

    部分用户能打开网站(走 HTTP/2),部分用户转圈打不开(UDP 被拦截)。

5. 加密与安全

  • HTTP/2:可以跑明文 HTTP,加密依赖手动配置 TLS;
  • HTTP/3:协议层面强制加密,不存在明文 HTTP/3,安全底线更高。

6. 头部压缩

两者都对 HTTP 请求头做压缩,减少体积:
  • HTTP/2:HPACK
  • HTTP/3:QPACK,修复了 HPACK 在丢包场景下的解码异常,压缩更稳定。

四、不同网络下的实际体验

1. 稳定家庭 / 企业宽带(千兆、低丢包)

HTTP/2 ≈ HTTP/3

体感几乎一致,页面加载速度差别很小。

此时 HTTP/2 因为兼容性更好,反而更稳。

2. 移动端、4G/5G、弱网、网络抖动大

HTTP/3 明显更强

丢包、切换网络时不卡顿、不中断,加载更流畅。

3. 校园网、政企内网、特殊运营商网络

⚠️ HTTP/3 容易翻车

UDP 443 被拦截,浏览器会自动降级到 HTTP/2,网站仍可访问,但 HTTP/3 失效。

4. 跨境访问(国内→海外 / 海外→国内)

HTTP/3 优势极大

长链路、高延迟场景下,握手优化和抗丢包能力会拉开差距。


五、HTTP/2 与 HTTP/3 优缺点总结

HTTP/2 优点

  1. 生态极其成熟,所有主流服务器、CDN、浏览器完美兼容
  2. TCP 443 全网放行,零防火墙拦截问题,稳定性最高
  3. 配置简单,无需额外放行端口,运维成本低
  4. 绝大多数网站场景下性能足够优秀

HTTP/2 缺点

  1. 受 TCP 限制,存在队头阻塞,弱网体验差
  2. 网络切换(WiFi / 流量)会断连
  3. 握手延迟略高于 HTTP/3

HTTP/3 优点

  1. 彻底解决队头阻塞,抗丢包、抗网络抖动
  2. 握手延迟更低,支持 0-RTT 重连
  3. 原生连接迁移,移动网络切换不断连
  4. 协议强制加密,安全性更强

HTTP/3 缺点

  1. 依赖 UDP 443,部分网络会拦截,兼容性略差
  2. 相对新,小众老旧设备 / 客户端支持不足
  3. 配置多一步:服务器防火墙 + 云安全组 都要放行 UDP 443

六、常见误区澄清

  1. 误区:HTTP/3 一定比 HTTP/2 快很多

    错。网络越稳定,差距越小;网络越差,差距越大。稳定宽带下两者体感基本一致。

  2. 误区:开了 HTTP/3 就可以删掉 HTTP/2

    绝对不建议。一定要双开做兜底,兼容老旧客户端和拦截 UDP 的网络。

  3. 误区:HTTP/3 配置难度很高

    现在新版宝塔 + Nginx 1.25+ 配置非常简单,仅多一步「放行 UDP 443」。

  4. 误区:IE 浏览器用不了 HTTP/3

    IE 本身连 HTTP/2 都不支持,只会走 HTTP/1.1,和 HTTP/3 无关。


最终一句话总结

  • HTTP/2:成熟、稳定、兼容无敌,是当前 Web 主流标配;
  • HTTP/3:下一代标准,主打弱网、移动网络、低延迟,性能上限更高,但受 UDP 端口限制;
  • 国内普通网站:双协议同时开启,是兼顾体验与稳定的最佳选择。