What is the difference between zone and domain and domain name in DNS terminology?
The question is clear: How are DNS zones and DNS domains and DNS domain names different?
Disclaimer: Originally, this question was asked on StackOverflow (link) by someone else, but it got closed as it is off-topic there. There is an answer to it as well, but some people (including myself) didn't find it clear, and someone said they would post the question here on ServerFault, the one which I couldn't find. So I'm posting it myself here, and I want to give my own answer to it too, which I believe might be less confusing to some future readers.
Solution 1:
RFC 8499 deals with DNS terminology and should be the go to reference for anything technical on the subject. It collates definitions from various RFCs, put them in context, and tries to resolve inconsistencies.
It follows then:
Domain name: An ordered list of one or more labels.
Label: An ordered list of zero or more octets that makes up a portion of a domain name. Using graph theory, a label identifies one node in a portion of the graph of all possible domain names.
Subdomain: "A domain is a subdomain of another domain if it is contained within that domain. This relationship can be tested by seeing if the subdomain's name ends with the containing domain's name." (Quoted from [RFC1034], Section 3.1) For example, in the host name "nnn.mmm.example.com", both "mmm.example.com" and "nnn.mmm.example.com" are subdomains of "example.com". Note that the comparisons here are done on whole labels; that is, "ooo.example.com" is not a subdomain of "oo.example.com".
Zone: "Authoritative information is organized into units called ZONEs, and these zones can be automatically distributed to the name servers which provide redundant service for the data in a zone." (Quoted from [RFC1034], Section 2.4)
"Domain" and "Domain name" are often synonyms, it just depends on the context and how they are used. You can find as well FQDN.
In summary, "most often", a domain or domain name is a single name/record, so you are pointing to one specific node in the DNS tree, where instead "zone" means all the content at or below a specific node in the DNS tree.