Hostname
In computer networking, a hostname (archaically nodename[1]) is a label that is assigned to a device connected to a computer network and that is used to identify the device in various forms of electronic communication, such as the World Wide Web. Hostnames may be simple names consisting of a single word or phrase, or they may be structured.
Internet hostnames may have appended the name of a Domain Name System[2] (DNS) domain, separated from the host-specific label by a period ("dot"). In the latter form, a hostname is also called a domain name. If the domain name is completely specified, including a top-level domain of the Internet, then the hostname is said to be a fully qualified domain name (FQDN). Hostnames that include DNS domains are often stored in the Domain Name System together with the IP addresses of the host they represent for the purpose of mapping the hostname to an address, or the reverse process.
Internet hostnames
In the Internet, a hostname is a domain name assigned to a host computer. This is usually a combination of the host's local name with its parent domain's name. For example, en.wikipedia.org consists of a local hostname (en) and the domain name wikipedia.org. This kind of hostname is translated into an IP address via the local hosts file, or the Domain Name System (DNS) resolver. It is possible for a single host computer to have several hostnames; but generally the operating system of the host prefers to have one hostname that the host uses for itself.
Any domain name can also be a hostname, as long as the restrictions mentioned below are followed. So, for example, both en.wikipedia.org and wikipedia.org are hostnames because they both have IP addresses assigned to them. A hostname may be a domain name, if it is properly organized into the domain name system. A domain name may be a hostname if it has been assigned to an Internet host and associated with the host's IP address.
Syntax
Hostnames are composed of a sequence of labels concatenated with dots. For example, "en.wikipedia.org" is a hostname. Each label must be from 1 to 63 characters long.[2] The entire hostname, including the delimiting dots, has a maximum of 253 ASCII characters.[3]
The Internet standards (Requests for Comments) for protocols specify that labels may contain only the ASCII letters a through z (in a case-insensitive manner), the digits 0 through 9, and the hyphen-minus character ('-'). The original specification of hostnames in RFC 952 disallowed labels from starting with a digit or with a hyphen character, and could not end with a hyphen. However, a subsequent specification (RFC 1123) permitted hostname labels to start with digits. No other symbols, punctuation characters, or white space are permitted. Internationalized domain names are stored in the Domain Name System as ASCII strings using Punycode transcription.[4]
While a hostname may not contain other characters, such as the underscore character (_), other DNS names may contain the underscore.[5][6] This restriction was lifted by RFC 2181. Systems such as DomainKeys and service records use the underscore as a means to assure that their special character is not confused with hostnames. For example, _http._sctp.www.example.com specifies a service pointer for an SCTP-capable webserver host (www) in the domain example.com. Notwithstanding the standard, Chrome, Firefox, Internet Explorer, Edge and Safari allow underscores in hostnames, although cookies in IE do not work correctly if any part of the hostname contains an underscore character.[7]
However, it is valid to attempt to resolve a hostname that consists of an underscore. E.g. _.example.com. This is used by RFC 7816 to reduce the amount of information that is made available to intermediate DNS servers during an iterative query.[8] The Query Name Minimisation feature is enabled by default in BIND 9.14.0.[9]
The hostname en.wikipedia.org is composed of the DNS labels en (hostname or leaf domain), wikipedia (second-level domain) and org (top-level domain). Labels such as 2600 and 3abc may be used in hostnames, but -hi-,_hi_ and *hi* are invalid.
A hostname is considered to be a fully qualified domain name (FQDN) when all labels up to and including the top-level domain name (TLD) are specified. The hostname en.wikipedia.org terminates with the top-level domain org and is thus fully qualified. Depending on the operating system DNS software implementation, an unqualified hostname may be automatically combined with a default domain name configured into the system, in order to complete the fully qualified domain name. As an example, a student at MIT may be able to send mail to "joe@csail" and have it automatically qualified by the mail system to be sent to joe
General guidelines on choosing a good hostname are outlined in RFC 1178.
Example
saturn and jupiter may be the hostnames of two devices connected to a network named PC. Within PC, the devices are addressed by their hostnames. The domain names of the devices are saturn.PC and jupiter.PC, respectively. If PC is registered as a second-level domain name in the Internet, e.g., as PC.net, the hosts may be addressed by the fully qualified domain names saturn.PC.net and jupiter.PC.net.
References
- System V/AT Runtime System. Microport.
- RFC 1034, Section 3.1 "Name space specifications and terminology"
- Chen, Raymond (12 April 2012). "What is the real maximum length of a DNS name?". Microsoft devblog. Archived from the original (html) on 18 May 2019. Retrieved 31 July 2019.
- RFC 3492, Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA), A. Costello, The Internet Society (March 2003)
- "Underscores in DNS". Retrieved 2011-07-20.
- "Common DNS Operational and Configuration Errors". Retrieved 2018-08-21.
- Internet Explorer Cookie Internals (FAQ)
- DNS Query Name Minimisation to Improve Privacy. doi:10.17487/RFC7816. RFC 7816.
- "QNAME Minimization and Your Privacy". Retrieved 2019-07-17.