大模型“四虎”出山,亮相 4 月 QCon 北京。 了解详情
写点什么

基于 QUIC 协议的 HTTP/3 正式发布

  • 2022-06-08
  • 本文字数:761 字

    阅读完需:约 2 分钟

基于QUIC协议的HTTP/3正式发布

6 月 6 日,IETF QUIC 和 HTTP 工作组成员 Robin Marx 宣布,经过 5 年的努力,HTTP/3 被标准化为 RFC 9114,这是 HTTP 超文本传输协议的第三个主要版本。同时,HTTP/2 也更新为 RFC 9113标准,HTTP/1.1 和通用 HTTP 语义和缓存概念在 RFC 9110-9112 中也得到了加强。

 

HTTP/3 采用了谷歌多年探索的基于 UDP 的 QUIC 协议,原名叫 HTTP-over-QUIC,在 2018 年被 IETF 批准更名为 HTTP/3。目前,Cloudflare、Google Chrome、Firefox Nightly 均表示支持 HTTP/3。

 

HTTP/1.1 使用空格分隔的文本字段来传递 HTTP 消息。虽然这些交换是人类可读的,但使用空格进行消息格式化会导致解析复杂性和对变体行为的过度容忍。HTTP/1.1 不包含多路复用层,因此经常使用多个 TCP 连接来并行处理请求。然而,这对拥塞控制和网络效率有负面影响。

 

到了HTTP/2,引入了二进制帧和多路复用层,在不修改传输层的情况下改善了延迟。但是,由于 HTTP/2 多路复用的并行特性对 TCP 的丢失恢复机制不可见,因此丢失或重新排序的数据包会导致所有活动事务都经历停顿,无论该事务是否直接受到丢失数据包的影响。

 

为了解决 HTTP/2 中存在的队头阻塞问题,HTTP/3 不再基于 TCP 建立,而是基于 Google 提出基于 UDP 实现的开源协议 QUIC,使用 stream 进一步扩展了 HTTP/2 的多路复用,并在阻塞控制、头部压缩等方面做了提升。

 

QUIC 是一种通用传输协议,与 TCP 非常相似,除了 HTTP 和网页加载之外,它还可以并且将用于更多场景,例如 DNS、SSH、SMB、RTP 等都可以在 QUIC 上运行。

 

那么,QUIC 究竟是如何改进 TCP 的呢?根据 Marx 介绍,主要可归结为四个方面:QUIC 与 TLS 深度集成、QUIC 支持多个独立的字节流、QUIC 使用连接 ID、QUIC 使用帧(frame)。为了更容易部署, QUIC 运行在 UDP 协议之上(大多数网络设备也支持),默认情况下几乎完全加密并使用灵活的帧机制。

 

2022-06-08 18:156931

评论

发布
暂无评论
发现更多内容

开源demo| 智慧协同让企业更便利

anyRTC开发者

音视频 智慧协同 开源demo 远程协助 远程勘查

如何避免产品Backlog的这七个常见错误

爱吃鱼的小雨

Scrum 敏捷开发 研发管理 需求管理 内容合集

作业1

施正威

MySQL性能测试之insert&delete【FunTester框架】

FunTester

MySQL 性能测试 测试框架 FunTester delete

底层逻辑:变化背后的不变

石云升

读书笔记 28天写作 12月日更

MySQL锁的分析实战

卢卡多多

28天写作 MySQL 数据库 锁分析 签约计划第二季 12月日更

消费医疗门诊的数字化运营

boshi

随笔杂谈

WAVE SUMMIT+2021为开发者准备的“小心思”,你get到了吗

科技热闻

大湾区的“科创土壤学”

脑极体

架构训练营-模块一作业

伊静西蒙

WePack —— 助力企业渐进式 DevOps 转型

CODING DevOps

统一管理 WePack 制品管理 研发构建产物 安全管控

和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器

不脱发的程序猿

少儿编程 智能硬件 温度传感器 创客开发 Arduino

华为云联合HarmonyOS重磅发布智联生活行业加速器

华为云开发者联盟

华为云 智联生活

国产分布式数据库StarDB核心技术大揭秘 一:内核分解之数据分片

京东科技开发者

数据库

手把手教你实现网页端社交应用中的@人功能:技术原理、代码示例等

JackJiang

即时通讯 IM web socket

五分钟,让你明白MySQL是怎么选择索引《死磕MySQL系列 六》

咔咔

MySQL MySQL高级 索引选择而

Android C++系列:Linux网络(一)网络模型

轻口味

android 28天写作 12月日更

库存管理系统到底有什么作用?

低代码小观

CRM 企业管理系统 ERP 库存 CRM系统

国产分布式数据库StarDB核心技术大揭秘二:智能运维管控

京东科技开发者

数据库

Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)

不脱发的程序猿

Python PyQt GUI设计 上位机 调整组件布局比例

浅谈MySQL中的游标

麦洛

MySQL 游标

AfterShip APP 项目数据驱动的演进

AfterShip

数据库 数据 数据驱动

基于云的技术架构设计实践-第4篇

hackstoic

运维 云原生 签约计划第二季 业务运维

Camtasia混音教程

淋雨

Camtasia

2022年,RPA的5大发展趋势

金小K

区块链 AI RPA 机器人流程自动化 人工智能「

和12岁小同志搞创客开发:手撕代码,做一款密室自动门

不脱发的程序猿

少儿编程 传感器 智能硬件 创客开发 Arduino

年后跑路第一战,从Java泛型学起!

麦洛

Java Java泛型

新思科技推动DevSecOps落地,帮助企业走出“安全孤岛”

InfoQ_434670063458

DevSecOps 新思科技 软件安全

以容器的方式运行极狐GitLab Runner

极狐GitLab

Docker runner 极狐GitLab

ReactiveNetwork库时如何实现网络状态监听的

Changing Lin

12月日更

你知道敏捷团队的迭代目标达成率该是多少吗?

爱吃鱼的小雨

Scrum 敏捷开发 研发管理 内容合集 迭代管理

基于QUIC协议的HTTP/3正式发布_文化 & 方法_褚杏娟_InfoQ精选文章