写点什么

基于 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:157648

评论

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

我删库跑路失败了

程序员鱼皮

Java c++ Python Linux 服务器

DataWorks赋能企业一站式数据开发治理能力

阿里云大数据AI技术

腾讯二面:Linux操作系统里一个进程最多可以创建多少个线程?

白亦杨

吹水、面试、进阶齐飞!Github霸榜的阿里分布式设计实录也太香了

Java架构师迁哥

DolphinDB插件开发深度解析

DolphinDB

数据库 大数据 时序数据库 插件开发 DolphinDB

我给我讲GIT,并成功把我得罪了

加百利

git 7月日更

union 分页/group/join 复杂查询(.net core/framework)

Spook

sql ORM

我还是没有忍住,于是乎我开通了lua语言学习专栏!

李阿柯

lua 专栏

统一缓存帝国 - 实战 Spring Cache

悟空聊架构

缓存 passjava 悟空聊架构 7月日更 Spring Cache

并发王者课-铂金9:互通有无-Exchanger如何完成线程间的数据交换

MetaThoughts

Java 多线程 并发

拖延背后的故事

卢卡多多

拖延症 7月日更

Go 学习笔记之 数组

架构精进之路

Go 语言 7月日更

百度交易中台之商品推广流程构建以及实现

百度Geek说

中台 软件架构 电商 交易

什么?C语言也能try...catch!

实力程序员

Redisson 分布式锁源码 06:公平锁排队加锁

程序员小航

Java redis 分布式锁 redisson

如何利用极狐GitLab CI提高生产力?

极狐GitLab

ci

替换 Spring Cloud,使用基于 Cloud Native 的服务治理

火山引擎开发者社区

云原生 后端 Service Mesh 服务网格

使用tar 命令进行文件的归档和压缩

学神来啦

云计算 Linux 运维 linux运维

底层技术支撑智慧出行,汽车智能化发展下区块链大放异彩

旺链科技

区块链产业

研发管理和项目管理有哪些痛点?

万事ONES

研发管理 ONES 项目管理工具

多媒体技术(一)之图形图像

轻口味

android 音视频 计算机图形学 图形图像处理

Python 绑定:从 Python 调用 C 或 C++

华为云开发者联盟

c c++ Python 函数 Python 绑定

在数据库中如何查询表的创建时间?

华为云开发者联盟

数据库 日志 视图 GaussDB(DWS) 查找对象

RTC为何这么火?

anyRTC开发者

音视频 WebRTC RTC 实时通讯

4轮技术面+1轮HR面,成功拿到腾讯40k*16的Offer ,详解面试流程和真题解析

Java 程序员 架构 面试

网安行业这几个熟悉又陌生的名词,啥帽子都清楚啦?

郑州埃文科技

互联网公司的「敏捷开发」流程是怎么样的?每个职位的角色和分工是什么?

万事ONES

华为云薛浩:媒体业务进入全面云化时代,云原生成为必然选择

华为云开发者联盟

云原生 媒体 音视频 华为云

银行业智能运维的探索与实践

云智慧AIOps社区

银行数字化转型 智能运维

小马哥的Java项目训练营-毕业总结

姑射仙人

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