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) :
- connexion du client HTTP ;
- envoi d'une requête de méthode GET ;
- réponse du serveur HTTP ;
- 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).