Aller au contenu principal

Le protocole HTTP

Notions théoriques

Le protocole HTTP (HyperText Transfer Protocol) est le fondement de toute communication de données sur le Web.

attention

HTTP est un protocole sans état, ce qui signifie que chaque requête est traitée indépendamment des autres.

info

Un protocole sans état est ...

Lorsqu'un client (généralement un navigateur Web) envoie une requête HTTP à un serveur, le serveur envoie une réponse HTTP en retour.

Les requêtes HTTP

Les requêtes HTTP sont composées de 4 parties :

  • Méthode : Le type d'action que le client souhaite effectuer. Les plus courantes sont GET (récupérer des données) et POST (envoyer des données).
  • URL : L'adresse où la requête est envoyée.
  • En-têtes : Informations supplémentaires sur la requête ou la réponse.
  • Corps : Les données réelles envoyées ou reçues.

Les méthodes HTTP définissent le type d'action que le client souhaite effectuer.

Les 2 méthodes les plus couramment utilisées sont GET et POST.

  • GET : Cette méthode est utilisée pour récupérer des informations du serveur en utilisant une URL spécifique. Par exemple, lorsque vous tapez une adresse de site Web dans votre navigateur, vous effectuez une requête GET. Les requêtes GET sont sans effet sur les ressources du serveur, elles ne modifient pas l'état du serveur. Elles sont idéales pour les actions de lecture seule où aucune donnée n'est modifiée sur le serveur.
  • POST : Cette méthode est utilisée pour envoyer des données au serveur. Par exemple, lorsque vous remplissez un formulaire sur un site Web et que vous appuyez sur "envoyer" ou "soumettre", vous effectuez généralement une requête POST. Les requêtes POST peuvent modifier l'état du serveur, par exemple en ajoutant une nouvelle information dans une base de données.
astuce

Une différence importante entre les 2 méthodes est :

  • que les requêtes GET incluent toutes les informations dans l'URL,
  • tandis que les requêtes POST envoient les informations dans le corps de la requête.

Cela signifie que les requêtes POST peuvent envoyer beaucoup plus d'informations que les requêtes GET, et ces informations peuvent être de types variés (pas seulement du texte).

Et comme les informations envoyées avec une requête POST ne sont pas visibles dans l'URL, cette méthode est plus sûre pour envoyer des informations sensibles, comme des mots de passe.

Les réponses HTTP

Les réponses HTTP incluent un code de statut qui indique si la requête a été réussie ou non :

  • Par exemple, "200 OK" signifie que la requête a été traitée avec succès,
  • tandis que "404 Not Found" signifie que la ressource demandée n'a pas été trouvée sur le serveur.

Exemple pratique

Prenons un exemple concret. Lorsque vous tapez http://www.example.com dans votre navigateur, une requête HTTP est envoyée au serveur hébergeant "www.example.com". La requête pourrait ressembler à ceci :

GET / HTTP/1.1
Host: www.example.com

Le serveur répondra alors avec quelque chose comme :

HTTP/1.1 200 OK
Date: Wed, 24 Aug 2023 12:04:23 GMT
Content-Type: text/html; charset=UTF-8

<!DOCTYPE html>
<html>
<head>
<title>Exemple</title>
</head>
<body>
Bienvenue sur www.example.com!
</body>
</html>

Test de mémorisation/compréhension


Qu'est-ce qu'une requête HTTP ?


Quel code de statut HTTP indique que la requête a été traitée avec succès ?



TP pour s'entrainer

Pour ce TP, vous allez utiliser un outil appelé Postman, qui permet d'envoyer des requêtes HTTP et de voir les réponses.

  1. Téléchargez et installez Postman https://www.postman.com/.
  2. Ouvrez Postman et créez une nouvelle requête GET.
  3. Dans la barre d'adresse, tapez http://www.example.com et appuyez sur "Send".
  4. Examinez la réponse du serveur. Pouvez-vous identifier les différentes parties de la réponse HTTP que nous avons discutées plus tôt ?
Résultats du TP
  1. Après avoir installé Postman, vous avez créé une nouvelle requête GET.
  2. Vous avez entré http://www.example.com dans la barre d'adresse et appuyé sur "Send".
  3. Dans la réponse du serveur, vous pouvez voir les différentes parties d'une réponse HTTP :
    • La ligne de statut ("HTTP/1.1 200 OK")
    • Les en-têtes de réponse (par exemple, "Date", "Content-Type")
    • Le corps de la réponse, qui dans ce cas est un document HTML.

Nous allons maintenant nous intéresser au fonctionnement des applications Web...