写点什么

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

评论

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

hive的数据存储格式

大数据技术指南

hive 4月日更

GitHub已爆火的Java突击手册,全面详细对标P7岗!真的很全面

比伯

Java 编程 架构 程序人生 计算机

架构实战营 - 模块 2- 作业

泄矢的呼啦圈

架构实战营

手撕83K STAR的Axios设计思想,并进行能力增强

梁龙先森

源码分析 大前端 axios

ARTS - week 6

steve_lee

关于列表转字符串这个过程的曲折

ベ布小禅

4月日更

自定义Hadoop的输入格式

小舰

4月日更

Vuex整洁架构之道

devpoint

vuex vue架构 mapGetters mapState mapActions

安卓开发基础面试题,分享一点面试小经验,含BATJM大厂

欢喜学安卓

android 程序员 面试 移动开发

华仔架构实战营 - 作业 - 模块2

曲元洪

架构实战营

吃透Nginx编译安装过程

书旅

nginx

计算机原理学习笔记 Day2

穿过生命散发芬芳

计算机原理 4月日更

园区网的网关部署在接入层还是汇聚层 面试官与求职者之间谈话

艺博东

网关 交换机 网络配置

M2-task

Focused

翻译:《实用的Python编程》08_03_Debugging

codists

Python

【签约计划】调查采访能力考核成绩公布

InfoQ写作社区官方

签约计划 热门活动

Nginx新增模块more_clear_headers问题记录

风翱

nginx 4月日更

并发容器与并发控制 - JUC

学Java关注我

Java 编程 程序员 架构 计算机

Docker 环境清理的常用方法

xcbeyond

Docker 4月日更

HBase的rowKey设计技巧

五分钟学大数据

HBase 4月日更

Python OpenCV 图片高斯模糊

梦想橡皮擦

Python OpenCV 4月日更

安卓开发实战讲解!从新手到Flutter架构师,一篇就够!快来收藏!

欢喜学安卓

android 程序员 面试 移动开发

PI的一种简写。

山@支

深入剖析 | JVM-Sandbox核心源码

九叔(高翔龙)

JVM 中间件 类加载 Sandbox 类隔离

如何高效率的工作

程序员海军

工作效率 提升效率

继续探究:一文理清JVM和GC(下)

比伯

Java 架构 程序人生 计算机 技术宅

Markdown使用语法

Geek_6370d5

markdown语法

再谈日更公众号

彭宏豪95

写作 感悟 微信公众号 4月日更

Dubbo 学习笔记(二) Spring Boot 整合 Dubbo

U2647

Spring Boot dubbo 4月日更

阿里P8架构师分享私用Java学习资料(含视频和项目源码以及面试题)

北游学Java

Java 数据库 分布式 微服务

ARTS - week 5

steve_lee

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