写点什么

HTTP/3 的现状:全世界使用服务接近 30 万

2020 年 1 月 30 日

HTTP/3的现状:全世界使用服务接近30万

HTTP/3 是下一代跨 Web 的网络通信协议,这意味着它会部分取代 HTTP/1 和 HTTP/2。离2月在苏黎世召开的下一届QUIC工作组会议还有一个月的时间,回顾一下 HTTP/3 的承诺和当前客户端/服务器的支持情况可能会非常有助益。


HTTP/3 承诺让互联网连接更快、更稳定和更安全。它的前身为“HTTP over QUIC”,其目标是让 HTTP 在谷歌自己的传输层协议 QUIC 上运行,随后,它被提议为IETF,目前它是Internet草案。在 2018 年 10 月,IETF HTTP & QUIC 工作组联席主席 Mark Nottingham提议将HTTP over QUIC重命名为HTTP/3,以澄清其本质特点以及与 QUIC 的独立性。


QUIC 是 HTTP/3 的关键元素,因为它是主要特性的基础。QUIC 构建在 UDP 之上,致力于解决使用 TCP 协议的主要问题,比如,连接建立的延迟以及在包丢失的情况下多个流的处理。TCP 延迟问题源于其拥塞控制算法的需求,该算法要求在拥塞发生之前会缓慢地开始(slow start)评估可以发送多少流量。在 HTTP/1.0 中,每个 TCP 请求/响应交换都会被分配一个新的连接,因此会导致启动缓慢的问题。


从此之后,规避 TCP 启动慢的尝试一直是 HTTP 协议改善的核心。


HTTP/1.1引入了“keep-alive”连接,允许在同一个 TCP 连接上对多个请求-响应交换进行序列化,因此不需要为每个请求都设置新的连接建立阶段。然而,HTTP/1.1 的 keep-alive 连接不支持同时发送多个请求,随着 Web 页面日益复杂,这导致了新的瓶颈。


HTTP/2源自现在已被弃用的SPDY协议,它引入了在同一连接中嵌入第一等流的概念。这使得在保证多路复用的同时实现请求-响应交换成为可能,但是它有一个主要的缺陷:当包丢失增加时,HTTP/2的性能会由于TCP处理包重传的方式(HOL阻塞)而下降。这种影响可能非常严重,因为所有流都共享相同的连接。当数据包丢失超过一个给定的阈值时,HTTP/1的多连接甚至会比HTTP/2运行地更高效。


如前文所述,QUIC 提供了对流的第一等支持,这解决了 HTTP/2 中连接初始化缓慢的问题。另外,它可以对它们进行单独处理,从而解决了由于包丢失而导致的性能问题。采用 QUIC 作为传输层协议是 HTTP/3 与 HTTP/2 最大的区别。由于 QUIC 原生实现了大量与流管理相关的特性,这些特性是 HTTP/2 规范的组成部分,因此可以从 HTTP/3 中删除它们。此外,由于HTTP/2 HPACK报头压缩严重依赖TCP向端点传递包的顺序,所以需要采用 QUIC 来创建新的 HTTP 报头压缩方案,即QPACK


最近几年来,谷歌一直在使用QUIC提供自己的服务,包括搜索、YouTube 等,而且在 Chrome 中也支持它。曾经有一段时间,在与支持 QUIC 的谷歌服务通信时,Chrome 是唯一的手段。最近,Mozilla在Firefox 72中也增加了对HTTP/3的支持,尽管仍处于试验阶段。命令行工具curl在 7.66.0 版本中也增加了对 HTTP/3 的支持以及许多其他特性。在服务器端,LightSpeedNginx支持 HTTP/3。


在云方面,除了谷歌之外,Cloudflare 几个月前宣布已经为部分客户启用了对HTTP/3的初步支持。Cloudflare 也是Quiche背后的公司,Quiche 是一个支持HTTP/3客户端和服务器实现的开源Rust库


如前所述,HTTP/3 仍然正在由 IETF 进行定义,还没有确定正式的发布日期。与此同时,在世界范围内,HTTP/3 的使用正在增长,全世界使用它的服务接近300,000个。谷歌仍然是部署 HTTP/3 的最重要组织,但是其他几个组织也占据了重要的份额。InfoQ 将继续及时报道 HTTP/3,让我们的读者了解互联网的最新变革。


原文链接:


The Status of HTTP/3


2020 年 1 月 30 日 10:003779

评论

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

深入灵魂的考验,每行注释都是灵魂的单例模式,源码+实例降临

小Q

Java 学习 架构 面试 设计模式

干货分享!用心满满:面试前必知必会的二分查找及其变种

比伯

Java 编程 架构 面试 计算机

全球熵ETV系统APP开发|全球熵ETV软件开发

开發I852946OIIO

系统开发

架构师训练营第 1 期 第 11 周作业

李循律

极客大学架构师训练营

苦修月余,斩获bigo、腾讯offer,面经奉上!

艾小仙

Java 腾讯 面试 腾讯大厂

美女面试官问我:说说你对序列化的理解

田维常

序列化

5G多输入多输出技术,到底是个啥东东?

华为云开发者社区

5G 输入 输出

蕃茄田宋姝梦:科技赋能时代,儿童在线艺术教育的思考

ZEGO即构

话题讨论 | 用好VSCode这13款插件和8个快捷键,工作效率提升10倍

程序员柠檬

话题讨论

redis系统深度学习四:主节点自动化故障恢复——哨兵

北游学Java

数据库 redis 大数据 故障

架构师训练营第三周学习总结

Geek_xq

JVM垃圾回收?全面详细安排!

程序员的时光

JVM GC

分布式搜索引擎Elasticsearch的架构分析

vivo互联网技术

elasticsearch 分布式 分布式搜索引擎

软件开发中的防呆方法总结

张明云

DevOps 软件开发 技术架构 防呆 模式

架构探索:事务处理一

李海明

话题讨论 | Vue凭什么成为2020的一匹黑马?

黑马腾云

话题讨论

《图解数据结构》.pdf

田维常

数据结构

鹅厂大佬亲身经历证明,一周上线百万级并发系统

Java架构师迁哥

研发管理:敏捷研发下周报的价值

云原生实验室

云原生 敏捷 研发管理 周报

anyRTC 联合 vInClass 打造在线教育上课模式

anyRTC开发者

音视频 WebRTC 在线教育 RTC

DeFi质押挖矿APP系统开发|DeFi质押挖矿软件开发

开發I852946OIIO

系统开发

我摊牌了,大厂面试Linux就这5个问题

艾小仙

Java Linux 面试 大厂

福利 | 这些网站有免费代理IP!

前嗅大数据

大数据 代理IP 网站反爬 免费代理ip 封ip

一次产品影响地图的探索之旅

Bruce Talk

敏捷 Agile Product Owner 影响地图

为什么阿里人能够快速成长?看完他们Java架构进化笔记,我秒懂!

Java架构追梦

Java 学习 架构 面试 成长笔记

智慧公安大屏可视化决策系统搭建

t13823115967

智慧公安 智慧大屏可视化

系统稳定性建设实践总结

架构精进之路

系统架构 自我思考 系统稳定性

智慧公安大数据分析平台开发解决方案,情报研判系统建设

WX13823153201

情报研判系统建设

K8s 将弃用 Docker;TypeScript 超越 C++ 成第四大语言

京东科技开发者

程序人生

大型团队实践敏捷开发管理的挑战与应对

万事ONES

敏捷开发 研发管理 敏捷开发管理 开发管理

vivo官方商城架构演进之路

vivo互联网技术

中台 架构演进 服务化

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

HTTP/3的现状:全世界使用服务接近30万-InfoQ