Cycle de vie d'une requête HTTP
Codes de statut HTTP
Requête HTTP GET : Méthode utilisée pour demander une ressource au serveur sans modifier l'état du serveur.
- Ligne de requête : méthode, chemin, version HTTP
- En-têtes HTTP : Host, User-Agent, Accept, etc.
- Ligne vide séparant les en-têtes du corps (absent pour GET)
Exemple de requête GET
GET indique la méthode, /index.html est le chemin, HTTP/1.1 est la version
Host spécifie le serveur, User-Agent identifie le client
Les requêtes GET n'ont généralement pas de corps
La requête est transmise via TCP au serveur
Le serveur analyse la requête et prépare la réponse
GET /index.html HTTP/1.1 + en-têtes = requête complète
• Idempotent : Plusieurs requêtes GET identiques produisent le même effet
• Sans corps : Les données sont dans l'URL (paramètres de requête)
• Cacheable : Les réponses GET peuvent être mises en cache
GET : Méthode pour récupérer des données, les paramètres sont dans l'URL. POST : Méthode pour envoyer des données, les paramètres sont dans le corps.
Utilisé pour récupérer des ressources, les données sont visibles dans l'URL
Utilisé pour envoyer des données au serveur, les données sont dans le corps
POST est plus sûr car les données ne sont pas exposées dans l'URL
GET a des limites de longueur, POST peut envoyer de grandes quantités de données
Les requêtes GET sont cacheables, les POST ne le sont généralement pas
GET pour lire, POST pour écrire/modifier des données
• GET : Idempotent, sécurisé, cacheable, limité en taille
• POST : Peut modifier l'état du serveur, accepte des données volumineuses
• Usage approprié : GET pour les recherches, POST pour les soumissions de formulaire
Codes de statut HTTP : Nombres à 3 chiffres retournés par le serveur pour indiquer le résultat de la requête.
200 OK : Requête traitée avec succès
301 Moved Permanently : Ressource déplacée de façon permanente
404 Not Found : Ressource introuvable
500 Internal Server Error : Erreur interne du serveur
Le client doit adapter son comportement selon le code reçu
Les codes de statut guident le traitement de la réponse
• Classification : 5 catégories basées sur le premier chiffre
• Standard : Codes normalisés par le W3C
• Automatisation : Les programmes peuvent réagir automatiquement aux codes
En-têtes HTTP : Paires clé-valeur qui fournissent des métadonnées sur la requête ou la réponse HTTP.
En-têtes de requête courants
En-têtes de réponse courants
Les en-têtes sont séparés par CRLF et terminés par une ligne vide
Spécifient les capacités du client et les préférences
Indiquent les propriétés de la ressource renvoyée
Les en-têtes Set-Cookie permettent de maintenir l'état
Les en-têtes contrôlent la mise en cache des réponses
Les en-têtes enrichissent les messages HTTP avec des métadonnées
• Format standard : Nom: Valeur, séparés par CRLF
• Case-insensitive : Les noms d'en-têtes ne sont pas sensibles à la casse
• Extensibilité : Possibilité d'ajouter des en-têtes personnalisés
Simulation d'interaction : Processus complet de communication entre un client et un serveur HTTP.
Le client (navigateur) prépare une requête GET pour /page.html
Le client établit une connexion TCP avec le serveur sur le port 80
Le client envoie la requête HTTP complète avec en-têtes
Le serveur analyse la requête et localise le fichier demandé
Le serveur crée une réponse HTTP avec le contenu du fichier
Le serveur envoie la réponse au client via la connexion TCP
Le client reçoit la réponse et l'affiche dans le navigateur
La connexion TCP est fermée après l'échange
Interaction complète = TCP + HTTP + Traitement + Affichage
• Protocoles emboîtés : HTTP repose sur TCP/IP
• Échanges synchrone : Chaque requête a une réponse correspondante
• Connexions temporaires : Chaque requête/réponse peut nécessiter une nouvelle connexion
- GET : Récupérer une ressource
- POST : Créer une ressource ou envoyer des données
- PUT : Mettre à jour une ressource existante
- DELETE : Supprimer une ressource
- HEAD : Obtenir les en-têtes sans le corps
- HTTP est un protocole sans état (stateless)
- Les méthodes GET et HEAD sont idempotentes
- Les codes de statut sont standardisés (RFC 7231)
- Les en-têtes permettent de transmettre des métadonnées
- HTTPS chiffre les communications HTTP pour la sécurité