It’s been over a year (or two) since three major browsers enabled HTTP/3 using the QUIC protocol over UDP. Chrome and Edge enabled HTTP/3 by default in April 2020 and Firefox followed “shortly after” in April 2021. I am not sure - does Safari in macOS Monterey 12.5, released July 2022, enable HTTP/3 by default?
Below are the benefits of HTTP/3, summarized from Cloudflare’s What is HTTP/3?. For a lot more technical detail, check out this explainer by Robin Marx and David Bombal on YouTube:
- improves performance when switching networks,
- decreases effect of packet loss due to “head-of-line blocking” where packets are held up because the first packet is pending,
- faster connection establishment since QUIC allows TLS version negotiation to happen simultaneously during the first handshake round-trip,
- and in fact, zero round-trip time (0-RTT) skipping the handshake altogether for previously connected servers,
- more comprehensive encryption of transport-level headers and header compression.
Not all web servers support HTTP/3, and not all networks (firewalls) allow UDP!
You can test Firefox, Chrome or Edge by visiting these sites - note that have to refresh your browser at least once for the browser to switch to HTTP/3:
- Cloudflare’s QUIC test page - you should get “your browser used HTTP/3”
- NGINX’s QUIC+HTTP/3 support page - you should get “Congratulations! You're connected over QUIC.”
If not, then you could try to clear the browser cache and / or open the page in a private window and / or restart the browser.
Each browser will differ slightly, but all can check the HTTP protocol version used under Developer Tools > Network tab and add the column called “Protocol” which may show “h2” or “h3” as a shorthand.
about:networking will list the HTTP version detected for recently visited sites / hostnames. Aside: Strangely, no matter what I do, YouTube will not turn on HTTP/3 when Firefox is detected. Perhaps this is in response to a GCP issue that triggered an infinite loop in Firefox earlier in 2022 (see Retrospective and Technical Details on the recent Firefox Outage)
Safari on macOS and iPadOS
Apple’s Safari remains the outlier, delaying the widespread adoption of HTTP/3 in all major browsers. Sometime in 2020, both macOS 11 Big Sur and iOS 14 introduced HTTP/3 as an experimental feature... which, alas, stubbornly remains ’til this day.
On my mac with macOS Monterey 12.4.x, performing either test above indicates Safari is steadfastly using HTTP/2. Turning on the Develop > Experimental Features > HTTP/3 does not resolve this.
On my mac with macOS Monterey 12.5, performing the Cloudflare test above indicates Safari is now HTTP/3 enabled. And, strangely, on the Develop > Experimental Features > HTTP/3 remains off (unchecked)! However, the NGINX test did not succeed unless the setting is turned on. Strange (hence my uncertainty in the first paragraph).
On iPadOS 15.5 / 15.6, this setting can be manually enabled under System Preferences > Safari > Advanced...