- HTTP/3 and QUIC Overview: HTTP/3 has been in development since 2016 and QUIC since 2013. Now standardized, they're supported in 95% of users' browsers, used in 32% of HTTP requests to Cloudflare, and 35% of websites advertise support. A new version of HTTP is being rolled out with over 1/3 of web traffic expected to migrate.
- Current Status: Neither QUIC nor HTTP/3 is in major language standard libraries. Curl recently gained support but it's experimental. Popular servers like Nginx and Apache have only experimental support. Android's HTTP library has no support. It's hard to find popular open-source tools that fully support HTTP/3.
- Why HTTP/3 Matters: HTTP/3 offers increased resilience to unreliable networks, zero RTT connection initialization, reduced traffic and latency, connection migration support, and improved congestion handling. It also has benefits like HTTP header compression and bidirectional request/response streaming beyond load balancers and browsers.
- The Two-Tier Web: There are two types of web traffic - hyperscale (major browsers and some mobile apps) and long-tail (backend API clients, etc.). The hyperscale web is controlled by a few key stakeholders and can move quickly to adopt new technologies. The long-tail is fragmented and depends on open-source implementations.
- OpenSSL + QUIC Issue: OpenSSL's approach to QUIC has created a schism in the ecosystem. BoringSSL shipped a usable API in 2018, but OpenSSL took time to implement an incompatible approach. This makes it difficult for major projects to ship built-in QUIC support.
- What Happens Next: There are concerns about the unequal distribution of HTTP/3 benefits. The long-tail web may gain a disadvantage, tooling could stratify, and it could become difficult to build tools for non-hyperscale clients. There is hope that the OpenSSL QUIC API schism will be resolved to enable QUIC support in more environments.
- Related Content: Other blog posts on topics like ERR_PROXY_CONNECTION_FAILED errors, designing API errors, and the registration of YAML media types.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。