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。

相关推荐
十碗饭吃不饱13 分钟前
后端运维:网络联通、进程查询、Java服务启动脚本
java·运维·网络
流浪00118 分钟前
计算机网络篇16:传输层——TCP 报头属性字段:16 位窗口大小撑起流量控制,六个标志位标识报文类型
网络协议·tcp/ip·计算机网络·urg紧急指针·tcp报头
apollo_qwe1 小时前
接口超时了,前端为什么不能直接重试?
javascript·http
从琳开始9892 小时前
网络原理入门(二)------OSI七层模型?TCP/IP五层(四层)模型原来是这样的
java·网络·tcp/ip·java-ee·php
Jongkhurun4 小时前
以太网的最小帧长为什么是 64 字节:从 CSMA/CD 冲突窗口推导 64 Byte
网络协议
xiaoye-duck4 小时前
《C++ 项目:手写大模型接入 SDK》ChatGPT接口设计(下):流式响应实现和测试
网络·c++·语言模型·chatgpt
梦帮科技4 小时前
意识启发式量子隧穿退火算法用于全局优化 (CITA) 完整技术指南
网络·人工智能·算法·量子计算·模拟退火算法
坤坤子吖6 小时前
Linux网络编程:UDP进阶,从字典服务器到简单聊天室
linux·服务器·网络·c++·笔记·学习
爱和冰阔落7 小时前
【Linux网络】TCP 服务器怎么写?从 listen、accept 到 read/write,手写完整 Echo Server
linux·运维·服务器·网络
全栈陈序员9 小时前
【Git】从入门到精通(十)—— 撤销与恢复:git checkout与git restore
运维·网络·数据库·git