HTTP/2 和 HTTP/3区别
一、最根本的区别:底层传输协议
这是所有差异的源头:
- HTTP/2:应用层协议,仍然跑在传统 TCP 协议 之上
- HTTP/3:全新协议,基于 QUIC,跑在 UDP 协议 之上
TCP 和 UDP 天生特性不同,直接决定了两者在丢包、延迟、网络切换上的表现。
二、全维度详细对比表
表格
| 对比项 | HTTP/2 | HTTP/3(QUIC) | 影响说明 |
|---|---|---|---|
| 底层传输 | TCP(面向连接、可靠传输) | UDP(无连接)+ QUIC 封装 | 决定丢包、重连、防火墙兼容性 |
| 队头阻塞 | ❌ 存在(连接级阻塞) | ✅ 完全解决 | 最大核心差异,下文重点讲 |
| 默认端口 | TCP 443 | UDP 443 | HTTP/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 安全性底线更高 |
| 请求头压缩 | HPACK | QPACK | QPACK 优化了丢包场景下的压缩异常 |
| 防火墙 / 运营商兼容 | ✅ 全网几乎全放行 | ⚠️ 部分企业网、校园网、老旧防火墙拦截 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 加密握手
- HTTP/2
TCP 三次握手 + TLS 握手,最少也要 1 个往返(RTT),网络差时延迟叠加。
- 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 优点
- 生态极其成熟,所有主流服务器、CDN、浏览器完美兼容
- TCP 443 全网放行,零防火墙拦截问题,稳定性最高
- 配置简单,无需额外放行端口,运维成本低
- 绝大多数网站场景下性能足够优秀
HTTP/2 缺点
- 受 TCP 限制,存在队头阻塞,弱网体验差
- 网络切换(WiFi / 流量)会断连
- 握手延迟略高于 HTTP/3
HTTP/3 优点
- 彻底解决队头阻塞,抗丢包、抗网络抖动
- 握手延迟更低,支持 0-RTT 重连
- 原生连接迁移,移动网络切换不断连
- 协议强制加密,安全性更强
HTTP/3 缺点
- 依赖 UDP 443,部分网络会拦截,兼容性略差
- 相对新,小众老旧设备 / 客户端支持不足
- 配置多一步:服务器防火墙 + 云安全组 都要放行 UDP 443
六、常见误区澄清
- 误区:HTTP/3 一定比 HTTP/2 快很多
错。网络越稳定,差距越小;网络越差,差距越大。稳定宽带下两者体感基本一致。
- 误区:开了 HTTP/3 就可以删掉 HTTP/2
绝对不建议。一定要双开做兜底,兼容老旧客户端和拦截 UDP 的网络。
- 误区:HTTP/3 配置难度很高
现在新版宝塔 + Nginx 1.25+ 配置非常简单,仅多一步「放行 UDP 443」。
- 误区:IE 浏览器用不了 HTTP/3
IE 本身连 HTTP/2 都不支持,只会走 HTTP/1.1,和 HTTP/3 无关。
最终一句话总结
- HTTP/2:成熟、稳定、兼容无敌,是当前 Web 主流标配;
- HTTP/3:下一代标准,主打弱网、移动网络、低延迟,性能上限更高,但受 UDP 端口限制;
- 国内普通网站:双协议同时开启,是兼顾体验与稳定的最佳选择。