Odpowiedzi:
Cóż, najprawdopodobniej różnicą jest to, że trzeba jeszcze zrobić rzeczywiste odnośnika z localhost
gdzieś.
Jeśli używasz 127.0.0.1
, (inteligentne) oprogramowanie po prostu zamieni go bezpośrednio na adres IP i użyje go. Niektóre implementacje gethostbyname
wykrywają format z kropkami (i przypuszczalnie równoważny format IPv6) i w ogóle nie sprawdzają.
W przeciwnym razie nazwa musi zostać rozwiązana. I nie ma gwarancji, że twój hosts
plik zostanie faktycznie użyty do tej rozdzielczości (najpierw lub w ogóle), więc localhost
może stać się zupełnie innym adresem IP.
Rozumiem przez to, że w niektórych systemach hosts
można ominąć plik lokalny . Te host.conf
kontrole plików to na Linux (i wielu innych Uniksach).
/etc/nsswitch.conf
wybiera, czy hosts
lub DNS jest używany jako pierwszy do wyszukiwania hosta, jeśli działa nss.
Wikipedia dobrze to podsumowuje:
W nowoczesnych systemach komputerowych localhost jako nazwa hosta tłumaczy się na adres IPv4 w bloku sieciowym 127.0.0.0/8 (pętla zwrotna), zwykle 127.0.0.1 lub :: 1 w IPv6.
Jedyną różnicą jest to, że szukałby w DNS systemu, na który się localhost
rozwiązuje. To wyszukiwanie jest naprawdę szybkie. Na przykład, aby dostać się do stackoverflow.com
Ciebie, wpisałeś to w pasku adresu (lub skorzystałeś ze wskazanego tutaj bookmarkletu). Tak czy inaczej, dostałeś się tutaj przez nazwę hosta. localhost
zapewnia podobną funkcjonalność.
niektóre aplikacje będą traktować „localhost” specjalnie. klient mysql potraktuje localhost jako żądanie połączenia się z lokalnym gniazdem domeny unix zamiast używać tcp do łączenia się z serwerem na 127.0.0.1. Może to być szybsze i może znajdować się w innej strefie uwierzytelniania.
Nie znam innych aplikacji, które traktują localhost inaczej niż 127.0.0.1, ale prawdopodobnie są.
Cóż, przez IP jest szybszy.
Zasadniczo, gdy dzwonisz według nazwy serwera, jest on konwertowany na oryginalny adres IP.
Ale zapamiętanie adresu IP byłoby trudne, z tego powodu nazwa domeny została utworzona.
Osobiście używam http://localhost
zamiast http://127.0.0.1
lub http://username
.
localhost
w specjalny sposób . Inne aplikacje prawdopodobnie nadal będą wyszukiwać localhost
.
Główną różnicą jest to, że połączenie można nawiązać przez gniazdo domeny Unix, jak podano tutaj: localhost vs. 127.0.0.1
localhost
jest niezależny od protokołu, zarówno IPv4, jak i IPv6 będą działać.