Retour à la page d'accueilSNT · Seconde · Changer de matière
Commencer gratuitement
Seconde · SNT
Graphes, données structurées, localisation et programmation embarquée · Requêtes HTTP

Requête HTTP et paramètres

Tu cherches un trajet Lyon – Paris sur le site d'une compagnie de train. Tu valides, et en une seconde une page s'affiche avec les horaires. Mais qu'est-ce qui a voyagé entre ton ordinateur et le site ? Et comment le site sait-il que tu veux Lyon et Paris, et pas Lille et Bordeaux ? Nous y reviendrons à la fin.

Client et serveur

Sur le Web, deux acteurs se parlent :

  • le client : ton navigateur (sur ordinateur, tablette ou téléphone), qui demande une page ;

  • le serveur : un ordinateur toujours allumé, quelque part dans un centre de données, qui répond.

C'est le modèle client/serveur. Le client envoie une requête, le serveur renvoie une réponse. Le dialogue suit des règles communes : le protocole HTTP (ou HTTPS quand les échanges sont chiffrés).

Un client envoie une requête HTTP à un serveur, qui renvoie une réponse. Client (navigateur) Serveur (site web) 1. Requête HTTP 2. Réponse (page, code)

Le client et le serveur ne font pas le même travail :

  • côté serveur : le serveur lit la requête, exécute éventuellement des programmes (par exemple en PHP ou Python), consulte une base de données, puis envoie la page. Ce code reste sur le serveur ;

  • côté client : le navigateur reçoit le HTML, le CSS et les scripts (par exemple en JavaScript), affiche la page et exécute les scripts. Ce code a été envoyé au client, donc on peut le lire avec l'inspecteur du navigateur (touche F12).

Entraîne-toi★☆☆Pas commencé
Expliquer le rôle du client (navigateur) et celui du serveur dans l'affichage d'une page web, en une phrase chacun.

Expliquer le rôle du client (navigateur) et celui du serveur dans l'affichage d'une page web, en une phrase chacun.

Résoudre
Entraîne-toi★★☆Pas commencé
Une page contient un script JavaScript qui change la couleur d'un bouton au clic, et un programme PHP qui calcule le total d'un panier. a) Indiquer pour chacun s'il est…

Une page contient un script JavaScript qui change la couleur d'un bouton au clic, et un programme PHP qui calcule le total d'un panier.

  1. a) Indiquer pour chacun s'il est exécuté côté client ou côté serveur.
  1. b) Expliquer pourquoi le code PHP n'est pas visible dans l'inspecteur du navigateur.
Résoudre

Décomposer une URL

Une URL est l'adresse d'une ressource sur le Web. Elle se lit de gauche à droite :

https://www.exemple.fr/recherche?q=velo&page=2

Partie Exemple Rôle
protocole https:// règles d'échange (HTTPS : échanges chiffrés)
nom de domaine www.exemple.fr désigne le serveur (le DNS le traduit en adresse IP)
chemin /recherche la ressource demandée sur le serveur
? ? début des paramètres
paramètres q=velo&page=2 des couples nom=valeur, séparés par &

Ici, deux paramètres sont passés : q vaut velo et page vaut 2. Le serveur s'en sert pour construire la page : il cherche « velo » et affiche la page 2 des résultats.

Entraîne-toi★☆☆Pas commencé
Soit l'URL https://www.exemple.fr/recherche?q=velo&page=2. a) Identifier le protocole, le nom de domaine et le chemin. b) Donner les paramètres passés et leurs valeurs.

Soit l'URL https://www.exemple.fr/recherche?q=velo&page=2.

  1. a) Identifier le protocole, le nom de domaine et le chemin.
  1. b) Donner les paramètres passés et leurs valeurs.
Résoudre
Entraîne-toi★★☆Pas commencé
Un site de billets de train utilise l'URL https://billets.exemple.fr/trajet?depart=Lyon&arrivee=Paris&date=2025-03-14&adultes=2. a) Lister les quatre paramètres et leurs…

Un site de billets de train utilise l'URL https://billets.exemple.fr/trajet?depart=Lyon&arrivee=Paris&date=2025-03-14&adultes=2.

  1. a) Lister les quatre paramètres et leurs valeurs.
  1. b) Écrire l'URL pour un trajet de Lille à Bordeaux, le 2025-04-02, pour 1 adulte.
Résoudre

La requête HTTP

Quand tu valides une URL, le navigateur envoie un texte structuré au serveur. La première ligne s'appelle la ligne de requête :

GET /index.html HTTP/1.1

  • GET : la méthode (ce qu'on veut faire) ;

  • /index.html : la ressource demandée ;

  • HTTP/1.1 : la version du protocole.

Deux méthodes sont à connaître :

Méthode Usage Où sont les données ?
GET demander une ressource dans l'URL (visibles dans la barre d'adresse)
POST envoyer des données (formulaire) dans le corps de la requête (non visibles dans l'URL)

Un formulaire HTML précise la méthode :

<form action="/inscription" method="post">

À la validation, le navigateur envoie une requête POST vers /inscription, avec les champs du formulaire comme paramètres.

Entraîne-toi★☆☆Pas commencé
Dans la ligne de requête HTTP GET /index.html HTTP/1.1, identifier la méthode, la ressource demandée et la version du protocole.

Dans la ligne de requête HTTP GET /index.html HTTP/1.1, identifier la méthode, la ressource demandée et la version du protocole.

Résoudre
Entraîne-toi★★☆Pas commencé
Comparer les méthodes GET et POST pour l'envoi d'un formulaire de connexion (identifiant et mot de passe) : où les données apparaissent-elles et laquelle est préférable…

Comparer les méthodes GET et POST pour l'envoi d'un formulaire de connexion (identifiant et mot de passe) : où les données apparaissent-elles et laquelle est préférable ? Justifier.

Résoudre

La réponse et les codes

Le serveur répond par une page (ou un autre fichier) et un code de statut à trois chiffres :

Code Signification
200 OK : la requête a réussi, la ressource est envoyée
404 Not Found : la ressource demandée n'existe pas
500 erreur interne du serveur

Le premier chiffre donne la famille : 2 = succès, 4 = erreur du côté du client (mauvaise demande), 5 = erreur du côté du serveur.

Une page web est rarement un seul fichier. Le navigateur demande d'abord le fichier HTML ; en le lisant, il découvre les images, feuilles de style et scripts à charger, et envoie une requête par fichier.

Entraîne-toi★★★Pas commencé
Pour afficher une page de météo, le navigateur envoie une première requête pour le fichier HTML, puis une requête pour chacun de ses 12 fichiers associés (images,…

Pour afficher une page de météo, le navigateur envoie une première requête pour le fichier HTML, puis une requête pour chacun de ses 12 fichiers associés (images, styles, scripts). Chaque requête dure en moyenne 80 ms et elles sont envoyées une par une.

  1. a) Calculer la durée totale du chargement.
  1. b) Si le navigateur peut envoyer 4 requêtes simultanées pour les fichiers associés (3 vagues de 4), calculer la nouvelle durée en supposant 80 ms par vague.
  1. c) Expliquer pourquoi la page du serveur peut être différente d'un utilisateur à l'autre pour la même URL.
Résoudre

Inspecter et ne pas faire confiance

L'inspecteur du navigateur (F12) affiche le HTML, le CSS, les scripts reçus et les requêtes envoyées, avec leurs paramètres et leurs codes. Il permet de comprendre comment une page fonctionne.

En revanche, il ne montre pas :

  • le code exécuté côté serveur (PHP, Python…) ;

  • la base de données du site ;

  • les mots de passe des autres utilisateurs.

Tout ce qui vient du client peut être modifié : un utilisateur peut changer un paramètre dans la barre d'adresse (promo=OUI devient promo=NON, ou l'inverse), ou désactiver un script de vérification. Le serveur doit donc toujours revérifier les données reçues.

Entraîne-toi★★★Pas commencé
Un utilisateur clique sur le lien https://boutique.exemple.fr/produit?id=482&couleur=bleu&promo=OUI. Le serveur répond avec le code 200 puis, pour id=9999 qui n'existe…

Un utilisateur clique sur le lien https://boutique.exemple.fr/produit?id=482&couleur=bleu&promo=OUI. Le serveur répond avec le code 200 puis, pour id=9999 qui n'existe pas, avec le code 404.

  1. a) Décomposer la requête (méthode probable, hôte, chemin, paramètres).
  1. b) Expliquer la signification des codes 200 et 404.
  1. c) Un utilisateur modifie promo=OUI en promo=NON dans la barre d'adresse. Expliquer pourquoi le serveur ne doit pas faire confiance aux paramètres reçus.
Résoudre
Entraîne-toi★★★Pas commencé
On inspecte une page web d'une mairie. On y trouve le code HTML d'un formulaire <form action="/inscription" method="post"> avec les champs nom, classe et email, ainsi…

On inspecte une page web d'une mairie. On y trouve le code HTML d'un formulaire <form action="/inscription" method="post"> avec les champs nom, classe et email, ainsi qu'un script qui vérifie que l'email contient « @ » avant l'envoi.

  1. a) Décrire la requête envoyée au serveur à la validation (méthode, chemin, paramètres).
  1. b) Expliquer pourquoi la vérification côté client ne suffit pas et ce que le serveur doit aussi faire.
  1. c) Donner deux informations que l'inspecteur permet de voir et une qu'il ne permet pas de voir.
Résoudre

Retour au début : quand tu cherches Lyon – Paris, ton navigateur envoie une requête GET dont l'URL contient depart=Lyon&arrivee=Paris. Le serveur lit ces paramètres, construit la page correspondante et la renvoie avec le code 200.

L'essentiel

  • Le client (navigateur) envoie une requête ; le serveur renvoie une réponse avec un code (200 : OK, 404 : introuvable).

  • Une URL se décompose en protocole, nom de domaine, chemin, puis paramètres nom=valeur séparés par & après le ?.

  • Une requête commence par la méthode, la ressource et la version : GET /index.html HTTP/1.1.

  • GET met les données dans l'URL ; POST les met dans le corps de la requête. Seul HTTPS chiffre l'échange.

  • Le code côté client est visible dans l'inspecteur ; le code côté serveur ne l'est pas.

  • Le serveur ne doit jamais faire confiance aux données reçues : il les revérifie.

Voir tous les exercices de cette partie