Files
rikako-note/http/http3.md
2025-10-28 16:31:19 +08:00

44 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

- [HTTP3 \& QUIC Protocols](#http3--quic-protocols)
- [What is HTTP3](#what-is-http3)
- [TCP/IP模型中HTTP3 vs QUIC](#tcpip模型中http3-vs-quic)
- [QUIC Protocol](#quic-protocol)
- [What is QUIC Used For](#what-is-quic-used-for)
# HTTP3 & QUIC Protocols
http3旨在通过QUIC下一代传输层协议来令网站更快、更安全。
在协议高层http3提供了和http2相同的功能例如header compression和stream优先级控制。然而在协议底层QUIC传输层协议彻底修改了web传输数据的方式。
## What is HTTP3
HTTP是一个应用层的网络传输协议定义了client和server之间的request-reponse机制允许client/server发送和接收HTML文档和其他文本、meidia files。
http3最初被称为`HTTP-over-QUIC`其主要目标是令http语法及现存的http/2功能能够和QUIC传输协议兼容。
故而,`HTTP/3`的所有新特性都来源于QUIC层包括内置加密、新型加密握手、对先前的连接进行zero round-trip恢复消除头部阻塞问题以及原生多路复用。
## TCP/IP模型中HTTP3 vs QUIC
通过internet传输信息是复杂的操作涉及到软件和硬件层面。由于不同的设备、工具、软件都拥有不同的特性故而单一协议无法描述完整的通信流程。
故而网络通信是已于通信的协议栈实现的协议栈中每一层职责都不同。为了使用网络系统来通信host必须实现构成互联网协议套件的一系列分层协议集。通常主机至少为每层实现一个协议。
而HTTP则是应用层协议令web server和web browser之间可以相互通信。http消息request/reponse在互联网中则是通过传输层协议来进行传递
- 在http/2和http/1.1中通过TCP协议来进行传递
-`http/3`则是通过QUIC协议来进行传递
> `QUIC`为http/3新基于的传输层协议之前http都基于tcp协议进行传输
## QUIC Protocol
`QUIC`协议是一个通用的传输层协议其可以和任意兼容的应用层协议来一起使用HTTP/3是QUIC的最新用例。
`QUIC`协议基于`UDP`协议构建其负责server和client之间应用数据的物理传输。UDP协议是一个简单、轻量的协议其传输速度高但是缺失可靠性、安全性等特性。QUIC实现了这些高层的传输特性故而可以用于优化http数据通过网络的传输。
在HTTP/3中HTTP的连接从`TCP-based`迁移到了`UDP-based`,底层的网络通信结构都发生了变化。
### What is QUIC Used For
QUIC其创建是同于代替`TCP`协议的QUIC作为传输层协议相比于TCP更加灵活性能问题更少。QUIC协议继承了安全传输的特性并且拥有更快的adoption rate。
QUIC协议底层基于UDP协议的原因是`大多数设备只支持TCP和UDP的端口号`