Protocole HTTP : principes et fonctionnement

Caractéristiques fondamentales

HTTP (HyperText Transfer Protocol) constitue le pilier des communications web, permettant l'échange de ressources comme des fichiers HTML, des images ou des données dynamiques entre serveurs et navigateurs. Ce protocole repose sur TCP/IP pour garantir la transmission fiable des données.

  • Simplicité : les requêtes spécifient uniquement la méthode et le chemin demandé
  • Flexibilité : grâce à l'en-tête Content-Type, le client peut indiquer le format des données attendues
  • Connexion non persistante : par défaut, chaque échange indépendant clôture la connexion après traitement
  • Sans état : chaque requête est isolée, sauf mécanismes d'état comme les cookies pour maintenir des sessions

Anatomie d'une URL

Une URL (Uniform Resource Locator) identifie de manière unique une ressource sur internet. Sa structure typique suit le schéma :

[protocole]://[hôte]/[ressource]Composants essentiels :

  • Protocole : détermine le protocole de couche transport (HTTP, HTTPS, FTP...)
  • Hôte : nom de domaine ou adresse IP du serveur
  • Port : numéro de port optionnel (défaut 80 pour HTTP, 443 pour HTTPS)
  • Ressource : chemin vers le fichier demandé (ex: /page.html)

Paramètres optionnels :

  • Paramètres de requête après '?' : ex. ?clé=valeur
  • Ancre après '#' : ex. #section1

Requête HTTP

Une requête client se compose de quatre sections séparées par des sauts de ligne :

  1. Ligne de requête : méthode, chemin et version du protocole
  2. En-têtes : métadonnées au format clé:valeur
  3. Ligne vide : séparateur obligatoire
  4. Corps : données optionnelles (principalement pour POST)

Exemple de requête GET modifié :

GET /ressources/page.html HTTP/1.1
Host: serveur.exemple.fr
Connection: keep-alive
Accept: text/html
User-Agent: NavigateurPersonnalise/2.0

Réponse HTTP

La réponse du serveur comprend :

  1. Ligne de statut : version, code numérique et message
  2. En-têtes : informations sur la réponse
  3. Ligne vide
  4. Corps : contenu demandé

Exemple de réponse :

HTTP/1.1 200 OK
Date: Lun, 15 Avr 2024 09:30:00 GMT
Content-Type: text/html; charset=UTF-8
Server: MonServeur/3.0
Content-Length: 1245

Méthodes HTTP courantes

Méthode Description
GET Récupère une représentation de la ressource ciblée
POST Soumet des données pour traitement (formulaire, upload)
PUT Remplace intégralement la ressource ciblée
DELETE Supprime la ressource spécifiée
PATCH Applique des modifications partielles à une ressource

En-têtes HTTP importants

En-têtes de requête

  • Host : nom d'hôte du serveur cible
  • Connection : directives de gestion de connexion (ex: keep-alive)
  • Cache-Control : politiques de mise en cache (ex: max-age=3600)
  • Accept : types MIME acceptés par le client
  • Cookie : données de session envoyées au serveur

En-têtes de réponse

  • Server : logiciel serveur utilisé
  • Content-Type : format du corps de la réponse
  • Cache-Control : directives de cache détaillées (no-cache, must-revalidate...)
  • Set-Cookie : envoie des cookies au client
  • ETag : signature de la ressource pour validation de cache

Codes de statut HTTP

Ces codes à trois chiffres catégorisent le résultat de la requête :

  • 1xx : Informationnel (100 Contiune)
  • 2xx : Succès (200 OK, 201 Created)
  • 3xx : Redirection (301 Moved Permanently, 304 Not Modified)
  • 4xx : Erreur client (400 Bad Request, 404 Not Found)
  • 5xx : Erreur serveur (500 Internal Server Error, 503 Service Unavailable)

Étiquettes: HTTP protocole web réseau requête

Publié le 10 juin à 03h53