Glossary
DNS SRV record
An SRV record identifies where a particular service runs: it carries a target hostname, a port number, a priority and a weight, published under a name that encodes the service and protocol. It is how clients of protocols such as SIP, XMPP and Minecraft find a server without the port being hard-coded. The web does not use it — browsers have never implemented SRV lookups for HTTP — which is why a website's DNS normally contains none.
How the record is addressed
The name takes the form `_service._protocol.name`, for example `_sip._tcp.example.com`. The underscores are deliberate: they cannot appear in an ordinary hostname, so the namespace cannot collide.
The record's data holds four fields in order: priority, weight, port and target hostname.
Priority works like MX preference — lower is tried first. Weight distributes traffic between records sharing a priority, proportionally.
The target must be a real hostname with address records, and must not be a CNAME. A target of `.` explicitly declares that the service is not available at this domain.
What SRV adds over an A record
The port. An A record says where a machine is; an SRV record says where a service is, and a service on a non-standard port cannot be expressed any other way in DNS.
Weighted distribution. Multiple targets at one priority receive traffic in proportion to their weights, which A records cannot express.
Explicit unavailability. A target of `.` states that the domain does not offer the service, which is different from simply having no record.
The cost is that the client must know to look. A protocol that does not specify SRV lookups will never perform one.
Why websites do not use SRV
HTTP clients resolve a hostname and connect on the port in the URL, defaulting to 443 or 80. No browser performs an SRV lookup for a web request, and the proposals to add one were not adopted.
The functionality SRV would have provided for the web is now arriving through HTTPS and SVCB resource records, which browsers do support and which carry service parameters such as protocol support and encrypted client hello keys.
So an SRV record present in a website's zone is usually left over from a service the domain also hosts — a chat system, a voice service, a game server — rather than anything the site uses.
Finding one is informative rather than a problem: it tells you the domain does more than serve web pages.
How to query one
`dig _sip._tcp.example.com SRV +short` prints priority, weight, port and target for each record.
The service and protocol labels must match exactly what the client protocol specifies, and a record published under the wrong label is invisible to the client that needs it.
Verify the target resolves and that something is listening on the stated port. DNS will happily publish a record pointing at nothing.
Check that the target is not a CNAME, which is prohibited and breaks some clients while working in others.
Frequently asked questions
- Do web browsers use SRV records?
- No. Browsers resolve the hostname and use the port from the URL. Service parameters for the web are carried by HTTPS and SVCB records instead.
- What does an SRV target of a single dot mean?
- It explicitly declares that the service is not available at this domain, which is different from publishing no record at all.
- How do priority and weight differ?
- Priority is an ordered fallback, lowest first. Weight distributes traffic proportionally between records that share the same priority.
Sources
Related
VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.
Scan a website