| copyright |
|
||
|---|---|---|---|
| lastupdated | 2025-07-04 | ||
| keywords | |||
| subcollection | cis |
{{site.data.keyword.attribute-definition-list}}
{: #http-concepts}
HTTP/2 and HTTP/3 accelerate page load times are included in all {{site.data.keyword.cis_full}} plans. HTTP/2 is enabled by default and requires an SSL certificate at the {{site.data.keyword.cis_short_notm}} edge network. Domains on Trial plans can't disable HTTP/2. {: shortdesc}
Browsers and web servers automatically negotiate the highest protocol available, so HTTP/3 takes precedence over HTTP/2. {{site.data.keyword.cis_short_notm}} uses HTTP/1.x only for communication between the origin web server and {{site.data.keyword.cis_short_notm}} 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=h2means that the connection used HTTP/2http=http2+quic/99indicates HTTP/3http=http/1.xindicates 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, {{site.data.keyword.cis_short_notm}} 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. {: note}
{: #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.
{: #chrome-client}
To connect to your website over HTTP/3 using Chrome, first download and install the latest Chrome Canary build{: external}. Then, enable HTTP/3 support in Chrome Canary using the --enable-quic and --quic-version=h3-23 command-line arguments{: external}.
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{: external} and follow the instructions to enable HTTP/3 support{: external}.
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{: pre}
Then, run an HTTP/3 cURL with the --http3 command-line flag:
./curl -I https://blog.cloudflare.com/ --http3{: pre}
Confirm that HTTP/3 appears in the response and that there are no error messages.