Why does Chrome resolve websitename.localhost as localhost?

5,480

Solution 1

From the Wikipedia entry for .localhost (TLD):

As a top-level domain, the name has traditionally been defined statically in host DNS implementations with address records (A and AAAA) pointing to the same loopback addresses.

However, as you have found, it would appear that it's just Chrome and later versions of Opera (possibly the WebKit browsers, so might include Safari also) that appear to do this.

Solution 2

From https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

There's a proposal to add the .localhost domain as a new standard, which will make lives of developers way easier. It would mean site.localhost and everything at *.localhost would automatically translate to 127.0.0.1, without /etc/hosts or dnsmasq workarounds.

Refer the RFC here.

Share:
5,480

Related videos on Youtube

Cave Johnson
Author by

Cave Johnson

Updated on September 18, 2022

Comments

  • Cave Johnson
    Cave Johnson over 1 year

    I've been using .localhost as a TLD for locally hosted sites that I am working on. Usually when I start a new site I create an entry in the apache virutal host configuration file and then add an entry in Windows' hosts file to map the address to 127.0.0.1. The address would be something like sitename.localhost

    Today I was working on a new site so I added the entry in the virtual hosts file but I forgot to add an entry to the hosts file. To my surprise the site loaded fine in Chrome without mapping the address to 127.0.0.1. However when I tried to load the site in IE and Firefox, it didn't work and my ISP's website showed up instead.

    Is there a reason why Chrome does this and other browsers do not? Is this something that is supposed to happen?

  • Cave Johnson
    Cave Johnson over 8 years
    I was hoping to get an answer that explains why they do this but I guess that is something that only the developers can explain. Thanks!
  • MrWhite
    MrWhite over 8 years
    "Why" (as I understand it) is explained above and in the linked Wikipedia article. example.localhost (TLD) has traditionally pointed to the same loopback address as localhost (domain). So that localhost (in any form) points to 127.0.0.1. Chrome (WebKit?) appears to follow this "tradition"; others do not. There is no standard in this respect, so browsers are free to do as they wish.
  • Cave Johnson
    Cave Johnson over 8 years
    Ah yes, you are right. That does explain it. It would be cool if other browsers followed that tradition.
  • Alexis Wilke
    Alexis Wilke over 4 years
    That would make much more sense than having each application test for that one special case!