Localhost

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 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.

Dans le domaine des réseaux informatiques, localhost (l’hôte local en français) est le nom habituel qui désigne 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 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 [3], même si cette machine n’est reliée à aucun réseau physique ou virtuel [4].

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 de commande 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
[…]
Other Languages
Afrikaans: Localhost
беларуская: Localhost
català: Localhost
čeština: Localhost
dansk: Localhost
Deutsch: Localhost
Ελληνικά: Localhost
English: Localhost
español: Localhost
euskara: Localhost
עברית: Localhost
magyar: Localhost
italiano: Localhost
日本語: Localhost
한국어: Localhost
Ripoarisch: Localhost (tcp/ip)
lumbaart: Localhost
latviešu: Localhost
Nederlands: Localhost
norsk nynorsk: Localhost
norsk: Localhost
polski: Localhost
português: Localhost
română: Localhost
русский: Localhost
Simple English: Localhost
slovenčina: Localhost
svenska: Localhost
Türkçe: Localhost
українська: Localhost
Tiếng Việt: Localhost
中文: Localhost