Antworten:
Nun, der höchstwahrscheinliche Unterschied ist , dass Sie immer noch einen tatsächlichen zu tun haben Nachschlag von localhost
irgendwo.
Wenn Sie verwenden 127.0.0.1
, wandelt (intelligente) Software diese direkt in eine IP-Adresse um und verwendet sie. Einige Implementierungen von gethostbyname
erkennen das gepunktete Format (und vermutlich das entsprechende IPv6-Format) und führen überhaupt keine Suche durch.
Andernfalls muss der Name aufgelöst werden. Und es gibt keine Garantie dafür, dass Ihre hosts
Datei tatsächlich (zuerst oder überhaupt) für diese Auflösung verwendet wird , sodass localhost
möglicherweise eine völlig andere IP-Adresse verwendet wird.
Damit meine ich, dass auf einigen Systemen eine lokale hosts
Datei umgangen werden kann. Die host.conf
Datei steuert dies unter Linux (und vielen anderen Unices).
/etc/nsswitch.conf
Wählt aus, ob hosts
oder DNS zuerst für eine Hostsuche verwendet wird, wenn nss ausgeführt wird.
Wikipedia fasst das gut zusammen:
Auf modernen Computersystemen wird localhost als Hostname in eine IPv4-Adresse im Netzblock 127.0.0.0/8 (Loopback) übersetzt, normalerweise 127.0.0.1 oder :: 1 in IPv6.
Der einzige Unterschied besteht darin, dass im DNS nach dem System gesucht wird, in das aufgelöst wird localhost
. Diese Suche ist sehr, sehr schnell. Um zu stackoverflow.com
Ihnen zu gelangen, geben Sie dies beispielsweise in die Adressleiste ein (oder verwenden Sie ein Lesezeichen, auf das hier verwiesen wird). In jedem Fall sind Sie über einen Hostnamen hierher gekommen. localhost
bietet eine ähnliche Funktionalität.
Einige Anwendungen behandeln "localhost" speziell. Der MySQL-Client behandelt localhost als eine Anforderung, eine Verbindung zum lokalen Unix-Domain-Socket herzustellen, anstatt tcp zu verwenden, um eine Verbindung zum Server unter 127.0.0.1 herzustellen. Dies kann schneller sein und sich in einer anderen Authentifizierungszone befinden.
Ich kenne keine anderen Apps, die localhost anders behandeln als 127.0.0.1, aber es gibt wahrscheinlich einige.
Nun, per IP ist schneller.
Grundsätzlich wird beim Aufrufen nach Servernamen die ursprüngliche IP-Adresse konvertiert.
Es ist jedoch schwierig, sich eine IP zu merken. Aus diesem Grund wurde der Domainname erstellt.
Persönlich benutze ich http://localhost
anstelle von http://127.0.0.1
oder http://username
.
localhost
auf besondere Weise behandelt wird . Andere Anwendungen werden wahrscheinlich noch nachschlagen localhost
.
Der Hauptunterschied besteht darin, dass die Verbindung über Unix Domain Socket hergestellt werden kann, wie hier angegeben: localhost vs. 127.0.0.1
localhost
ist protokollunabhängig, sowohl IPv4 als auch IPv6 funktionieren.