pythonListSelfTest1
Serveur Web

Un serveur web est une application spécifique qui tourne sur un ordinateur.

Il existe des serveurs écrit en langage C, en Java, en Python,...

Le rôle du serveur Web est de servir des clients. Ces derniers envoient au serveur une requête précisant leur demande. Le serveur répond à cette demande si celle-ci est valide.

Pour communiquer le serveur et le client utilise un langage commun, il s'agit du protocole HTTP.

Les échanges entre le client et le serveur se font sous forme de paquets qui transportent sur le réseau Internet les requêtes du client et les réponses du serveur.

Ce langage est assez compréhensible pour nous, voici par exemple la requête d'un client demandant la page intro.html sur le serveur nsi.fr:

GET /intro.html HTTP/1.0
Host: nsi.fr

Cette requête correspondrait à la saisie par un utilisateur de l'URL : http://nsi.fr/intro.html.

Ici nsi.fr correspond au nom de la machine, on dit aussi nom de domaine de la machine.

Pour trouver leur chemin sur le réseau Internet ces paquets ont besoin de connaître l'adresse IP du serveur.

Pour trouver cette adresse IP à partir du nom de domaine le client interroge un serveur DNS.

Ici, notre serveur nsi.fr aurait par exemple pour adresse IP 200.164.52.18

Enfin, il faut savoir qu'une machine peut héberger plusieurs types de serveur (Web, DNS, FTP,...). Il faut donc que lorsque que le client envoie un paquet à destination du serveur il indique en plus de son adresse IP le service destinataire.

Pour cela les developpeurs du Web on définit la notion de "porte virtuelle" on parle de port. Chaque service sur l'ordinateur se voit attribuer un numéro de port, dans le cas de notre serveur web il s'agit du port numéro 80.

En simplifiant, voilà à quoi pourrait ressembler notre requête envoyée par le client à destination du serveur nsi.fr :

Vous remarquerez que le client précise dans le paquet son adresse IP et un numéro de port sur lequel lui renvoyer la réponse !


Quelques abbréviations et sigles à connaître

Ressources :

  1. developper.mozilla.org