You must’ve heard the term domain thrown around online, whether in the form of a “domain name” or an “Internet domain”. And for a good reason; it is one of the crucial aspects of the Internet, and has brought immeasurable convenience for decades. It all started on March 15, 1985, when Symbolics Inc., a Massachusetts-based computer systems company, registered the very first one. The practice took off, and, in mid-2020, the Internet had over 365 million domain registrations. With such a large number, it’s obviously something substantial, so let’s answer, “what is a domain?”
A domain name, frequently called only domain, is a string that defines an independent technical and administrative unit on the Internet. This data contains information about the unit’s identification, authority, autonomy, and degree of control within the DNS (Domain Name System). DNS is a term for a hierarchical system that helps users navigate the Internet. The types of data differ – some have the address of an online resource while others of service (FTP or e-mail, for example). Similarly, some can contain the address and name of the DNS server while others hold a collection of security extension specifications or DNSSEC (Domain Name System Security Extensions).
The most frequent association for a domain is a network address e.g., the “location” of a website. Because the Internet is a colossal network of computers, each of them must be identifiable to ensure smooth, accurate, and secure communication. To achieve this, the network assigns each computer a unique address, consisting of a series of numbers called the IP (Internet Protocol) address. Take a look at this example of an IP address: 18.104.22.168.
It’s hard to remember, right? Also, unless it’s static, it changes regularly. Plus, the files that the website consists of don’t have to be stored on a single server, and often aren’t with cloud web hosting. Furthermore, changing the webserver means that every visitor, you included, must discover and memorize the new IP address. That is why we invented domain names, which replace a string of numbers with a string of text.
How do domains work?
When you enter “www.example.com” into the address bar of your Internet browser, it immediately sends a request to the Domain Name System (DNS), which consists of a vast network of servers. These servers look for name servers (called “DNS lookup”) corresponding to the domain name, which are computers run by the web hosting provider. The name servers have the address of a computer that contains the files that make up your website, hence the name webserver.
Finally, the webserver summons the requested assets (HTML pages, images, videos, audio, etc.). It then sends them to the browser, which displays them. The route of the request and the IP address of the webserver are often cached, e.g., temporarily saved. That way, if someone repeats the request, the route is already known, making the procedure shorter, and the website loading time faster.
Who registers and manages domains?
Internet Corporation for Assigned Names and Numbers (ICANN) is responsible for the management of the top-level domains and the architecture of the domain name system on the Internet. It authorizes domain name registrars, the companies from whom you can purchase a domain name or get one for free. The Internet Assigned Numbers Authority (IANA) keeps track of all TLDs in the DNS root zone database, which we’ll explain below.
Domains have a strict hierarchy separated into labels, going from right to left, and a dot (.) divides each label. Here’s how the hierarchy of a domain name looks:
1. Top-level domain (TLD)
TLD is at the highest level within the DNS and forms the aforementioned DNS root zone. They’re located on the far right of every FQDN (Fully Qualified Domain Name) and available in plenty of different extensions:
Generic top-level domain (gTLD)
There are 7 leading generic top-level domains based on the number of registrations: com, .net, and .org (public) and .edu, .mil, .gov, and .int (restricted). IANA announced that, in 2016, gTLD passed the threshold of 1000+ unique extensions available for registration.
Country-code top-level domain (ccTLD)
These are reserved for websites registered in a specific country, dependent territory, and sovereign state, as long as it has a country code. As of June 2020, there are 316 ccTLDs. They always consist of 2 letters, and any TLD with 2 letters can only be a ccTLD. The most-registered ones are .uk (United Kingdom), .de (Germany), .cn (China), and .tk (Tokelau). The last one is dominating convincingly because it’s the only free ccTLD and TLD in general.
Sponsored top-level domain (sTLD)
These TLD types are reserved for a community or a specific sort of applicant. Their financial backer, e.g., sponsor, is an organization that represents that community or applicant type. Some examples include .museum, .post, .aero, .coop, .mobi, .pro, .travel, .xxx, .jobs, etc.
2. Second-level domain and beyond
The second-level domain (SLD) is the extension immediately to the left of TLD. Some people think it only refers to the “website name” because “example” is the SLD in “example.com”. However, SLD is “co” in “example.co.uk”. Although most get to the third, fourth, and in very rare cases, fifth-level, the current theoretical limit is 127 levels.
Subdomains refer to “subordinate” or “child” domains of the higher domain level. It refers to the level in front of whichever level represents the “name” you assigned to your website. For example, in “blog.example.com”, the “blog” is a subdomain. The subdomain can also refer to a host server e.g, a hostname, such as ftp.example.com, email.example.com, or www.example.com.
Syntax and length
FQDN refers to the complete address (domain name) of a unit on the Internet, must not exceed 253 ASCII characters represented as text. Speaking of ASCII, the only character set allowed in DNS must be based on it. Therefore, FQDN doesn’t support native scripts and alphabets in many scripts worldwide. To combat that, ICANN came up with an Internationalized domain name (IDNA) system. It maps unsupported Unicode strings within API (application user interface). It then translates them into valid ASCII using an encoding known as Punycode.