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ções gethostbyname
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 que localhost
possa se tornar um endereço IP totalmente diferente .
Com isso, quero dizer que, em alguns sistemas, um hosts
arquivo local pode ser ignorado. O host.conf
arquivo controla isso no Linux (e em muitos outros Unices).
/etc/nsswitch.conf
seleciona se hosts
ou DNS é usado primeiro para uma pesquisa de host, se o nss estiver em execução.
Em sistemas de computadores modernos, o host local como um nome de host se traduz em um endereço IPv4 no bloco de rede 127.0.0.0/8 (loopback), geralmente 127.0.0.1 ou :: 1 no IPv6.
A única diferença é que ele procuraria no DNS o sistema que localhost
resolve. Essa pesquisa é muito, muito rápida. Por exemplo, para stackoverflow.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.
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.
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 de http://127.0.0.1
ou http://username
.
localhost
de uma maneira especial . Outros aplicativos provavelmente ainda procurarão localhost
.
A principal diferença é que a conexão pode ser feita via Unix Domain Socket, conforme indicado aqui: localhost vs. 127.0.0.1
localhost
é independente de protocolo, tanto o IPv4 quanto o IPv6 funcionarão.