Localhost

Dans le domaine des réseaux informatiques, localhost (hôte local en français) est le nom habituel qui désigne une interface logique de l’ordinateur local.

En informatique, on travaille souvent en mode client-serveur : une ou plusieurs machines envoient des requêtes à un serveur central qui envoie les réponses appropriées. C'est par exemple le cas d’un serveur web ou d’un serveur de bases de données.

Lors de la phase de développement d’un programme informatique impliquant des échanges sur un réseau, il n’est pas pour autant nécessaire de disposer de plusieurs machines physiques ni même virtuelles : la même machine physique peut parfaitement héberger le serveur et un ou plusieurs clients, exactement dans les mêmes conditions : en communiquant par des ports.

Le ou les clients hébergés sur une machine utilisent le protocole IP pour communiquer. Il importe peu de savoir où se trouvent physiquement les programmes, les couches basses du protocole se chargeant justement d’en masquer les détails. Le nom localhost est associé à l’adresse IPv6 ::1 et à la plage d’adresses IPv4 127.0.0.0/8 (toutes les adresses IPv4 comprises entre 127.0.0.1 et 127.255.255.255 dont la plus utilisée est 127.0.0.1).

L’interface réseau virtuelle utilisée dans cette situation se nomme l’interface de loopback (abrégée par lo sous Unix) ou boucle locale.

Dans la pratique 
Toute machine disposant d’une pile TCP/IP fonctionnelle permet de s’adresser à localhost, même si cette machine n’est reliée à aucun réseau physique ou virtuel.

Il faut bien entendu que soit démarré au préalable le serveur approprié (par exemple un serveur web ou un serveur de base de données) sur un port préalablement convenu (respectivement le port 80 associé par défaut aux requêtes HTTP et le port 3306 sur lequel écoute par défaut un serveur MySQL).

On peut ainsi vérifier que la pile TCP/IP d’une machine est opérationnelle en utilisant le programme ping. Celui-ci se fonde plus précisément sur le protocole ICMP, lequel repose sur le protocole IP. Un retour effectif d’un écho émis par ping permet ainsi d’éliminer une défaillance de la couche réseau inférieure à TCP. Néanmoins, la réponse à un écho émis par ping peut être inhibée au sein d’un système pour des raisons de sécurité, en l’occurrence pour éviter la collecte d’informations d’état (actif ou non), dans un réseau donné, sur les nœuds qui composent ce réseau.

Les extraits de sortie des commandes suivants illustrent un retour effectif de requêtes émises avec le programme ping (ici dans un système GNU/Linux) auquel est passé l’argument localhost.
 Exemple de requête ICMP avec IPv4 :
 $ ping localhost
 PING localhost (127.0.0.1): 56 data bytes
 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.3 ms
 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.1 ms
 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.1 ms
 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.1 ms
 […]
 Exemple de requête ICMP avec IPv6 :
 $ ping6 localhost
 PING localhost(::1) from ::1: 56 data bytes
 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.057 ms
 64 bytes from ::1: icmp_seq=2 ttl=64 time=0.052 ms
 64 bytes from ::1: icmp_seq=3 ttl=64 time=0.049 ms
 […]

Liens internes 
 Adresse IP

Notes et références 

Réseau informatique