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/2http=http2+quic/99
indicates HTTP/3http=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.