当前位置: 首页 > news >正文

什么是 HTTP/3?下一代 Web 协议

毫无疑问,发展互联网底层的庞大协议基础设施是一项艰巨的任务。

HTTP 的下一个主要版本基于 QUIC 协议构建,并有望提供更好的性能和更高的安全性。

以下是 Web 应用程序开发人员需要了解的内容。

HTTP/3 的前景与风险

HTTP/3 致力于让互联网对每个人来说都更安全、更快速、更简单。如果这些目标听起来很熟悉,那是因为它们与 HTTP/2 最初的目标相同。

这是一个有趣的故事,但最重要的是 HTTP/3 再次解决了 TCP 和 HTTP 中长期存在的缺陷。

令人惊讶的是,新协议完全绕过了 HTTP/2,并采用 QUIC 协议作为其基础。

对 HTTP/3 的快速理解是:在 UDP 之上构建 TCP 2.0 并将其称为 QUIC。然后,在 QUIC 上重建 HTTP/2 并将其称为 HTTP/3。

如果这听起来很奇怪,那是因为它确实很奇怪。

首先,大多数部署的硬件和软件都是为与现有协议对话而设计的。批量重新配置网络设备以采用新版本的 TCP 是不可行的,理论上这是正确的起点。

这种方法可以解决 HTTP/2 的许多问题,但会留下大量故障设备。相反,我们得到了 HTTP/3。

HTTP/3 规范

HTTP/3 中有两个规范:规范本身和QUIC 协议。它们共同构成了技术和实践复杂性的丛林。

从高层次的角度看,将有助于我们理解这项技术及其希望实现的目标。

首先,我们可以将 HTTP/3 的功能分为三大类:

内置加密
多字节流(多路复用)
连接弹性

让我们依次看一下每一个。

内置加密

虽然内置加密是一种安全功能,但它也是一种性能增强。这是因为 HTTP/3 中协商加密的方式减少了所需的往返次数。

网络加密历史悠久,包括弃用 SSL 转而使用 TLS。总体而言,这一举措是为了实现更好的加密方式和提供更多默认加密。

HTTPS 现在是大多数网络流量的默认加密方式,而在 HTTP/3 中,我们将完全消除纯文本(“http://…”)选项。

HTTPS 仍将用作建立安全连接的机制,但流量将在 HTTP/3 级别加密。换句话说,TLS 将集成到网络协议中,而不是与其一起工作。

因此,加密将移至传输层,而不是应用层。这意味着默认情况下会更安全——甚至 HTTP/3 中的标头也经过加密——但 CPU 负载也会相应增加。

总的来说,这个想法是,由于加密协商方式的改进,通信将更快,而且由于加密将内置在较低级别,因此通信将更简单,从而避免了因实现方式多样化而产生的问题。

除了加密之外,QUIC 还旨在提供集成的 DDoS 保护和“前向”安全性,即使参与者后来泄露秘密,攻击者也更难以破坏过去的通信。

多字节流或细粒度复用

如果您熟悉 HTTP/2 的工作原理,您会认为它已经实现了多路复用。事实上,多路复用是 HTTP/2 的主要功能之一。

HTTP/3 只是以一种新的、更好的方式实现了多路复用。具体来说,HTTP/3 旨在解决队头阻塞问题(HOL)。

理想情况下,我们会直接在 TCP 中修复此阻塞问题。当我们通过 TCP 运行 HTTP 时,我们可以(并且确实)同时发送多个不同的文件。这是我们目前的多路复用化身。

当您打开网站时,服务器希望一次发送尽可能多的文件。这对速度和效率有好处。HTTP/2 允许这样做,但 TCP 不理解多路复用文件。

对于 TCP 来说,它们都是一大块。更糟糕的是,如果其中任何一个失败,它必须重新启动该流中的所有文件。

HTTP/3 的新协议是 QUIC,它有点像 TCP 2.0。它将细粒度文件的概念构建到流中,以便可以以更细粒度的方式重新启动它们。更棒的是,它这样做不会破坏所有现有的 TCP 基础设施。

连接弹性

我们所说的连接弹性是指当设备在网络间移动时,有一种机制可以保留客户端和服务器之间的相同连接。

在 TCP 中,这种连续性是不可能的,因为该协议只理解 IP 地址和端口号。如果其中任何一个发生变化(例如当您拿着移动设备从一个网络走到另一个网络时),就必须建立全新的连接。这种重新连接会导致可预见的性能下降。

QUIC 协议引入了连接 ID或 CID。出于安全考虑,这些实际上是服务器和客户端协商的 CID 集。

因此,HTTP/3 连接使用 IP 地址、端口和 CID,即使网络发生变化并建立了新的 IP 或端口,它们也能保持连接。这为协议提供了一种对话持久性。

HTTP/3 实现

我提到过,HTTP/3 建立在 QUIC 协议之上,QUIC 协议本质上是 TCP 的新版本。QUIC 是一种具有历史和持续发展的协议,但对于 HTTP/3 而言,您需要知道的是,它在古老的用户数据报协议(UDP) 上构建了多项功能。

UDP

UDP 是几乎所有网络设备和软件都实现的基本协议。它用于 DNS 查找。它的普遍性和简单性使其成为最新版本 HTTP 的坚实基础。

与 TCP 不同,UDP 是无连接的,没有网络优化逻辑。QUIC 协议建立在 UDP 之上,并添加了这些必要的元素。本质上,我们正在实现一个更好的网络层,它借鉴了数十年实际互联网使用的经验。

虽然 UDP 是无连接的,但 QUIC 却不是。QUIC 使用确认 (ACK) 来建立和维护连接。QUIC 还支持数据包重新传送。这些功能与 TCP 类似,但进行了改进,以实现我们已经讨论过的三个目标:内置加密、减少网络往返和持久连接。

QUIC 是 HTTP/3 的核心,它根据实际经验以更高效、更安全的方式重新实现了 TCP 的基本元素(如确认和重新传送)。UDP 被用作 QUIC 的基础,因为它是一种完善的协议,为实现提供了最低限度的基准。

QUIC 还被设计为可扩展的,这让我们避免了目前使用 TCP 时遇到的情况。QUIC 协议使用帧,它封装了特定的数据报用途,并且可以在将来添加而不会破坏现有用例。

HTTP/3 的现状和未来

尽管 QUIC 已经在浏览器和其他项目中使用,但所有功能、协议和 HTTP/3 规范本身仍在不断开发中。

在可预见的未来,HTTP/1、HTTP/2 和 HTTP/3 将继续共存。有消息称,HTTP/1 仍占网络流量的近 30%。HTTP/3 将采用类似的请求模型。

目前,HTTP/3 作为一个更高级的网络层存在,随着更多参与者的支持,它将得到广泛使用。HTTP/3 在大规模部署时将如何兑现其承诺,还有待观察。

对于大多数在职程序员来说,这一变化是我们生活和工作的世界的一个有趣事实,但它不会直接影响我们编写的代码。

例如,我们不会直接构建 QUIC 客户端。当然,这一变化对于网络管理员和系统操作员以及任何需要分析和了解网络流量的人来说更为重要。(事实上,QUIC 的加密性质一直是一些网络运营商的症结所在,因为它使识别模式和确定用户何时滥用网络变得更加困难。)

HTTP/3 是未来网络领域的一个重要特征。每个从事网络开发的程序员都希望至少从高层次上了解它的工作原理。

请参阅以下资源以了解有关 HTTP/3 及其组件的更多信息:

RFC 9114:HTTP/3 提案的详细信息和历史。
RFC 9000:QUIC 提案的详细信息和历史。另请参阅此处的QUIC RFC 摘要。
Smashing Magazine 有一系列关于 HTTP/3 的深入介绍,包括性能改进。 

相关文章:

什么是 HTTP/3?下一代 Web 协议

毫无疑问,发展互联网底层的庞大协议基础设施是一项艰巨的任务。 HTTP 的下一个主要版本基于 QUIC 协议构建,并有望提供更好的性能和更高的安全性。 以下是 Web 应用程序开发人员需要了解的内容。 HTTP/3 的前景与风险 HTTP/3 致力于让互联网对每个人…...

IDEA Project不显示/缺失文件

问题:侧边栏project 模式下缺少部分文件 先点close project 打开项目所在目录,删除目录下的.idea文件夹 重新open project打开这个项目即可解决...

浅谈vue2.0与vue3.0的区别(整理十六点)

目录 1. 实现数据响应式的原理不同 2. 生命周期不同 3. vue 2.0 采用了 option 选项式 API,vue 3.0 采用了 composition 组合式 API 4. 新特性编译宏 5. 父子组件间双向数据绑定 v-model 不同 6. v-for 和 v-if 优先级不同 7. 使用的 diff 算法不同 8. 兄弟组…...

深入理解 MySQL MVCC:多版本并发控制的核心机制

在数据库领域,并发控制是确保多个事务能够正确地并发执行而不破坏数据完整性的关键技术。MySQL 作为广泛使用的关系型数据库管理系统,采用了多版本并发控制(Multi-Version Concurrency Control,MVCC)机制来实现高效的并…...

Qt6编译达梦8数据库驱动插件

一、编译环境 操作系统:deepin V23 Qt版本: Qt 6.7.2 编译器:gcc/g version 12.3.0,cmake 3.28.3 达梦数据库:开发版V8 二、下载达梦QT接口源码 下载链接: https://eco.dameng.com/downlo…...

什么是机器学习力场

机器学习力场(Machine Learning Force Fields, MLFF)方法是一类将机器学习技术应用于分子动力学(Molecular Dynamics, MD)模拟的技术。它通过使用机器学习算法拟合原子之间的相互作用能量和力场,使得在不牺牲精度的前提…...

USB组合设备——串口+鼠标+键盘

文章目录 USB组合设备——串口+鼠标+键盘描述符结构设备描述符配置描述符集合配置描述符接口关联描述符键盘接口描述符鼠标接口描述符类特殊命令CDC 的类特殊命令HID 的类特殊命令接口 2接口3USB组合设备——串口+鼠标+键盘 描述符结构 设备描述符 配置描述符 接口关联描述符…...

python学习——对无人机影像有RGB转换到HSV

问题描述 最近需要对无人机影像中绿色植被信息进行提取,查看相关论文,发现用的比较多的就是HSV色彩转换方法,动手实践一下。 解决思路 #mermaid-svg-5ejGodIusPv6zFVS {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…...

【南方科技大学】CS315 Computer Security 【Lab2 Buffer Overflow】

目录 引言软件要求启动虚拟机环境设置禁用地址空间布局随机化(ASLR)设置编译器标志以禁用安全功能 概述BOF.ctestShellCode.c解释 createBadfile.c 开始利用漏洞在堆栈上查找返回地址 实验2的作业 之前有写过一个 博客,大家可以先看看栈溢出…...

持续集成与持续交付CI/CD

CI/CD 是指持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery) 持续集成(Continuous Integration) 持续集成是一种软件开发实践&…...

C++学习笔记之变量作用域

C学习笔记之变量作用域 https://www.runoob.com/cplusplus/cpp-variable-scope.html 在C程序中,通常有 3 个地方可以声明变量 在函数或者代码块当中,为局部变量在函数的参数定义中,为形式参数在所有函数的外部,为全局变量 作用域…...

解决跨境电商平台账号无法访问的常见问题

跨境电商的迅猛发展,越来越多的卖家选择在全球各大电商平台如亚马逊、eBay等进行商品销售。然而,在实际运营过程中,卖家经常会遇到账号无法访问、应用打不开等问题,导致业务受阻。本文将针对这些问题进行详细分析,并提…...

P2847 [USACO16DEC] Moocast G

P2847 [USACO16DEC] Moocast G [USACO16DEC] Moocast G 题面翻译 Farmer John 的 N N N 头牛 ( 1 ≤ N ≤ 1000 1 \leq N \leq 1000 1≤N≤1000) 为了在他们之间传播信息,想要组织一个"哞哞广播"系统。奶牛们决定去用步话机装备自己而不是在很远的距离…...

针对国内AIGC市场,国内目前出台了那些法律法规?

针对国内AIGC市场,特别是AI生成与合成内容方面,中国已经出台了一系列法律法规来规范其发展和应用。 图片源自“央视新闻” 以下是一些主要的法律法规: 一、国家层面的法律法规 《中华人民共和国网络安全法》 施行时间:2017年6月…...

Windows+Ubuntu双系统下时钟设置

Ubuntu默认把系统时间(硬件时钟)设置为UTC时间,并根据本地时区和夏令时设置自动调整本地时间,这是一种很合理很优雅的处理硬件时钟和本地时钟的模式。而Windows系统是默认情况下把系统时间设置为本地时间,历来独霸电脑…...

一些写leetcode的笔记

标准库中的string类没有实现像C#和Java中string类的split函数&#xff0c;所以想要分割字符串的时候需要我们自己手动实现。但是有了stringstream类就可以很容易的实现&#xff0c;stringstream默认遇到空格、tab、回车换行会停止字节流输出。 #include <sstream> #incl…...

shopify主题开发之template模板解析

在 Shopify 主题开发中&#xff0c;template 文件是核心部分&#xff0c;它们定义了店铺中不同页面的布局和结构。下面将详细介绍 Shopify 主题中的 template 模板。 一、template 文件结构 在 Shopify 主题中&#xff0c;templates 文件夹包含了所有用于生成店铺页面的模板文…...

Zookeeper学习

文章目录 学习第 1 章 Zookeeper 入门1.1 概述Zookeeper工作机制 1.2 特点1.3 数据结构1.4 应用场景统一命名服务统一配置管理统一集群管理服务器动态上下线软负载均衡 1.5 下载zookeeper 第 2 章 Zookeeper 本地安装2.1 本地模式安装安装前准备配置修改操作 Zookeeper本地安装…...

FAT32文件系统详细分析 (格式化SD nandSD卡)

FAT32 文件系统详细分析 (格式化 SD nand/SD 卡) 目录 FAT32 文件系统详细分析 (格式化 SD nand/SD 卡)1. 前言2.格式化 SD nand/SD 卡3.FAT32 文件系统分析3.1 保留区分析3.1.1 BPB(BIOS Parameter Block) 及 BS 区分析3.1.2 FSInfo 结构扇区分析3.1.3 引导扇区剩余扇区3.1.4 …...

通义灵码在Visual Studio上

通义灵码在Visual Studio上不好用&#xff0c;有时候会出现重影&#xff0c;不如原生的自动补全好用&#xff0c;原生的毕竟的根据语法来给出提示的。...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...