localhost

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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

Lors du développement, 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.

Dans les domaines des réseaux informatiques, localhost (l'hôte local en français) est un nom habituel pour se référer à une interface logique de l'ordinateur local.

Le ou les clients hébergés sur une machine[2] 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 adresse 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).

Dans la pratique[modifier | modifier le code]

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.

Il faut bien entendu que soit démarré au préalable le serveur approprié (http, base de données...) sur un port préalablement convenu (souvent 80 ou 8080 pour http, souvent 3306 pour MySQL, etc.), ping[3] l'étant en standard s'il n'a pas été préalablement inhibé pour des raisons de sécurité[4].

On vérifie typiquement que la pile TCP/IP d'une machine est bien en place en exécutant la commande ping sur localhost.

  • Cela donne par exemple 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
...
  • Soit encore 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[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. ou plusieurs
  2. par exemple plusieurs navigateurs Internet différents, ou plusieurs clients MySQL
  3. qui relève, lui, d'ICMP et non de TCP
  4. par exemple pour empêcher des pirates de collecter les adresses valides du réseau