1. 首页

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

书籍推荐

作者:Sergio De Simone
链接:https://www.infoq.cn/article/D2QIvuLXXW9RiIR8wWMW

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

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

链接:https://www.javascriptc.com/3751.html

« 从考拉前端团队演进看前端技术的变化与取舍
Electron 加入 OpenJS 基金会:JavaScript 框架找到了“新家”»
Flutter 中文教程资源

相关推荐

QR code