Предполагая следующее определено в .../hosts
:
127.0.0.1 localhost
Каковы, если таковые имеются, фактические различия между использованием 127.0.0.1
и в localhost
качестве имени сервера, особенно при обращении к процессам, запущенным локально, которые прослушивают соединения?
sockets
networking
dns
localhost
Богемский
источник
источник
localhost
что протокол не зависит, будут работать как IPv4, так и IPv6.Ответы:
Ну, скорее всего , разница в том , что вы все еще должны сделать фактический поиск в
localhost
где - то.Если вы используете
127.0.0.1
, то (интеллектуальное) программное обеспечение просто превратит это непосредственно в IP-адрес и использует его. Некоторые реализацииgethostbyname
будут обнаруживать точечный формат (и предположительно эквивалентный формат IPv6) и вообще не будут выполнять поиск.В противном случае имя должно быть разрешено. И нет никакой гарантии, что ваш
hosts
файл будет фактически использован для этого разрешения (сначала или вообще), поэтомуlocalhost
может стать совершенно другим IP-адресом.Я имею в виду, что в некоторых системах локальный
hosts
файл можно обойти. Вhost.conf
файл управляет это на Linux (и многие другие юниксов).источник
/etc/nsswitch.conf
выбирает, еслиhosts
или DNS используется первым для поиска хоста, если nss работает.Википедия подытоживает это хорошо:
Единственное отличие состоит в том, что он будет искать в DNS систему,
localhost
к которой она обращается. Этот поиск действительно очень быстрый. Например, чтобы добраться доstackoverflow.com
вас, введите это в адресную строку (или используйте букмарклет, который указан здесь). В любом случае, вы попали сюда через имя хоста.localhost
обеспечивает аналогичную функциональность.источник
некоторые приложения будут обрабатывать «localhost» специально. клиент mysql будет обрабатывать localhost как запрос на подключение к локальному сокету домена unix вместо использования tcp для подключения к серверу на 127.0.0.1. Это может быть быстрее и может быть в другой зоне аутентификации.
Я не знаю других приложений, которые обрабатывают localhost иначе, чем 127.0.0.1, но, вероятно, есть некоторые.
источник
Ну, по IP быстрее.
В основном, когда вы звоните по имени сервера, он преобразуется в исходный IP.
Но было бы трудно запомнить IP, по этой причине доменное имя было создано.
Лично я использую
http://localhost
вместоhttp://127.0.0.1
илиhttp://username
.источник
localhost
в особым образом . Другие приложения, вероятно, все еще будут искатьlocalhost
.Там нет ничего другого. Одно легче запомнить, чем другое. Как правило, вы определяете имя для связи с IP-адресом. Вам не нужно указывать localhost для 127.0.0.1, вы можете указать любое имя.
источник
Основное отличие состоит в том, что соединение может быть установлено через Unix Domain Socket, как указано здесь: localhost vs. 127.0.0.1
источник