The best way to explain the differences between these different items—that are related but different—is to break it down by example. Think of networks like a tree:
- There is a trunk that separates into major branches.
- Branches which in turn separate into smaller branches.
- Smaller branches eventually leading to individual leaves.
The “trunk” and “branches” are “domains” and “subdomains” and the leaves are individual devices, like computers. So let’s start there.
A “computer name” is strictly a local convention: I have a computer named jakegould
. This computer name is simply the name I have assigned my local machine. Nobody outside of my LAN will know this computer name; this is strictly a local setting.
A “hostname” (aka “nodename”) is a network identifier: If I wanted to publicly advertise my local computer to others, I would have to attach a “hostname” to the IP address of my computer. The “hostname” doesn’t really have to have anything to do with the computer name, but many times administrators like to use the same name to make things easier to understand. Also a “hostname” doesn’t always mean the computer is exposed to the Internet; it’s just an easy way to let others on your network where/what your computer is. As Wikipedia explains; emphasis is mine:
In computer networking, a hostname (archaically nodename) 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, e-mail or Usenet.
A fully qualified domain name (FQDN) is just that; a fully qualified domain name: Now that might seem confusing but you need to think of it this way: It just means in the great scheme of things, what is the actual “path” to get to a computer. So let’s say I have my computer named jakegould
and it has a hostname on my LAN that is jakegould
. Within the context of my LAN, that jakegould
is my computer name, and is my “hostname” and can possibly be considered my “fully qualified domain name” depending on my LAN architecture. Meaning let’s say my office LAN has other nodes in it like, first_floor
and second_floor
and my “hostname” of jakegould
is on the second_floor
network. Well, if that were the case, then my LAN-based “fully qualified domain name” would be jakegould.second_floor
and that is it. But let’s say I worked at a big company named “big_company.com” and my computer were somehow exposed to the world. Then in that case, my WAN-based “fully qualified domain name” could be jakegould.second_floor.big_company.com
or maybe even just jakegould.big_company.com
if the network administrator didn’t want to be hassled with the “second_floor” designation. Again, as Wikipedia explains; emphasis is mine:
A fully qualified domain name (FQDN), sometimes also referred to as an
absolute domain name, is a domain name that specifies its exact
location in the tree hierarchy of the Domain Name System (DNS). It
specifies all domain levels, including the top-level domain and the
root zone. A fully qualified domain name is distinguished by its lack
of ambiguity: it can be interpreted only in one way.
The “www” in some website names is a “hostname” designation that is historical in nature: Basically, back in the 1990s when the world wide web was still in it’s infancy, networks had many different services attached to them. And mainly in an academic context. So there would be a place like whattsamattau.edu
and that school would have FTP services on ftp.whattsamattau.edu
, email on mail.whattsamattau.edu
and so on… So when the world wide web came along, they would just have placed the web server on www.whattsamattau.edu
. Nowadays, everyone—and seemingly everything in the world—has a website. And many people just register domains just for the web service. So the historic convention of www
is discarded in many cases. Many people have websites without www
but will still have accommodations to redirect www
traffic to the main, non-www
hostname. But technically speaking, www
can still be considered a hostname.
BONUS (Never Asked But Mentioned/Implied): What is a “subdomain” in the great scheme of things: A subdomain is basically just a child of a parent domain/hostname. So in my example of jakegould.big_company.com
the jakegould
can be considered a subdomain of big_company.com
and big_company
in that can be considered to be the “domain” with .com
being the top-level domain (TLD). Yet again, as Wikipedia explains; emphasis is mine:
In the Domain Name System (DNS) hierarchy, a subdomain is a domain
that is part of a larger domain.
Now after drafting all of this, it can be confusing. Many computer names are hostnames are fully-qualified domain names and in some cases they could be subdomains. It’s all a matter of context. And looking at articles online the words “domain,” “host” and “node” are used fairly loose and fast all over the place. So in my opinion, many uses of these terms are synonymous.
Which also helps to explain your confusion in item number 2:
If “mail” in mail.google.com
and “developers” in
developers.google.com
are called subdomains why is en
in
en.wikipedia.org
called hostname? What is the difference
between host name and subdomain?
The en.wikipedia.org
is a subdomain and a hostname. The en
in the en.wikipedia.org
is a subdomain of the domain name wikipedia.org
. And en.wikipedia.org
is in itself a hostname since en.wikipedia.org
has an IP address connected to it and thus a computer connected to that IP address as well. Meaning the en
itself is semantically considered a subdomain, but it is also a hostname because there is a host (computer) connected to the IP address connected to en.wikipedia.org
. So knowing that mail.google.com
and developers.google.com
are hostnames as well which are both subdomains of google.com
.
To possibly make things clearer think of it like this; let’s use the non-existant subdomain fakename.wikipedia.org
as an example:
- The
org
in fakename.wikipedia.org
is a top-level domain (TLD). As a top-level domain it does not resolve to an IP address. Thus it is not a hostname. It is simply a naming convention.
- The
wikipedia.org
in fakename.wikipedia.org
is a domain name and it has the potential to be a hostname as well if it is connected to an IP address and resolves to a computer when one goes to wikipedia.org
.
- The
fakename
in fakename.wikipedia.org
is a subdomain name since it is a child domain of wikipedia.org
in the context of the domain name itself. It can be a hostname if it connected to an IP address and resolves to a computer when one goes to fakename.wikipedia.org
.
If you ping fakename.wikipedia.org
you are attempting to ping the fakename
subdomain of wikipedia.org
. If that ping dies—which it most likely will since it is fake—that means that the host is down or it does not exist. If it dies with an IP address connected to it, that would mean the hostname fakename.wikipedia.org
is down. If the ping dies with 100% no IP address connected to it, them it would mean that the subdomain fakename.wikipedia.org
is an invalid hostname.
Yes, this can all be confusing. But what it boils down to is the difference between what a domain/subdomain is in the context of DNS entries versus what domain/subdomain is in the context of having a host/computer connected to it.
So if this all started with your curiosity about www
, that is a historic hostname/nodename/subdomain that is not really used as a convention as much anymore but is still so commonly used that many sites have some accommodations in place to “catch” requests to www
and redirect them to the main hostname of a website.
Best Answer
Before the World Wide Web, there was still an Internet, and it was used for a variety of things: telnet, email, gopher, FTP, etc. At that time, it was traditional to assign domain name aliases to servers for common functions. So, smtp.example.com would be example.com's outbound email SMTP server, ftp.example.com would be example.com's FTP server, etc.
When the Web came along (early 1990's), it was just yet another application / protocol -- it wasn't necessarily envisioned at that time that it would be come the most popular thing to use the Internet for, next to email. So an organization's web server was assigned a domain name alias of "www." like any other service would have typically been assigned.
Over time many sites started dropping the "www.", because URLs are after all often typed in by people and yes it's 4 more characters than really necessary. But, "www." still lingers today and it's not likely to ever completely go away.