Odpowiedzi:
Cóż, najprawdopodobniej różnicą jest to, że trzeba jeszcze zrobić rzeczywiste odnośnika z localhostgdzieś.
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 gethostbynamewykrywają 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 hostsplik zostanie faktycznie użyty do tej rozdzielczości (najpierw lub w ogóle), więc localhostmoże stać się zupełnie innym adresem IP.
Rozumiem przez to, że w niektórych systemach hostsmożna ominąć plik lokalny . Te host.confkontrole plików to na Linux (i wielu innych Uniksach).
/etc/nsswitch.confwybiera, czy hostslub 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ę localhostrozwiązuje. To wyszukiwanie jest naprawdę szybkie. Na przykład, aby dostać się do stackoverflow.comCiebie, wpisałeś to w pasku adresu (lub skorzystałeś ze wskazanego tutaj bookmarkletu). Tak czy inaczej, dostałeś się tutaj przez nazwę hosta. localhostzapewnia 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://localhostzamiast http://127.0.0.1lub http://username.
localhostw 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
localhostjest niezależny od protokołu, zarówno IPv4, jak i IPv6 będą działać.