🌐web

Comprendre le protocole HTTP et les requetes web

30 mars 2026 5 min de lecture

HTTP : Le langage universel du web

Lorsque tu tapes une adresse comme https://nsi-lycee.fr dans ton navigateur, tu déclenches une conversation invisible mais essentielle entre ton ordinateur (le client) et un ordinateur distant (le serveur). Cette conversation suit des règles précises définies par le protocole HTTP (HyperText Transfer Protocol). C'est le fondement de la navigation web et une notion clé en NSI pour comprendre comment les applications web que tu vas peut-être coder fonctionnent.

Imagine HTTP comme un protocole de question-réponse. Ton navigateur envoie une requête (une question) pour demander une ressource : une page HTML, une image, un fichier CSS. Le serveur, s'il comprend la requête et trouve la ressource, renvoie une réponse contenant les données demandées, accompagnée d'informations sur leur nature et leur statut.

La structure d'une requête HTTP

Une requête HTTP est un message structuré envoyé par le client. Elle se compose de plusieurs parties obligatoires.

La ligne de requête

C'est la première ligne. Elle contient trois éléments essentiels :

  • La méthode : L'action que le client veut effectuer. Les plus courantes sont :
    • GET : Récupérer une ressource (lire une page).
    • POST : Envoyer des données au serveur (envoyer un formulaire).
    • PUT / DELETE : Modifier ou supprimer une ressource (utilisées dans les API).
  • L'URL cible : Le chemin de la ressource demandée (ex: /cours/python.html).
  • La version du protocole (ex: HTTP/1.1 ou HTTP/2).

Exemple de ligne de requête : GET /accueil.html HTTP/1.1

Les en-têtes (Headers)

Ce sont des lignes optionnelles qui donnent des informations contextuelles au serveur. Elles sont sous la forme Clé: Valeur.

  • Host : Le nom de domaine du serveur (obligatoire en HTTP/1.1).
  • User-Agent : Décrit le navigateur et le système d'exploitation du client.
  • Accept : Indique les types de contenu que le client peut comprendre (ex: text/html).
  • Cookie : Envoie les cookies stockés pour ce site.

Le corps (Body)

Il est principalement utilisé avec les méthodes POST ou PUT pour envoyer les données d'un formulaire ou un fichier JSON vers le serveur. Une requête GET n'a généralement pas de corps.

La réponse du serveur décryptée

Après avoir traité la requête, le serveur renvoie une réponse, elle aussi structurée.

La ligne de statut

C'est la première ligne de la réponse. Elle contient :

  • La version du protocole.
  • Un code de statut numérique (le fameux 404 !).
  • Une phrase explicative courte.

Exemple : HTTP/1.1 200 OK ou HTTP/1.1 404 Not Found.

Les codes de statut HTTP

Ils sont regroupés en classes :

  • 1xx (Information) : La requête est reçue, le processus continue.
  • 2xx (Succès) : L'action a été reçue, comprise et acceptée.
    • 200 OK : La requête a réussi.
    • 201 Created : Une ressource a été créée (après un POST).
  • 3xx (Redirection) : Une action supplémentaire est nécessaire pour compléter la requête.
    • 301 Moved Permanently : La ressource a changé d'adresse définitivement.
    • 302 Found : Redirection temporaire.
  • 4xx (Erreur client) : La requête contient une syntaxe incorrecte ou ne peut être satisfaite.
    • 400 Bad Request : La requête est mal formée.
    • 403 Forbidden : Accès refusé (pas les droits).
    • 404 Not Found : La ressource demandée n'existe pas sur ce serveur.
  • 5xx (Erreur serveur) : Le serveur a échoué à satisfaire une requête apparemement valide.
    • 500 Internal Server Error : Erreur générique du serveur.
    • 503 Service Unavailable : Le serveur est surchargé ou en maintenance.

Les en-têtes et le corps de la réponse

Comme pour la requête, la réponse contient des en-têtes (Content-Type: text/html, Set-Cookie: ...) et surtout un corps. C'est dans ce corps que se trouve la ressource tant attendue : le code HTML de la page, l'image, le fichier JSON de l'API, etc.

HTTP en pratique avec Python

En NSI, tu ne te contentes pas de théoriser, tu pratiques ! Python possède d'excellentes bibliothèques pour émettre des requêtes HTTP et analyser les réponses, ce qui est crucial pour scrapper des données ou utiliser des API web.

Voici un exemple simple avec la bibliothèque requests, qu'il faut d'abord installer (pip install requests) :

import requests

# Envoi d'une requête GET
reponse = requests.get('https://api.github.com')

# Affichage du code de statut
print(f"Code statut : {reponse.status_code}")  # Affiche 200

# Affichage des en-têtes
print("En-têtes :", reponse.headers['Content-Type'])  # Affiche 'application/json'

# Accès au corps de la réponse (ici du JSON)
donnees = reponse.json()
print(f"Message de bienvenue de l'API : {donnees['current_user_url']}")

Ce petit script dialogue avec l'API publique de GitHub en utilisant HTTP. Il envoie une requête GET, reçoit une réponse 200, lit l'en-tête Content-Type pour savoir que les données sont en JSON, et enfin les parse pour en extraire une information.

Comprendre HTTP te permet de passer de simple consommateur du web à acteur, capable de créer des clients pour interagir avec n'importe quel service en ligne, une compétence précieuse en informatique.

Le savais-tu ? HTTP est un protocole "sans état" (stateless). Cela signifie que chaque requête est indépendante. Le serveur ne "se souvient" pas de toi d'une requête à l'autre. C'est pour contourner cette limite qu'on utilise des mécanismes comme les cookies ou les sessions.

📚 Pour aller plus loin

Questions fréquentes

Quelle est la différence entre HTTP et HTTPS ?

HTTPS (HTTP Secure) est la version sécurisée de HTTP. Il utilise un protocole de chiffrement appelé TLS/SSL pour crypter toutes les communications entre le client et le serveur. Cela protège les données sensibles (mots de passe, informations bancaires) des écoutes indiscrètes. Aujourd'hui, HTTPS est devenu la norme sur tout le web.

À quoi servent les méthodes HTTP comme PUT ou DELETE si on ne les voit pas dans un navigateur ?

Les méthodes GET et POST sont les plus utilisées directement via les navigateurs (liens, formulaires). PUT, DELETE, ainsi que PATCH ou OPTIONS, sont largement utilisées dans les <strong>API REST</strong> (Application Programming Interface). Quand tu développes une application mobile ou un site avec un frontend moderne (React, Vue.js), c'est via ces méthodes HTTP que ton code dialogue avec le serveur backend pour créer, lire, mettre à jour ou supprimer des données (opérations CRUD).

Comment puis-je voir les requêtes HTTP réelles de mon navigateur pour m'entraîner ?

Tous les navigateurs modernes ont des <strong>Outils de Développement</strong> (F12). Va dans l'onglet <em>"Réseau"</em> (Network). Recharge la page, et tu verras la liste de toutes les requêtes HTTP (pour le HTML, le CSS, les images, les scripts...). En cliquant sur une requête, tu peux inspecter ses en-têtes, sa méthode, la réponse du serveur et le code de statut. C'est un excellent outil pédagogique !

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
HTTP protocoleweb NSI cours
Pixel