Aller au contenu

Description du protocole HTTP

Nous l'avons vu, un serveur web supporte le protocole HTTP : « HyperText Transfer Protocol », c'est-à-dire « Protocole de transfert hypertexte ».
Comme son nom l'indique, ce protocole définit comment transférer des fichiers hypertextes (c'est-à-dire des documents web liés entre eux) entre deux ordinateurs.

Qu'est ce qu'un protocole ?

Un protocole est un ensemble de règles qui définissent le mode de communication entre deux ordinateurs.
Ces règles précisent :

  • le format et l’enchaînement des messages qui doivent être échangés
  • les actions à réaliser lors de la réception de ces messages.

Des protocoles différents sont utilisés selon l'objectif de la communication entre les machines.

Exemples

  • Le protocole FTP (file transfert protocol) est utilisé pour transférer des fichiers par internet.
  • Le protocole IP (internet protocol) est utiliser pour acheminer des paquets de données sur le réseau internet.

Principe du protocole HTTP

Voici la définition wikipedia de la première version du protocole (c'est un peu plus complexe pour les versions ultérieures mais le principe de base reste le même) :

  1. connexion du client HTTP ;
  2. envoi d'une requête de méthode GET ;
  3. réponse du serveur HTTP ;
  4. le serveur ferme la connexion pour signaler la fin de la réponse.

Le protocole HTTP est dit textuel, sans état.

Définitions

Textuel : toutes les commandes qui sont échangées sont du texte pouvant être lu par un humain.

Sans état : ni le serveur, ni le client ne se souviennent des communications précédentes.
Par exemple, si on utilisait uniquement HTTP, un serveur ne pourrait pas se souvenir si un mot de passe a été saisi ou si une transaction est en cours (pour gérer cela, il faut utiliser un serveur d'applications).

Le protocole HTTP fournit des règles claires qui indiquent comment un client et un serveur communiquent.

Côté client

Seuls les clients peuvent effectuer des requêtes HTTP et uniquement vers des serveurs.

  • Pour demander à un serveur un fichier via le protocole HTTP, le client doit fournir l'URL (l'adresse) du fichier en question.
  • A chaque requête HTTP, le client reçoit obligatoirement une réponse du serveur web, même si celle-ci est un message d'erreur.

Côté serveur

Dans un serveur web, le serveur HTTP est responsable du traitement des requêtes reçues et de leurs réponses.

  • Un serveur ne peut que répondre à la requête d'un client (il faut qu'un client fasse une requête pour que le serveur lui réponde ensuite).
  • Une fois qu'il a reçu une requête, le serveur HTTP vérifie que l'URL demandée correspond à un fichier existant.
    • Si c'est le cas, le serveur envoie le fichier vers le navigateur du client (ce fichier peut être généré par le serveur d'applications).
    • Si le fichier n'existe pas (ou qu'il ne peut pas être généré par le serveur d'application), le serveur web renvoie un message d'erreur au navigateur.
      Le message d'erreur le plus fréquemment rencontré est 404 (page non trouvée).