it-swarm.it

Qual è la differenza tra 127.0.0.1 e localhost

Supponendo che quanto segue sia definito in .../hosts:

127.0.0.1 localhost

Quali sono le differenze effettive tra l'utilizzo di 127.0.0.1 e localhost come nome del server, specialmente quando si colpiscono processi in esecuzione localmente in attesa di connessioni?

127
Bohemian

Bene, la differenza più probabile è che devi ancora fare una ricerca effettiva di localhost da qualche parte.

Se usi 127.0.0.1, quindi il software (intelligente) lo trasformerà direttamente in un indirizzo IP e lo utilizzerà. Alcune implementazioni di gethostbyname rileveranno il formato punteggiato (e presumibilmente il formato IPv6 equivalente) e non eseguiranno alcuna ricerca.

Altrimenti, il nome deve essere risolto. E non vi è alcuna garanzia che il tuo file hosts verrà effettivamente utilizzato utilizzato per quella risoluzione (prima o per niente) quindi localhost può diventare un indirizzo IP totalmente diverso .

Con ciò intendo che, su alcuni sistemi, un file locale hosts può essere ignorato. Il Host.conf il file lo controlla su Linux (e su molti altri Unices).

103
paxdiablo

Wikipedia lo riassume bene:

Sui moderni sistemi informatici, localhost come nome host si traduce in un indirizzo IPv4 nel blocco di rete 127.0.0.0/8 (loopback), in genere 127.0.0.1 o :: 1 in IPv6.

L'unica differenza è che sarebbe cercare nel sistema DNS il sistema in cui si risolve localhost. Questa ricerca è molto, molto veloce. Ad esempio, per arrivare a stackoverflow.com hai digitato quello nella barra degli indirizzi (o hai usato un bookmarklet che puntava qui). Ad ogni modo, sei arrivato qui attraverso un nome host. localhost fornisce una funzionalità simile.

32
Ryan Bigg

alcune applicazioni tratteranno specialmente "localhost". il client mysql tratterà localhost come una richiesta di connessione al socket del dominio unix locale invece di usare tcp per connettersi al server su 127.0.0.1. Potrebbe essere più veloce e potrebbe trovarsi in una zona di autenticazione diversa.

Non conosco altre app che trattano localhost in modo diverso da 127.0.0.1, ma probabilmente ce ne sono alcune.

28
Wayne Walker

Bene, tramite IP è più veloce.

Fondamentalmente, quando chiami per nome del server, viene convertito in IP originale.

Ma sarebbe difficile memorizzare un IP, per questo motivo è stato creato il nome di dominio.

Personalmente uso http://localhost invece di http://127.0.0.1 o http://username.

8
The Mask

Non c'è niente di diverso. Uno è più facile da ricordare dell'altro. Generalmente, si definisce un nome da associare a un indirizzo IP. Non è necessario specificare localhost per 127.0.0.1, è possibile specificare qualsiasi nome desiderato.

0
d_ethier