HTTP/2 似乎只是昙花一现的技术。 该批准标准于 2015 年高调发布。 这是自1999年以来互联网通用语言的首次重大变化。
然后,突然间,一切安静了。 由几所知名大学的研究人员创建和维护的HTTP/2 仪表板于 2016 年底沉寂。 自此以后,收养统计数据再没有更新。 没有人再谈论这件事了。 它的15分钟名声显然已经过去了。
然而,它在幕后仍然不断获得关注。 HTTP/2 正在缓慢但稳步地进入应用程序堆栈。
作为一个依赖于应用(特别是在 HTTP 变体上运行的应用)的组织,我们密切关注 HTTP/2 的采用。 我们从 2018 年开始在应用服务状况研究中跟踪 HTTP/2 网关服务。 2018 年,40% 的受访者表示他们已经部署了 HTTP/2 网关。 2019 年,这一比例下降至 33%。 在公共云中,19% 的受访者对其某些应用使用 HTTP/2 网关。 它已连续两年跻身未来一年将部署的前五大应用服务之列,2019 年有 25% 的受访者计划部署。
HTTP/2 仪表板指出,截至 2016 年 11 月 16 日,已有超过 250,000 个域名宣布支持 HTTP/2。 根据对此类信息进行追踪的 Netcraft 的数据,互联网上拥有超过 18 亿个站点。 W3Techs 测量显示,33% 的网站都使用了 HTTP/2 ,如果我们将互联网限制在前 100 万个网站,那么这与 2016 年记录的 250,000 个域名相当。 考虑到这一限制,采用 HTTP/2 的网站的数字似乎都落在 25-35% 左右。
如果您认为这还不够快,请考虑一下 IPv6 已经存在很长时间了,截至2019 年 1 月,仅覆盖了 13.4% 的网站。
现在 HTTP/3 即将推出,其底层会发生更为显著的变化。 如果您不熟悉 HTTP/3,您可能需要查看IETF 接受的提案,将 Google 的 HTTP-over-QUIC 重新命名为 HTTP/3。 就像 SPDY 成为 HTTP/2 的基础一样, QUIC是 HTTP/3 的基础。
但是如果您认为 HTTP/2 的变化是巨大的,那您还没有看到什么。
您会看到,QUIC(以及 HTTP/3)基于 UDP。 这与依赖传统可靠的 TCP 相比,是一个相当大的变化。 与 HTTP/2 不同,HTTP/2 屈服并取消了加密要求(这是一个没有实际意义的问题,因为浏览器构建者决定他们无论如何只支持加密的 HTTP/2),而 HTTP/3 将需要加密。
虽然这无疑是一个有效甚至是崇高的意图,但其影响将对基础设施和架构产生深远的影响——尤其是对服务提供商而言。 加密在堆栈中的移动几乎涵盖了所有内容,再加上从 TCP 到 UDP 的移动,改变了一切。 大多数安全系统不习惯仔细检查 UDP 承载的内容。 大多数使用 UDP 的流量都是实用程序和基础设施服务,例如 DNS 和 NTP。 在 HTTP/3 的新世界中,未能仔细检查有效负载可能会很危险。 毕竟,传递的内容很可能是恶意的。 这可能是机器人。 这可能是一次袭击。 它可以是任何东西。
加密要求也使得“中间盒”检查流量变得更加困难。 这种检查对于维护应用和数据安全至关重要。 传输层协议的改变也可能带来问题。 安全服务通常基于应用(大部分为 HTTP)流量通过 TCP 传输的前提构建。 TCP 是一种可靠的、面向连接的协议。 对 UDP 的改变可能会对安全基础设施解析和分析应用流量的能力产生重大影响,因为 UDP 是一种基于数据报(数据包)的协议,并且可能不可靠。
HTTP/3 的采用可能会很慢,而 HTTP/2 将继续缓慢但稳定地传播。 毕竟,大多数网络仍然依赖于旧版的 HTTP/1.x。 HTTP/2 超越 HTTP/1.x 还需要一段时间,而且这么快就迁移整个基础设施和应用堆栈的可能性很低。
对安全基础设施的影响也可能会使采用速度保持缓慢,直到安全服务提供商能够适应为止。 零信任举措纳入了来自客户端的更多背景信息(如设备标识和声誉),随着安全性转向更全面的应用保护策略,它最终可能被证明是一种福音。 零信任技术的成熟和采用或许可以为应对 HTTP/3 的安全挑战提供答案。 随着安全服务越来越依赖于实时识别不良行为者,它降低了无法轻易仔细检查有效载荷是否存在恶意活动的风险。
HTTP/3 预计要到 2019 年夏天才会发布。 鉴于 HTTP/2 的采用缓慢但稳定,以及 HTTP/3 带来的安全挑战,后者在可预见的未来可能会面临漫长而艰难的采用之路。