← 返回题目列表

HTTPS 在 HTTP/3 中是怎么工作的?QUIC 为什么内置 TLS 1.3?

中等 第 29 / 29 题 更新于 2026/08/02
HTTPSHTTP/3QUIC

简化版

HTTP/3 运行在 QUIC 之上,而 QUIC 基于 UDP,并且把 TLS 1.3 集成到了协议内部。

在 HTTP/1.1 和 HTTP/2 中,常见链路是 HTTP over TLS over TCP;在 HTTP/3 中,更像是 HTTP/3 over QUIC,QUIC 内部完成加密、握手、密钥更新和流管理。

这样可以减少握手延迟、避免 TCP 层队头阻塞,并把安全能力作为协议默认部分。

详细版

传统 HTTPS:

HTTP/2
TLS
TCP
IP

HTTP/3:

HTTP/3
QUIC with TLS 1.3
UDP
IP

QUIC 不再依赖 TCP 做连接管理,而是在用户态实现可靠传输、多路复用、拥塞控制,并强制加密大部分传输信息。

TLS 1.3 握手被集成进 QUIC 握手中,不再是独立包在 TCP 上跑。

浏览器通常通过 Alt-Svc 或 HTTPS DNS 记录发现服务端支持 HTTP/3。

完整版教学

1. 先对比传统 HTTPS 栈

在 HTTP/1.1 和 HTTP/2 中,HTTPS 通常是:

HTTP -> TLS -> TCP -> IP

TCP 负责可靠有序传输。

TLS 负责加密和身份认证。

HTTP 负责应用语义。

HTTP/3 换了底座,不再使用 TCP,而是使用 QUIC。

HTTP/3 不是把 HTTP/2 简单搬到 UDP 上,而是使用内置 TLS 1.3 的 QUIC 作为传输层。

2. QUIC 为什么内置 TLS 1.3

QUIC 从设计上就要求加密。

它把 TLS 1.3 握手用于:

  • 认证服务端身份。
  • 协商密钥。
  • 保护传输参数。
  • 派生不同阶段的加密密钥。

这让 QUIC 没有明文可用的传统 TCP 头部状态,减少中间设备干预。

也避免了先建 TCP 再建 TLS 的两层握手开销。

3. 握手延迟有什么变化

传统首次 HTTPS 可能需要:

TCP 1-RTT + TLS 1-RTT

TLS 1.3 已经减少了 TLS 往返,但 TCP 建连仍然存在。

QUIC 把传输握手和 TLS 握手结合,首次连接通常可以更快完成。

恢复连接时还可能使用 0-RTT,但 0-RTT 有重放风险,不能承载非幂等敏感操作。

4. HTTP/3 如何改善队头阻塞

HTTP/2 在一个 TCP 连接上多路复用多个 stream。

但 TCP 要保证字节流有序。

一旦某个 TCP 包丢失,后面的数据即使属于其他 HTTP stream,也可能被阻塞。

QUIC 在传输层原生支持多 stream。

一个 stream 丢包,通常不会阻塞其他 stream 的数据交付。

这就是 HTTP/3 改善队头阻塞的重要原因。

5. HTTP/3 和 HTTPS 证书

HTTP/3 仍然需要证书验证。

浏览器仍会校验:

  • 证书链。
  • 域名 SAN。
  • 有效期。
  • 吊销策略。
  • TLS 版本和算法安全性。

区别是 TLS 1.3 不再作为 TCP 上的独立层呈现,而是在 QUIC 连接建立中完成。

所以 HTTPS 的身份认证和加密语义仍在。

校验项HTTP/2 over TLSHTTP/3 over QUIC
证书链需要需要
域名 SAN需要需要
加密协议TLS over TCPQUIC 内置 TLS 1.3
应用协议协商ALPNALPN 与 QUIC 参数配合

6. 部署和发现机制

客户端通常不会凭空知道某站支持 HTTP/3。

常见方式包括:

  • 服务端在 HTTP 响应中返回 Alt-Svc
  • DNS HTTPS 记录提供相关信息。
  • 浏览器缓存此前发现的 HTTP/3 支持。

示例:

Alt-Svc: h3=":443"; ma=86400

这告诉客户端后续可以尝试使用 HTTP/3 访问同一服务。

7. 常见误区与追问

  • 误区:HTTP/3 不需要 HTTPS。 主流 HTTP/3 基于 QUIC,而 QUIC 内置 TLS 1.3,加密是默认要求。
  • 误区:QUIC 只是 UDP,所以不可靠。 QUIC 在 UDP 之上自己实现可靠传输、拥塞控制和流管理。
  • 误区:HTTP/3 完全没有队头阻塞。 它改善了连接级队头阻塞,但单个 stream 内仍有顺序要求。
  • 追问:0-RTT 为什么有风险? 早期数据可能被重放,不适合非幂等操作。
  • 追问:HTTP/3 还检查证书吗? 仍然检查,只是 TLS 1.3 集成在 QUIC 握手中。
  • 追问:浏览器如何发现 HTTP/3? 常见方式是 Alt-Svc 和 DNS HTTPS 记录。

8. 加强记忆

HTTP/3 的 HTTPS 记成:HTTP/3 坐 QUIC,QUIC 自带 TLS 1.3。

它不是少了安全层,而是把安全层揉进了传输协议里。