Background
IETF RFC 9460 defines SVCB and HTTPS DNS resource record (RR) which can be used to upgrade connections to HTTPS and also specify the application-layer protocols that are supported (ALPN).
On September 7, 2021 Firefox 92 was released which added support for the HTTPS RR:
Firefox will automatically upgrade an HTTP request to HTTPS when a usable HTTPS RR is available. It will also use information provided in an HTTPS RR to optimize the process of establishing HTTPS connections—this is conceptually similar to using the Alt-Svc header. (Firefox bug 1721132).
Test
Trying to test this out with www.google.com.
First, I tried to see if it had an HTTPS RR:
$ dig 8.8.8.8 www.google.com HTTPS
...
;; ANSWER SECTION:
www.google.com. 3358 IN HTTPS 1 . alpn="h2,h3"
Here we see that the HTTPS RR does exist and we notice that HTTP/3 is a supported protocol denoted by the h3 value of the alpn parameter.
Next, tried to clear my operating system's DNS cache. For example, on windows, I ran ipconfig /flushdns.
Also ran this right before pressing enter on the address bar because Firefox and Chrome (or some other process) seems to try to reach google.com a lot on one of the systems I was testing with.
Opened up Firefox v120 and attempted to visit: www.google.com.
Problem
Firefox v120, although stated in the v92 release that it will use a HTTPS RR to upgrade and optimise, doesn't seem to ask for it.
Wireshark shows that only A and AAAA RR are queried:
And Firefox can be seen initially opening an HTTP/2 connection before switching to HTTP/3 because of the Alt-Svc header:
Actually, it doesn't appear like any (Chrome, IceCat, Edge, etc.) desktop application, on multiple websites, ask for the HTTPS RR at all because when I filter for dns.qry.type == "HTTPS" or dns.qry.type == 65 on WireShark I don't get any hits. I only get hits when I explicitly do a lookup via dig.
Question
Why does it appear that the HTTPS RR is never queried?
To try to understand the issue, I'm also asking these leading questions which might help find the root cause:
- Is this a feature that is disabled by default?
- Does this depend on the host setup (other than setting up the
HTTPSRR)? No resource I've read indicated that additional steps are needed. - Whose responsibility is it to ask for the
HTTPSRR? Is it the browser or operating system? So far I've tried it with updated versions of Guix System 1.4, Windows 10, and Windows 11 and all the browsers I mentioned above. - Does this depend on hardware?


