2011-08-04 8 views
13

Quelle est la différence entre localhost et l'adresse IP réelle?localhost vs adresse IP réelle

Si j'accède à une application en utilisant http://localhost:8080/index.html et http://192.123.456.001:8080/index.html (par exemple, 192.123.456.001 est l'adresse IP réelle de l'ordinateur hôte), quelle est la différence?

+15

* 192.123.456.001 * n'est pas une vraie adresse IP :-) –

Répondre

19

Lorsque vous accédez à localhost, votre fichier /etc/hosts indique à votre ordinateur de ne plus chercher et vous redirige vers votre propre ordinateur. Lorsque vous accédez à l'adresse IP locale, votre ordinateur demandera au routeur d'aller chercher les données, et votre routeur pointera alors vers votre ordinateur.

1

de Wikipédia, les points pertinents:

Communiquer avec l'interface de réalimentation de manière identique avec un autre ordinateur sur le réseau, mais sans passer par le réseau local matériel d'interface, est utile aux fins de logiciel de test.

La connexion à des services de réseau hébergés localement, tels qu'un serveur de jeu d'ordinateur , ou pour d'autres communications inter-processus, peut être effectuée par des adresses de bouclage de manière hautement efficace.

http://en.wikipedia.org/wiki/Localhost

+0

Bien, il serait bon de savoir * comment * c'est "une manière très efficace". Est-ce efficace pour le programmeur de ne pas penser à l'adresse du serveur? Est-il efficace pour le serveur de ne pas avoir à chercher où est l'adresse? Tous les deux? Je pense que c'est ce que l'affiche originale demandait. – Skotte

+1

La mise en réseau @Skotte suit le modèle à 7 couches OSI, le bouclage en cours d'exécution permet au système d'exploitation d'optimiser les choses en ignorant les couches. Sur un système d'exploitation moderne et TCP/IP, la différence devrait être aussi minime que simplement la recherche dans la table de routage locale. –

0

La différence est lorsque vous configurez une prise d'écoute (en attente d'une connexion), vous devez lui dire quelle adresse se lier à. La même chose s'applique à la configuration du site Web avec tous les serveurs Web courants.

Normalement, vous liez simplement à n'importe quelle adresse, ce qui signifie que vous pouvez y accéder via 127.0.0.1 ou 192.xxx ou toutes les autres adresses IP que la machine possède, mais parfois vous pouvez vous lier à une adresse spécifique - par exemple Si vous avez 4 adresses IP publiques sur une machine, vous pouvez avoir un site spécifique sur une adresse IP spécifique.

3

En plus des autres réponses, vous pouvez rencontrer des problèmes mystérieux avec l'utilisation de localhost. Un exemple: IE sur Windows crée un raccourci si vous entrez http://localhost dans la barre d'adresse URL. Cela devient un problème lorsque vous développez une application Web et qu'un proxy local est installé (comme Fiddler) pour jeter un coup d'œil aux messages échangés entre la page Web du client et le serveur s'exécutant localement - le message ne sera pas capturé car il ne passera pas le proxy dans ce cas. Ce qui le rend un peu gênant de trouver des bogues IE seulement dans votre application ... ;-)