RFC 9460 / START HERE
SVCB and HTTPS records, before the details
SVCB means Service Binding. HTTPS is a DNS record type here, distinct from an HTTPS web request.
A normal address lookup tells a client where a host can be reached. RFC 9460 lets DNS describe alternative service endpoints together with each endpoint’s protocol, port and other connection parameters. The client can learn this before opening the connection.
Why it exists
Priority zero delegates discovery to another DNS name; a positive priority describes an endpoint. A client checks required parameters before choosing an alternative, keeps each record’s settings together and still authenticates the original HTTPS service.
A familiar example
For example, a browser visiting https://example.com can query its HTTPS DNS records, learn about edge.example.net on port 8443 with HTTP/3 support, and resolve that target’s addresses. The chapters show the bytes, aliases, compatibility checks, protocol hints and failure rules. All examples are inert and fictional.
Helpful background
You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.
What you’ll learn next
Begin with chapter one, or choose a topic.
- Discover more than an addressA and AAAA records supply addresses. SVCB and HTTPS records bind service endpoints to connection instructions.→
- Read the RDATA bytesTwo priority octets and an uncompressed DNS name precede sorted key-length-value parameters.→
- Follow aliases within one serviceAliasMode delegates service discovery. It does not alias every record type at the name.→
- Choose compatible bound recordsA low priority is useful only if the client can use the entire record.→
- Use protocol and address hintsALPN hints select possible transports; address hints can start a connection while normal address queries continue.→
- Keep origin security and fallback rulesAlternative connection coordinates do not change the HTTPS identity the client must authenticate.→
This introduction explains RFC 9460 (2023). Read the original RFC ↗