Numérique et Sciences Informatiques1ère

Interaction HTTP client/serveur
Exercices corrigés

Maîtrisez l'interaction HTTP client/serveur : requêtes, réponses, méthodes, codes statut, headers grâce à ces 5 exercices détaillés.

Concepts & Exercices
📡 Client → Serveur ← 📥
Communication HTTP

Cycle de vie d'une requête HTTP

1. Connexion
Établissement TCP
2. Requête
Envoi de la requête
3. Traitement
Par le serveur
4. Réponse
Retour des données
5. Fermeture
De la connexion

Codes de statut HTTP

200 OK
301 Moved
404 Not Found
500 Server Error
403 Forbidden
304 Not Modified
Exercice 1
Analyser une requête HTTP GET complète
Exercice 2
Comparer les méthodes HTTP GET et POST
Exercice 3
Interpréter les codes de statut HTTP
Exercice 4
Analyser les en-têtes HTTP courants
Exercice 5
Simuler une interaction client/serveur complète
Corrigé : Exercices 1 à 3
1 Requête HTTP GET
Définition :

Requête HTTP GET : Méthode utilisée pour demander une ressource au serveur sans modifier l'état du serveur.

Structure d'une requête GET :
  1. Ligne de requête : méthode, chemin, version HTTP
  2. En-têtes HTTP : Host, User-Agent, Accept, etc.
  3. Ligne vide séparant les en-têtes du corps (absent pour GET)

Exemple de requête GET

GET /index.html
HTTP/1.1
Host: exemple.com
User-Agent: Mozilla/5.0
Étape 1 : Ligne de requête

GET indique la méthode, /index.html est le chemin, HTTP/1.1 est la version

Étape 2 : En-têtes de requête

Host spécifie le serveur, User-Agent identifie le client

Étape 3 : Corps vide

Les requêtes GET n'ont généralement pas de corps

Étape 4 : Envoi au serveur

La requête est transmise via TCP au serveur

Étape 5 : Traitement par le serveur

Le serveur analyse la requête et prépare la réponse

Réponse finale :

GET /index.html HTTP/1.1 + en-têtes = requête complète

Règles appliquées :

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

2 GET vs POST
Définition :

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.

GET /search?q=test
HTTP/1.1
HTTP/1.1 200 OK
Content-Type: text/html
POST /submit
HTTP/1.1
Content-Length: 12
HTTP/1.1 201 Created
Location: /new-resource
Étape 1 : Utilisation de GET

Utilisé pour récupérer des ressources, les données sont visibles dans l'URL

Étape 2 : Utilisation de POST

Utilisé pour envoyer des données au serveur, les données sont dans le corps

Étape 3 : Sécurité

POST est plus sûr car les données ne sont pas exposées dans l'URL

Étape 4 : Longueur des données

GET a des limites de longueur, POST peut envoyer de grandes quantités de données

Étape 5 : Cacheabilité

Les requêtes GET sont cacheables, les POST ne le sont généralement pas

GET = Lecture, URL, Cacheable | POST = Écriture, Corps, Non-cacheable
Réponse finale :

GET pour lire, POST pour écrire/modifier des données

Règles appliqué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

3 Codes de statut
Définition :

Codes de statut HTTP : Nombres à 3 chiffres retournés par le serveur pour indiquer le résultat de la requête.

2xx: Succès
3xx: Redirection
4xx: Erreur client
5xx: Erreur serveur
Étape 1 : Codes 2xx (Succès)

200 OK : Requête traitée avec succès

Étape 2 : Codes 3xx (Redirection)

301 Moved Permanently : Ressource déplacée de façon permanente

Étape 3 : Codes 4xx (Erreur client)

404 Not Found : Ressource introuvable

Étape 4 : Codes 5xx (Erreur serveur)

500 Internal Server Error : Erreur interne du serveur

Étape 5 : Interprétation

Le client doit adapter son comportement selon le code reçu

2xx = Succès | 3xx = Redirection | 4xx = Erreur client | 5xx = Erreur serveur
Réponse finale :

Les codes de statut guident le traitement de la réponse

Règles appliquées :

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

Corrigé : Exercices 4 à 5
4 En-têtes HTTP
Définition :

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

Host
Nom du serveur
User-Agent
Type de client
Accept
Types acceptés
Authorization
Informations d'authentification

En-têtes de réponse courants

Content-Type
Type de contenu
Content-Length
Taille du contenu
Set-Cookie
Données de session
Location
URL de redirection
Étape 1 : Identification des en-têtes

Les en-têtes sont séparés par CRLF et terminés par une ligne vide

Étape 2 : En-têtes de requête

Spécifient les capacités du client et les préférences

Étape 3 : En-têtes de réponse

Indiquent les propriétés de la ressource renvoyée

Étape 4 : Gestion des cookies

Les en-têtes Set-Cookie permettent de maintenir l'état

Étape 5 : Contrôle de cache

Les en-têtes contrôlent la mise en cache des réponses

En-têtes = Métadonnées + Contrôle + Informations contextuelles
Réponse finale :

Les en-têtes enrichissent les messages HTTP avec des métadonnées

Règles appliqué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

5 Simulation complète
Définition :

Simulation d'interaction : Processus complet de communication entre un client et un serveur HTTP.

Étape 1 : Initialisation

Le client (navigateur) prépare une requête GET pour /page.html

Étape 2 : Établissement de la connexion

Le client établit une connexion TCP avec le serveur sur le port 80

Étape 3 : Envoi de la requête

Le client envoie la requête HTTP complète avec en-têtes

Étape 4 : Traitement côté serveur

Le serveur analyse la requête et localise le fichier demandé

Étape 5 : Construction de la réponse

Le serveur crée une réponse HTTP avec le contenu du fichier

Étape 6 : Envoi de la réponse

Le serveur envoie la réponse au client via la connexion TCP

Étape 7 : Traitement côté client

Le client reçoit la réponse et l'affiche dans le navigateur

Étape 8 : Fermeture de la connexion

La connexion TCP est fermée après l'échange

Client ↔ TCP ↔ HTTP ↔ Serveur ↔ Réponse
Réponse finale :

Interaction complète = TCP + HTTP + Traitement + Affichage

Règles appliquées :

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

Cours bien détaillé
HTTP = Méthode + Chemin + Version + En-têtes + Corps
Structure HTTP
📡
Client : Programme qui initie la requête (navigateur, application).
🖥️
Serveur : Programme qui traite la requête et fournit la réponse.
🔗
Protocole : Ensemble de règles pour la communication entre systèmes.
📋
Stateless : Chaque requête est indépendante des autres.
💡
Conseil : Utiliser les outils de développement pour voir les requêtes HTTP
🔍
Attention : Les données sensibles ne devraient pas être envoyées en GET
Astuce : Les codes de statut permettent de diagnostiquer les problèmes
📋
Méthode : GET pour lire, POST pour écrire, PUT pour modifier
Vérification : Vérifier les en-têtes Content-Type et Content-Length
Méthodes HTTP courantes :
  • 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
Règles importantes :
  • 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é
Interaction HTTP client/serveur Web et communication distribuée