Question
How to check if http/3 powered with Nginx/QUIC is working on a website?
Answer
Note: Some content may still be downloaded via http/http2 due to:
• The content is downloaded externally (e.g. the website provides URI's to resources located outside of the actual domain's virtualhost)
• Depending on browser's preferences
- Open Dev tools
- Select the "Network" tab, right click on "Name" and place a check mark on the "Protocol" entry:
- Then without closing Dev Tools, open the website where http3 check should be performed and click on the first response:
The "Alt-Svc" header means that nginx is serving http3 and lets the browser know the page can be accessed via http3. Even though, the first query will always(until the headers are cached) be http/http2:
- Refresh the page and check the results:
Note: Meanwhile for the website with invalid(outdated or containing a different subject name) SSL certificate http3 will work on Firefox, it won't be working on Chrome
-
Connect to the environment with installed Docker via SSH
Note: It has to be an external server/device. Otherwise, curl-http3 will bypass the firewall rules if querying the domain on the same server where docker is launched, hence the results of the check would be false-positive.
- Run the following command substituting example.com with actual domain name:
# docker run ymuski/curl-http3 curl --http3-only -ksSLI https://example.com
Example of successful response:
CONFIG_TEXT: HTTP/3 200
server: nginx
date: Tue, 28 May 2024 16:36:45 GMT
content-type: text/html
content-length: 1653
x-accel-version: 0.01
last-modified: Thu, 16 May 2024 10:16:15 GMT
etag: "675-6188f867a0a22"
accept-ranges: bytes
alt-svc: h3=":443"; ma=86400
x-powered-by: PleskLinIf the response is received, then http3 is working on domain, otherwise this curl version would not be able to fetch data over normal 443/tcp connection and will result in with timeout after 300 seconds.
Note: Checks might fail due to website resources(css/js/etc.) being loaded from 3rd-party sources.
Navigate to the online checker URL and specify the domain in question.In case http3 is working as expected, it looks like:
Comments
0 comments
Please sign in to leave a comment.