HTTP/3 - A Game changer for web performance?

HTTP/3 has arrived, and it can have a significant impact on how people interact with your website.

In general, the more resources your site necessitates, the greater the performance boost you'll see.

Key difference HTTP/1 vs HTTP/2 vs HTTP/3

HTTP/1 - One File at a Time

HTTP/2 - Partial Multiplexing

HTTP/3 - True Multiplexing and QUIC

HTTP/1

If a web page requires 10 javascript/css files, the web browser must first retrieve those ten files before the page can be fully loaded. The web browser in HTTP/1.1 world can only download one file at a time via a TCP connection to the server.

HTTP/2

Multiplexing was a significant improvement in HTTP/2. By switching to multiplexed file downloads, it resolved application-level head-of-line blocking issues. In other words, a client could request all 10 files at once and begin downloading them all concurrently over a single TCP connection.

Unfortunately, HTTP/2 still suffers from head-of-line blocking, albeit at a lower layer. TCP becomes the weakest link in the chain. Any data stream that loses a packet must wait for that packet to be retransmitted before proceeding.

HTTP/3

The primary distinction between HTTP/2 and HTTP/3 is the transport protocol used. Instead of TCP, HTTP/3 utilises a new protocol known as QUIC.

Now what is QUIC?

A general-purpose transport protocol designed to address HTTP/2's head-of-line blocking issues with TCP. It enables the creation of a series of stateful streams (similar to TCP) over UDP.

The QUIC transport protocol includes stream multiplexing and per-stream flow control, which is similar to the HTTP/2 framing layer. QUIC has the ability to improve HTTP performance when compared to a TCP mapping by providing reliability at the stream level and congestion control across the entire connection.

Why is HTTP/3 so Much Faster?

  • Because HTTP/3 is truly multiplexed, there is no Head-of-line blocking anywhere on the stack.
  • HTTP/3 also supports O-RTT QUIC connections, which reduces the number of round trips.

Can we use HTTP/3 today?

  • LiteSpeed Web Server (and OpenLiteSpeed) supports HTTP/3 draft 32.
  • The Caddy web server has experimental support for HTTP/3 as of 2.0 beta.
  • Nginx support for HTTP/3 is being worked on. A technology preview of nginx with HTTP/3 support was released in June 2020.
  • Cloudflare distributes a patch for Nginx that integrates the quiche HTTP/3 library into it.

Google and Facebook, for instance, already provide their traffic using HTTP/3. For current browsers, Google.com is exclusively provided via HTTP/3.

As the HTTP/3 gets closer to completion, it may be time to consider enabling it for your website.