With the web constantly evolving, new protocols are introduced to improve performance and connectivity. One of the latest is HTTP/3, the successor to HTTP/2.
HTTP/3 aims to reduce latency and improve security over previous versions. It‘s based on the QUIC protocol and brings some notable benefits:
- Faster page load speeds due to reduced handshake lag
- Multiplexing without head-of-line blocking leading to faster delivery
- Improved security with encryption by default
- Reduced congestion and bottlenecks with smarter congestion algorithms
As HTTP/3 is still new, browser and server support is limited but growing. Big players like Google Chrome and Cloudflare already support it.
If you enabled HTTP/3 on your website, how do you test and confirm if it‘s working? In this comprehensive guide, I‘ll share multiple methods to check if a site supports the HTTP/3 protocol.
Why Test for HTTP/3 Support?
Before jumping into the test methods, let‘s understand why you may want to check for HTTP/3 in the first place:
-
Verify configuration: If you enabled HTTP/3 on your web server or CDN, testing will validate if it works. Often configurations don‘t apply correctly and need tweaking.
-
Check browser support: Not all browsers yet support HTTP/3. Testing will reveal which of your visitor‘s browsers can leverage the benefits.
-
Compare with HTTP/2: Running comparative tests can demonstrate performance gains over HTTP/2. This will help assess if enabling HTTP/3 provided any tangible improvements.
-
Identify issues: Testing can uncover adoption issues and incompatibilities. You can then fine-tune configs or reconsider enablement if needed.
-
Stay updated: As more browsers add HTTP/3 support, regular testing will inform you of new capabilities in accessing your site.
Now let‘s get to the various test methodologies you can adopt.
Using Online Test Tools
A quick way to check for HTTP/3 is using online test tools. They scan the website remotely and detect if HTTP/3 is operational.
Domsignal HTTP/3 Test
Domsignal provides a simple free tool for checking HTTP/3 support.
To use it:
-
Enter your website URL
-
Click on Test Website
The tool will connect to your website using a HTTP/3 enabled client. If successful, it will show a list of QUIC and HTTP/3 versions supported.
If your site doesn‘t support HTTP/3 yet, it will simply failback to HTTP/1.1. The results would clearly show the protocol detected.
Apart from checking if HTTP/3 works on your website, this tool also reveals the specific QUIC and HTTP/3 draft versions supported.
The free account allows up to 100 scans per month. You can run bulk tests on multiple sites by logging in.
HTTP/3 Check
Another handy online checker for HTTP/3 is aptly named HTTP/3 Check. Developed by LightSpeed, it‘s completely free to use with no limits.
To test with HTTP/3 Check:
-
Enter your website URL
-
Click Check Site
Within seconds, it will run a connectivity test and output if HTTP/3 is supported or not. The interface is straightforward and instantly conveys if HTTP/3 works on the submitted website.
Being a fully free tool, HTTP/3 Check is ideal for quick one-off tests. Use it for spot checks across different sites to broadly assess where HTTP/3 is enabled versus disabled in your portfolio.
For large volume testing orScheduled recurrent tests, consider an automated API testing approach.
Using Browsers Supporting HTTP/3
The most reliable way to test actual HTTP/3 support is via direct browser access. With HTTP/3 enabled browsers, you can manually verify if your website serves content over HTTP/3 or falls back to older protocols.
Let‘s see which browsers you can use for HTTP/3 testing today.
Google Chrome
Google has pioneered HTTP/3 support in their Chrome browser behind flags and trials. The latest Google Chrome Canary has full HTTP/3 capability turned on.
To test in Chrome Canary:
-
Download and install Google Chrome Canary
-
Launch Chrome Canary
-
Open your site
-
Check the protocol using DevTools Network panel
You should see "h3" indicating HTTP/3 connectivity:
Chrome Canary automatically enables HTTP/3 support and is an easy way to validate if your website serves HTTP/3 traffic to supporting browsers.
Firefox Nightly
Firefox Nightly is Firefox‘s experimental version that enables HTTP/3 support through configuration flags.
To activate and test HTTP/3 in Firefox Nightly:
-
Download and install Firefox Nightly
-
Type
about:configin the address bar and enablenetwork.http.http3.enabledflag -
Restart Firefox Nightly
-
Access your website
-
Open Developer Tools Network panel and see if protocol says "http/3"
Firefox Nightly allows you to manually test real world HTTP/3 support. But remember it‘s on the bleeding edge so you may face stability issues.
Microsoft Edge
In January 2023, Microsoft announced HTTP/3 support in the Edge Canary channel enabling it by default.
To validate HTTP/3 connectivity in Edge Canary:
-
Download and install Microsoft Edge Canary
-
Open your website in Edge Canary
-
Launch DevTools and see the Network panel protocol indicator
If your website supports HTTP/3, you should see it automatically being used in Edge Canary.
Edge Canary allows early testing as Microsoft adds HTTP/3 into upcoming Edge stable releases.
Command Line Testing
For programmatic or automated tests, you can use command line tools to check HTTP/3 support.
cURL
The venerable cURL supports testing HTTP/3 connectivity using the --http3 flag.
To try it:
-
Download the latest cURL build supporting HTTP/3
-
Run command:
curl --http3 https://example.com
If your site has HTTP/3 enabled, you‘ll see request go over QUIC transport:
curl --http3 https://example.com
* Trying 2606:2800:220:1:248:1893:25c8:1946...
* HTTP/3 stream 0, Quic server, CONNECTED
> GET / HTTP/3
> Host: example.com
> User-Agent: curl/7.83.1-DEV
> Accept: */*
...
< HTTP/3 200
< date: Wed, 18 Jan 2023 08:11:51 GMT
< content-type: text/html
< content-length: 1270
< last-modified: Wed, 18 Jan 2023 07:11:27 GMT
< etag: "63834c77-4fe"
< accept-ranges: bytes
< server: ECS (iad/182F)
< x-cache: HIT
< x-amz-replication-status: COMPLETED
< x-amzn-requestid: 67226b6c-dd35-4b63-948b-9528fec6901b
...
The "HTTP/3 stream 0, Quic server, CONNECTED" indicates HTTP/3 connectivity.
With command line testing, you can automate checks in scripts and pipelines. The textual output makes it easy to parse and integrate results into monitoring systems.
HTTPie
Another command line HTTP client like cURL that can validate HTTP/3 support is HTTPie.
To test with HTTPie:
-
Install HTTPie using
pip install httpieor your OS package manager -
Run test command:
httpie --http3 https://example.com
Check the output for "HTTP/3" protocol indicator:
httpie --http3 https://example.com
HTTP/3 200 OK
date: Wed, 18 Jan 2023 12:34:32 GMT
content-type: text/html
last-modified: Wed, 18 Jan 2023 11:11:32 GMT
etag: "63a2bf6c-16a2"
accept-ranges: bytes
content-length: 5786
server: ECS (lhr/1E5B)
x-cache: HIT
x-amz-replication-status: COMPLETED
HTTPie is another handy command line tool for automated HTTP/3 testing. The JSON output is easy to integrate with scripts and checks.
Using APIs
For large scale or recurring HTTP/3 detection, consider using purpose-built web APIs. These allow automating the discovery process across thousands of sites.
Geekflare HTTP Protocol API
Geekflare offers a free HTTP Protocol API that supports detecting HTTP/3 capability.
To use it:
-
Get API key from https://api.mcngmarketing.com
-
Send a GET request with your website URL:
curl -H "API-Key: YOUR_API_KEY" https://api.mcngmarketing.com/http-protocol/api/v1/test -d "url=https://example.com"
- Check the
protocolfield in response:
{
"protocol": "HTTP/3",
"url": "https://example.com",
"status": "ok"
}
The free API plan allows up to 3000 tests per month and supports batch checks, CSV exports and more.
For large websites, automated API testing is the easiest way to track HTTP/3 support progress.
Client Testing with OpenSSL
OpenSSL is a popular tool used for testing TLS connections and crypto capabilities. Using the s_client module, we can also manually test HTTP/3 support.
To try it:
- Connect to the website using
openssl s_client, enforcing ALPN protocol HTTP/3:
openssl s_client -alpn h3-29 -connect example.com:443
- Check the output for "ALPN, offering h3-29"
...
ALPN, offering h3-29
ALPN, offering http/1.1
...
If the server accepts and replies, your website likely supports HTTP/3 over TLS.
While not fully conclusive, OpenSSL allows protocol level validation useful in debugging.
Examining Traffic with Packet Capture
For a definitive low-level check, examine traffic directly using packet capture. Analyzing packets will clearly show HTTP/3 in action if enabled on your website.
Tools like Wireshark and tcpdump can be used here. The steps would be:
-
Set up packet capture on client using Wireshark/tcpdump
-
Configure to save QUIC protocol packets
-
Visit your website and capture traffic
-
Inspect packets and look for QUIC frames indicating HTTP/3
This method needs deeper understanding of traffic analysis. But gives definitive evidence whether actual HTTP/3 communications occur from client to your server.
Testing Client Support with Feature Policy
An interesting approach for checking client HTTP/3 capability is using Feature Policy. This experimental JavaScript API allows detecting browser features support through code.
To test:
- Try enabling a policy for HTTP/3 in a script:
document.featurePolicy.allowsFeature(‘http://faast.org/http/3‘);
- The return value will indicate if HTTP/3 is supported by that client browser.
While this doesn‘t validate actual site connectivity, it allows quick feature discovery through client-side code.
Monitoring Adoption with Google Trends
While not strictly a test methodology, analyzing HTTP/3 web searches provides some useful trend spotting.
Google Trends charts interest over time for search terms. We can compare HTTP/3 vs HTTP/2 searches to gauge adoption progression.
As per the chart, HTTP/3 is clearly gaining more interest over time as adoption ramps up. But HTTP/2 still dominates for now.
Monitoring search trends can provide perspective on real world HTTP/3 enablement and client usage.
Key Takeaways and Next Steps
Hopefully this post gave you a comprehensive overview of how to test for HTTP/3 support today.
Some key highlights:
-
Online tools like Domsignal and HTTP/3 Check offer quick checks from the browser.
-
Leading browsers like Chrome, Firefox and Edge have experimental HTTP/3 capability through early channel versions.
-
Command line tools cURL and HTTPie allow automated scripted validation through CLI flags.
-
Dedicated APIs like the Geekflare HTTP Protocol API facilitates large scale bulk discovery.
-
Packet captures and traffic analysis gives the most definitive low-level proof.
-
Feature policy in JavaScript can detect client HTTP/3 capability.
-
Tracking web search trends provides perspective on real-world adoption progression.
If you enabled HTTP/3 recently, try multiple test methods to uncover issues before broader roll out. Share your website assessment results publicly to grow the HTTP/3 supported sites list.
Monitor adoption periodically as more clients add support and retest your configuration upgrades.
The web is rapidly adopting HTTP/3 as the next evolution in web connectivity. With multiple ways to validate it now, embrace this new protocol for faster and more robust websites.