Internet
Fact-checked

At EasyTechJunkie, we're committed to delivering accurate, trustworthy information. Our expert-authored content is rigorously fact-checked and sourced from credible authorities. Discover how we uphold the highest standards in providing you with reliable knowledge.

Learn more...

What is a Canonical Name?

S.A. Keel
S.A. Keel

A canonical name is a term used in computer networking to identify a computer's actual name within the Internet naming system. It is most often used in reference to a resource record in the domain name system (DNS), which is responsible for translating obscure Internet protocol (IP) addresses into more recognizable names. In this case, the resource record in the DNS is called CNAME and allows for another name, or alias, to point to the real name of the computer.

When a computer is looking for a website, for example, it checks the name typed into the web browser against special servers that host the DNS records. If the name being looked up in the DNS records is specified in a CNAME record, it receives the canonical name, and then performs a second lookup against the canonical name to resolve the IP address of the host computer. A fairly common example is when a single computer is hosting multiple services, such as a website and a file transfer protocol (FTP) service for transferring data.

A canonical name identifies computers based on IP addresses.
A canonical name identifies computers based on IP addresses.

In a web browser, a user may type in www.example.com. During the DNS lookup, it encounters the canonical name in a CNAME record that points to a server named foo.example.com. Another user may then be using an FTP client and typing in the address of the FTP server at ftp.example.com. The DNS lookup encounters another CNAME entry that also points to foo.example.com, the exact same host machine that is being used for the website. In this case, though, two different names were given to the DNS, which led to the canonical name of the server.

A canonical tag is a small piece of code embedded into a webpage that can help search engines deal with multiple versions of the same page.
A canonical tag is a small piece of code embedded into a webpage that can help search engines deal with multiple versions of the same page.

In either of the above cases, the DNS then performs a second lookup for the canonical name to resolve its IP address on the network. The IP address is then sent back to the computer making the web or FTP request so that the data packets may start flowing. Of course, this opens up several possibilities for network administrators to use the DNS CNAME records in other ways. Another common technique used by website hosting services allows for a single host computer to run several web servers, each with a different name.

Due to the delicate nature of the DNS, however, there are a number of dangers to implementing canonical names with CNAME records, and so there are restrictions to its use. The most dangerous is the potential for creating an infinite loop during a name's lookup, and so no CNAME record should point to another CNAME record. If, for example, two CNAME records are used, where www.example.com points to the canonical name foo.example.com and then foo.example.com points back to www.example.com, the lookup will endlessly check one name against the other.

Discuss this Article

Post your comments
Login:
Forgot password?
Register:
    • A canonical name identifies computers based on IP addresses.
      By: iinspiration
      A canonical name identifies computers based on IP addresses.
    • A canonical tag is a small piece of code embedded into a webpage that can help search engines deal with multiple versions of the same page.
      By: Dmitry Strizhakov
      A canonical tag is a small piece of code embedded into a webpage that can help search engines deal with multiple versions of the same page.