IBM Cloud Docs
HTTP/2 and HTTP/3 protocols

HTTP/2 and HTTP/3 protocols

HTTP/2 and HTTP/3 accelerate page load times are included in all IBM Cloud® Internet Services plans. HTTP/2 is enabled by default and requires an SSL certificate at the CIS edge network. Domains on Trial plans can't disable HTTP/2.

Browsers and web servers automatically negotiate the highest protocol available, so HTTP/3 takes precedence over HTTP/2. CIS uses HTTP/1.x only for communication between the origin web server and CIS edge.

To determine the protocol used for your connection, enter example.com/cdn-cgi/trace in a web browser or HTTP client, replacing example.com with your domain. The http= value in the results indicates the protocol:

  • http=h2 means that the connection used HTTP/2
  • http=http2+quic/99 indicates HTTP/3
  • http=http/1.x indicates HTTP/1.x

HTTP/2

HTTP/2 improves page load times through:

Connection multiplexing
Retrieves multiple resources over a single network connection. Responses are sent as resources become available, helping to avoid delays in page rendering.
HTTP header compression
Compresses headers and simplifies HTTP requests to avoid resending headers.
HTTP/2 server push
To improve page load speed, CIS provides additional resources for a client to cache without waiting for additional requests.

Not all browsers support HTTP/2 and use HTTP 1.x instead. Connection multiplexing is handled on a per-domain basis.

HTTP/3

HTTP/3 enables fast, reliable, and secure connections. By default, HTTP/3 encrypts internet transport by using QUIC, a protocol developed by Google. You can enable HTTP/3 through the Cloudflare Network application. The following methods show you how to experiment with HTTP/3.

Using Google Chrome as your HTTP/3 client

To connect to your website over HTTP/3 using Chrome, first download and install the latest Chrome Canary build. Then, enable HTTP/3 support in Chrome Canary using the --enable-quic and --quic-version=h3-23 command-line arguments.

After Chrome starts, enter your domain in the address bar. To verify the protocol version, open Chrome’s Developer Tools and go to the Network tab. If http2+quic/99 doesn’t appear in the Protocol column, try reloading the page.

Using cURL

The cURL command-line tool supports HTTP/3. Download the most recent version and follow the instructions to enable HTTP/3 support.

For macOS, use Homebrew to install cURL with HTTP/3 support:

brew install --HEAD -s https://raw.githubusercontent.com/cloudflare/homebrew-cloudflare/master/curl.rb

Then, run an HTTP/3 cURL with the --http3 command-line flag:

./curl -I https://blog.cloudflare.com/ --http3

Confirm that HTTP/3 appears in the response and that there are no error messages.