В чем разница между 127.0.0.1 и localhost
предполагая, что следующее определено в .../hosts:
127.0.0.1 localhost
каковы, если таковые имеются, фактические различия между использованием 127.0.0.1 и localhost как имя сервера, особенно при попадании процессов, запущенных локально, которые прослушивают соединения?
6 ответов:
Ну, скорее всего разница в том, что вы все еще должны сделать фактический lookup на
localhostкуда-то.если вы используете
127.0.0.1, то (интеллектуальное) программное обеспечение просто превратит это непосредственно в IP-адрес и использовать его. Некоторые реализацииgethostbynameобнаружит пунктирный формат (и, предположительно, эквивалентный формат IPv6) и вообще не будет выполнять поиск.в противном случае, имя должно быть разрешено. И нет никакой гарантии, что ваш на самом деле будет использовать для этого разрешения (во-первых, или вообще) так
localhostможет стать полностью разные IP-адрес.под этим я подразумеваю, что в некоторых системах локальный
hostsфайл можно обойти. Элементhost.conffile управляет этим в Linux (и многих других Unices).
Википедия подводит итог хорошо:
в современных компьютерных системах localhost в качестве имени хоста преобразуется в IPv4-адрес в сетевом блоке 127.0.0.0/8 (loopback), обычно 127.0.0.1, или ::1 в IPv6.
единственная разница в том, что он будет искать в DNS для системы what
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.
нет ничего другого. Одно легче запомнить, чем другое. Как правило, вы определяете имя для связи с IP-адресом. Вам не нужно указать localhost на 127.0.0.1, вы можете указать любое имя вы хотите.
основное отличие заключается в том, что соединение может быть сделано через unix домен сокет, как указано здесь: localhost против 127.0.0.1
Comments