Assuming the following is defined in .../hosts
:
127.0.0.1 localhost
What, if any, are the actual differences between using 127.0.0.1
and localhost
as the server name, especially when hitting processes running locally that are listening for connections?
The main difference is that the connection can be made via Unix Domain Socket, as stated here: localhost vs. 127.0.0.1
some applications will treat "localhost" specially. the mysql client will treat localhost as a request to connect to the local unix domain socket instead of using tcp to connect to the server on 127.0.0.1. This may be faster, and may be in a different authentication zone.
I don't know of other apps that treat localhost differently than 127.0.0.1, but there probably are some.
There is nothing different. One is easier to remember than the other. Generally, you define a name to associate with an IP address. You don't have to specify localhost for 127.0.0.1, you could specify any name you want.
Well, by IP is faster.
Basically, when you call by server name, it is converted to original IP.
But it would be difficult to memorize an IP, for this reason the domain name was created.
Personally I use
http://localhost
instead ofhttp://127.0.0.1
orhttp://username
.Well, the most likely difference is that you still have to do an actual lookup of
localhost
somewhere.If you use
127.0.0.1
, then (intelligent) software will just turn that directly into an IP address and use it. Some implementations ofgethostbyname
will detect the dotted format (and presumably the equivalent IPv6 format) and not do a lookup at all.Otherwise, the name has to be resolved. And there's no guarantee that your
hosts
file will actually be used for that resolution (first, or at all) solocalhost
may become a totally different IP address.By that I mean that, on some systems, a local
hosts
file can be bypassed. Thehost.conf
file controls this on Linux (and many other Unices).Wikipedia sums this up well:
The only difference is that it would be looking up in the DNS for the system what
localhost
resolves to. This lookup is really, really quick. For instance, to get tostackoverflow.com
you typed in that to the address bar (or used a bookmarklet that pointed here). Either way, you got here through a hostname.localhost
provides a similar functionality.