限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

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

评论

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

大数据培训:Flink全链路延迟的测量方式及原理

@零度

flink 大数据开发

后端新手如何从 0 到 1 打造一款 Apache APISIX 插件

API7.ai 技术团队

后端 插件 Apache APISIX APISIX 网关

Android 12 “致命”崩溃解决之路

阿里巴巴终端技术

android 崩溃分析 客户端 UC内核

【C语言】一篇速通常量变量

謓泽

编程语言 C语言 2月月更 常量变量

启发式智能任务调度的探索

鲸品堂

算法 函数 任务调度

开源demo| 你画我猜——让你的生活更有趣

anyRTC开发者

音视频 互动白板 开源demo 你画我猜 社交娱乐

HTTP缓存协议实战

vivo互联网技术

缓存 浏览器 服务器 HTTP

前端技术分享:页面性能优化问题复盘

有道技术团队

前端

java培训:JVM 锁的优化和逃逸分析

@零度

JVM JAVA开发

国内首款! 亚信科技数据库AntDB亮相中国信通院性能测试工具发布会

亚信AntDB数据库

Kubernetes集群统一日志管理方案(Elasticsearch+Filebeat+Kibana+Metricbeat)搭建教程

山河已无恙

Kubernetes 2月月更

文本检测算法新思路:基于区域重组的文本检测

华为云开发者联盟

文本检测 区域重组 文本检测算法 PixelLink TextSnake

CRM重构项目

Mars

【OH干货】如何向OpenHarmony社区提交代码

拓维信息

OpenHarmony

第十二节:Springboot多环境配置

入门小站

spring-boot

微服务从代码到k8s部署应有尽有系列(二、网关)

万俊峰Kevin

微服务 RPC web开发 go-zero Go 语言

在线YAML转JSON工具

入门小站

工具

设计模式【15】--从审批流中学习责任链模式

秦怀杂货店

Java 设计模式

如何选择充血模型和贫血模型

蜜糖的代码注释

DDD 领域建模 2月月更

翟佳:从技术工程师到「网红」开源创业者

腾源会

开源 开源公司

X6在数栈指标管理中的应用

袋鼠云数栈

Java 大数据 前端

2022 年值得关注的 十大 DevOps 最佳实践

飞算JavaAI开发助手

【高并发】深入解析Callable接口

冰河

Java 并发编程 多线程 高并发 异步编程

移动开发平台WorkPlus | 快速实现企业移动应用集成化

BeeWorks

mark: centos 镜像下载地址

webrtc developer

Linux centos

Java&Go高性能队列之channel性能测试

FunTester

Go 性能测试 队列 channel FunTester

如何通过测试用例保障交付质量

阿里云云效

阿里云 云原生 开发测试 测试用例 研发

架构训练营模块二作业

苍狼

作业 模块二 架构训练营5期

与Karmada一起航行:海量节点的多集群管理

华为云原生团队

容器 云原生 k8s k8s多集群管理 多云管理

web前端培训: Vue3面试考点分享

@零度

前端开发 Vue3

3种基于深度学习的有监督关系抽取方法

华为云开发者联盟

文本检测 区域重组 文本检测算法 PixelLink TextSnake

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