Supondo que o seguinte esteja definido em .../hosts
:
127.0.0.1 localhost
Quais são, se houver alguma, as diferenças reais entre usar 127.0.0.1
e localhost
como o nome do servidor, especialmente ao executar processos em execução local que estão escutando conexões?
sockets
networking
dns
localhost
Boêmio
fonte
fonte
localhost
é independente de protocolo, tanto o IPv4 quanto o IPv6 funcionarão.Respostas:
Bem, a diferença mais provável é que você ainda precisa fazer uma pesquisa real em
localhost
algum lugar.Se você usar
127.0.0.1
, o software (inteligente) apenas transformará isso diretamente em um endereço IP e o utilizará. Algumas implementaçõesgethostbyname
detectarão o formato pontilhado (e presumivelmente o formato IPv6 equivalente) e não farão nenhuma pesquisa.Caso contrário, o nome deve ser resolvido. E não há garantia de que seu
hosts
arquivo será realmente usado para essa resolução (primeiro ou de todo), para quelocalhost
possa se tornar um endereço IP totalmente diferente .Com isso, quero dizer que, em alguns sistemas, um
hosts
arquivo local pode ser ignorado. Ohost.conf
arquivo controla isso no Linux (e em muitos outros Unices).fonte
/etc/nsswitch.conf
seleciona sehosts
ou DNS é usado primeiro para uma pesquisa de host, se o nss estiver em execução.A Wikipedia resume bem isso:
A única diferença é que ele procuraria no DNS o sistema que
localhost
resolve. Essa pesquisa é muito, muito rápida. Por exemplo, parastackoverflow.com
você digitar isso na barra de endereços (ou usar um bookmarklet que aponta aqui). De qualquer maneira, você chegou aqui através de um nome de host.localhost
fornece uma funcionalidade semelhante.fonte
alguns aplicativos tratam "localhost" especialmente. o cliente mysql tratará o localhost como uma solicitação para conectar-se ao soquete do domínio unix local em vez de usar o tcp para conectar-se ao servidor no 127.0.0.1. Isso pode ser mais rápido e pode estar em uma zona de autenticação diferente.
Não conheço outros aplicativos que tratam o host local de maneira diferente da 127.0.0.1, mas provavelmente existem alguns.
fonte
Bem, por IP é mais rápido.
Basicamente, quando você chama pelo nome do servidor, ele é convertido em IP original.
Mas seria difícil memorizar um IP, por esse motivo o nome de domínio foi criado.
Pessoalmente eu uso em
http://localhost
vez dehttp://127.0.0.1
ouhttp://username
.fonte
localhost
de uma maneira especial . Outros aplicativos provavelmente ainda procurarãolocalhost
.Não há nada diferente. Um é mais fácil de lembrar do que o outro. Geralmente, você define um nome para associar a um endereço IP. Você não precisa especificar localhost para 127.0.0.1, você pode especificar qualquer nome que desejar.
fonte
A principal diferença é que a conexão pode ser feita via Unix Domain Socket, conforme indicado aqui: localhost vs. 127.0.0.1
fonte