Networking & DNS

HTTP/2 and HTTP/3 (QUIC) explained: what they change and how to check them

What HTTP/2 and HTTP/3 improve over HTTP/1.1, why HTTP/3 runs on UDP, and how to check which version your site really serves with a browser or curl.

IntermediateAll websites2 min read

HTTP is the language browsers and web servers speak. HTTP/2 and HTTP/3 send the same pages but over a more efficient connection, which matters most on mobile networks and for visitors far from the server. This guide explains the difference and how to confirm what your site uses.

Before you start

  • Your site must use HTTPS: browsers only use HTTP/2 and HTTP/3 over TLS. See redirect to HTTPS.
  • Chrome, Edge or Firefox, and optionally a recent curl.

HTTP/1.1 limits

HTTP/1.1 handles one request at a time per connection, so browsers open about six connections per site and queue the rest. Headers are repeated as plain text on every request.

What HTTP/2 changes

  • Multiplexing: many requests share one TCP connection at the same time.
  • Header compression (HPACK) removes repeated headers.
  • Binary framing makes parsing faster.

The catch: it still runs on TCP. One lost packet stalls every stream on that connection (head-of-line blocking).

What HTTP/3 and QUIC change

HTTP/3 runs on QUIC, a transport built on UDP port 443 (see TCP vs UDP).

  • Lost packets only delay the stream they belong to.
  • TLS 1.3 is built in, so a new connection needs one round trip, and repeat visits can use zero.
  • Connections survive network changes, for example Wi-Fi to mobile data.

MdmHost servers use LiteSpeed, which supports HTTP/3 out of the box; details in LiteSpeed HTTP/3 and QUIC explained.

Check the version in your browser

  1. Open your site, press F12 and go to the Network tab.
  2. Right-click a column header and enable Protocol.
  3. Reload. h2 means HTTP/2, h3 means HTTP/3. The first visit often shows h2; the server then advertises HTTP/3 and the next reload switches to h3.

Check with curl

curl -sI --http2 https://example.com | head -1
curl -sI https://example.com | grep -i alt-svc

An alt-svc: h3=":443" header means the server offers HTTP/3. With a curl built with HTTP/3 support:

curl -sI --http3 https://example.com | head -1

Troubleshooting

  • Never shows h3: UDP 443 may be blocked by a firewall on a VPS or by your own network. Open 443/udp on self-managed servers.
  • Behind Cloudflare: the browser speaks HTTP/3 to Cloudflare, which is enabled in Cloudflare's Speed → Optimization → Protocol Optimization settings, independent of your origin.
  • Shows http/1.1: the site is not on HTTPS or a proxy in between downgrades it.

Next steps

Was this guide helpful?

Still stuck?

Ask MdmHost AI for a quick answer, or open a ticket and our team will take a look. We are here 24/7.