HTTP 2.0 和 3.0 有什么区别?

HTTP2.0 vs HTTP3.0(面试Markdown)

HTTP/2 基于 TCP ;HTTP/3 基于 QUIC协议(UDP),这是最本质区别。

HTTP/2 回顾

  • 传输层:TCP
  • 应用层:二进制帧 + 多路复用
  • 解决了应用层队头阻塞 ,但是 TCP层队头阻塞依旧存在

TCP的问题:一条连接里,某个数据包丢包,TCP会停止所有数据传输,等待丢包重传,同一连接下所有请求全部卡住。

  • 依赖TLS做加密(HTTPS),握手需要:TCP三次握手 + TLS握手,握手RTT开销大。

HTTP/3(QUIC)核心特点

HTTP/3并没有完全抛弃HTTP2的语义,请求响应模型、头部压缩思想保留,底层传输换成QUIC(UDP之上实现)。

1. 彻底解决队头阻塞

  • HTTP2:应用层多路复用,但TCP丢包,整个连接全部阻塞等待重传。
  • HTTP3‑QUIC:基于UDP,每个流独立。某一个流丢包,只影响当前流,其他流正常收发数据,真正消除队头阻塞。

2. 握手更快(0‑RTT / 1‑RTT握手)

  • HTTP2:TCP 3次握手 + TLS握手,至少2‑3个RTT。
  • QUIC:可以做到1‑RTT完成首次连接 ;历史连接复用支持 0‑RTT,直接发送业务数据,减少握手延迟。

3. 连接迁移

QUIC连接不绑定IP+端口,依靠连接ID标识连接 。

手机网络切换:Wi‑Fi切4G,IP变了,TCP连接直接断开;QUIC可以继续复用原来连接,不需要重新握手。移动端收益巨大。

4. 内置加密

QUIC把TLS加密内置到协议内部,强制加密,不像HTTP2是TCP+TLS两层拼装。

5. 依然保留HTTP2优秀特性

  • 二进制帧、多路复用、头部压缩(QPACK,HPACK改进版)、流优先级全部保留。

对比表格

对比项 HTTP/2 HTTP/3(QUIC)
底层传输协议 TCP UDP(QUIC)
队头阻塞 解决应用层,TCP层仍然存在 完全消除队头阻塞
握手开销 TCP+TLS,2‑3RTT 首次1‑RTT,复用0‑RTT
连接迁移 不支持,IP变化连接断开 支持,依靠Connection‑ID
加密 TCP之上叠加TLS 协议内置TLS加密
头部压缩 HPACK QPACK
适用场景 PC、Web服务 移动端、弱网、网络频繁切换场景

缺点(面试加分)

  1. UDP经过部分防火墙、运营商设备会被限制,部署普及率不如HTTP2。
  2. UDP没有原生可靠传输,QUIC自己实现重传、拥塞控制,内核没有优化,早期CPU开销较高。

面试口述简短版

HTTP2底层是TCP,虽然通过多路复用解决了应用层的队头阻塞,但是TCP本身丢包会造成整个连接阻塞,握手需要TCP加TLS,RTT开销高,网络切换时连接直接断掉。

HTTP3底层使用QUIC协议跑在UDP之上。它保留HTTP2大部分语义,最大优势是彻底解决队头阻塞,单个流丢包不会影响其他流;握手可以做到0‑RTT加速;支持连接迁移,手机Wi‑Fi切流量不用重连。

缺点是基于UDP,部分网络环境会拦截,目前普及度还不如HTTP2。

相关推荐
Multipath71210 分钟前
多链路聚合设备:助力智慧农业发展的网络基石——让农田网络不断连,让智能设备不失控
网络·网络协议·5g·udp·无人机
似是燕归来14 分钟前
Rtthread OS 功能开发之 socket udp协议程序开发
网络·stm32·网络协议·udp·socket·rtthread
饿了吃洗衣凝珠25 分钟前
red hot day1
网络
牧羊人.33337 分钟前
自然语言处理基础 04|长短期记忆网络 LSTM
网络·人工智能·rnn·深度学习·学习·自然语言处理·lstm
lambo mercy44 分钟前
Day4:流式传输
运维·服务器·网络
ESDWAN1 小时前
跨境网络延迟、抖动和丢包有什么区别?如何判断业务影响
开发语言·网络·计算机网络·php
比兔代理1 小时前
HTTP 代理与 TLS 指纹:如何避免被识别为代理流量?
网络·网络协议·http
上海云盾-小余1 小时前
自定义端口 HTTPS 部署:高防接入遇到的问题与调优方案
网络协议·http·https
枫叶丹41 小时前
异构数据库结构如何同步:理解 KFS 的 DDL 转换机制
网络·数据库
wespaul2 小时前
VeapAI 自然语言操作实战|第 08 篇:治理层——审计、指标、评估与权限
运维·网络·数据库