Search code examples
gonginxhttp3

Does http3/quic fall back to tls 1.2 if the browser doesn't support quic?


Even after lots of googling, I'm pretty naive about quic. I'm specifically looking into lucasclemente/go-quic.

Should quic servers use 443? If so, will it fallback to http2 & tls 1.2? I'm speaking generally. Not for that specific go package. But if you have specifics for that go package, that would be great.

Yes, I realize quic is still young and not necessary yet. I'm simply curious and couldn't find that specific answer. Thanks!


Solution

  • Quic servers can use any port they want; 443 is often used, but this is not necessary at all. Note we're talking about UDP ports, not TCP ports.

    A QUIC server cannot fallback to HTTP2 or TLS 1.2, because if the client sends a QUIC request, the server can only respond with a QUIC response. If the browser doesn't support QUIC, it will not send a QUIC request in the first place, so there is no issue at all.

    I think you are assuming that a QUIC server runs (or can run) on the same port as HTTPS and therefore has to generate either a QUIC or an HTTPS response; this is not the case, as QUIC is running over UDP, not over TCP (like HTTP and HTTPS do). TCP ports and UDP ports are different address spaces, so one can run an HTTPS server on tcp port 443 and simultaneously run another QUIC server on udp port 443.