Http – HyperText Transfer Protocol

HTTP est un protocole de communication sans état, fondé sur le modèle client-serveur, qui permet l’échange de ressources (pages web, images, API, etc.) sur Internet.

Dans ce modèle :

  • Le client (navigateur, application, script) envoie une requête à un serveur.
  • Le serveur la traite et renvoie une réponse (contenu demandé, erreur, redirection, etc.).

Évolution des versions majeures

HTTP/1.1 (1999)

  • Une connexion TCP est établie pour chaque requête (ou réutilisée via keep-alive).
  • Les requêtes sont traitées séquentiellement : même avec keep-alive, les réponses arrivent dans l’ordre d’envoi → risque de blocage en tête de file (head-of-line blocking).
  • Nécessite souvent plusieurs connexions parallèles pour charger une page complexe.

HTTP/2 (2015)

  • Une seule connexion TCP persistante suffit pour toute la session.
  • Les requêtes et réponses sont multiplexées : elles peuvent être envoyées et reçues en parallèle, dans n’importe quel ordre, sans blocage.
  • Compression des en-têtes (HPACK) → gain de bande passante.
  • Meilleure performance, surtout pour les sites riches en ressources.

HTTP/2 reste sémantiquement compatible avec HTTP/1.1 — seuls les mécanismes de transport changent.

Structure d’une requête HTTP

Une requête est composée de :

  1. Ligne de requête :
    • Méthode (GET, POST, PUT, DELETE, etc.)
    • Chemin cible (ex. : /api/users)
    • Version du protocole (ex. : HTTP/1.1 ou HTTP/2)
  2. En-têtes (headers) : métadonnées (type de contenu, cookies, langage accepté, etc.)
  3. Corps (body, facultatif) : données envoyées (ex. : JSON dans un POST)

Exemple :

POST /login HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 45

{"email": "user@example.com", "password": "xxx"}

Sécurité : HTTPS

HTTP classique transite en clair. En production, il est toujours utilisé via TLS sous le nom de HTTPS (HTTP Secure), qui chiffre la communication et authentifie le serveur.

En résumé

VersionConnexionsParallélismePerformances
HTTP/1.1Multiples (ou keep-alive)SéquentielLimité par le blocage
HTTP/2UniqueMultiplexéOptimisé pour le web moderne

HTTP est la colonne vertébrale du Web mais son efficacité dépend désormais de son implémentation sécurisée (HTTPS) et de son évolution vers des architectures plus sobres et résilientes..