Première · Interactions sur le Web

Navigateur, serveur et échanges HTTP

Une page peut réagir sans réseau, puis demander des données à un serveur au clic suivant. Pour comprendre une application Web, il faut situer les traitements et les informations : ce que le navigateur possède déjà, ce qu’il envoie et ce que le serveur lui répond.

SofienAvec SofienIngénieur et enseignant en informatique
Dans ce chapitre

Un cap pour ce chapitre

Ce que vous saurez faire

  • Reconstituer l’ordre d’un échange client serveur
  • Identifier les informations transmises dans une requête HTTP
  • Expliquer le rôle de HTTPS et des données mémorisées côté client
Les bases utiles pour commencer

Le navigateur joue le rôle de client

Lorsqu’on demande une page, le navigateur envoie une requête à un serveur identifié par l’adresse. Le serveur traite cette demande et renvoie une réponse. Le navigateur interprète les ressources reçues pour afficher le document ; il peut ensuite demander d’autres fichiers, comme une image ou une feuille de style. Client et serveur désignent des rôles dans l’échange, pas nécessairement deux catégories de machines immuables. Un ordinateur peut héberger un serveur dans un autre contexte. Pour une trace simple, on suit chaque demande puis la réponse correspondante.

Une page visible peut résulter de plusieurs échanges : le document principal référence souvent des images, des styles et des scripts. Le nombre de pages ouvertes ne correspond donc pas nécessairement au nombre de requêtes. Une trace simplifiée doit préciser les ressources qu’elle prend en compte.

HTTP structure les messages

Une requête HTTP comporte notamment une méthode, une cible et des en-têtes ; elle peut aussi contenir un corps. Une réponse comporte un statut, des en-têtes et éventuellement un contenu. Un statut 200 indique une réussite habituelle ; 404 signale que la ressource demandée n’a pas été trouvée. Le code de statut ne décrit pas à lui seul la qualité de l’information reçue. La réponse peut contenir du HTML, des données structurées ou un autre type de ressource. Le navigateur utilise ces éléments pour décider comment poursuivre le chargement ou présenter le résultat.

Une réponse 404 est bien une réponse reçue du serveur. Elle diffère d’une absence de réponse causée par un problème de liaison. Le navigateur peut afficher une page explicative fournie avec ce statut ; voir du contenu à l’écran ne signifie donc pas que la ressource demandée existe.

Localiser calculs et données mémorisées

Changer la couleur d’un bouton ou vérifier provisoirement un champ peut se faire dans le navigateur avec les ressources déjà reçues. Lire une base située sur le serveur ou contrôler un accès privé demande un traitement côté serveur. Le client peut mémoriser certaines données, par exemple dans des cookies ou un stockage local. Les cookies correspondant à une requête peuvent être retransmis automatiquement selon leurs règles ; le stockage local n’est pas automatiquement envoyé comme un cookie. Une application peut toutefois décider de transmettre une valeur qu’elle y a lue.

Un cookie n’est transmis que s’il est applicable à la requête selon ses paramètres et les règles du navigateur. L’atelier suppose explicitement cette applicabilité. Il n’affirme pas que tous les cookies partent vers tous les sites ou qu’une action purement locale provoque un envoi.

HTTPS protège le transport, pas toutes les propriétés du site

HTTPS ajoute une protection cryptographique aux échanges HTTP. Il protège notamment la confidentialité et l’intégrité pendant le transport et permet l’authentification du serveur dans le cadre du mécanisme de certificats. Cela n’empêche pas le serveur destinataire de lire les données, ni le navigateur de les conserver. Une adresse en HTTPS n’affirme pas que les conseils du site sont vrais ou que son propriétaire est honnête. Il faut donc distinguer la sécurité du canal, les décisions de stockage et la fiabilité du contenu. Les mécanismes cryptographiques seront approfondis en Terminale.

Le chiffrement ne remplace pas le choix de la bonne destination. Le serveur auquel on s’adresse reçoit les données nécessaires à son traitement. Il faut donc distinguer qui peut lire pendant le transport, qui reçoit la demande et qui décide ensuite de sa conservation.

Suivre un chargement avec plusieurs ressources

Un navigateur demande le document /cours. La réponse contient du HTML qui référence une feuille de style et deux images. Dans un modèle où rien n’est déjà en cache et chaque fichier est distinct, le chargement exige quatre requêtes : une pour le document et trois pour les ressources supplémentaires. Le serveur traite chaque demande correspondante.

Si une image renvoie 404, le document principal peut quand même être affiché. Le défaut concerne alors cette ressource particulière. Lire séparément les cibles et les statuts permet de localiser le problème sans conclure que toute la connexion ou tout le site est indisponible.

Distinguer une préférence locale d’une donnée transmise

Une préférence de couleur peut être enregistrée dans le stockage local puis relue par un script déjà présent. Changer la couleur ne demande aucun échange supplémentaire dans ce scénario. Un cookie applicable, lui, peut accompagner automatiquement une nouvelle demande de page. Le stockage et la transmission sont donc deux étapes distinctes.

Pour savoir si une préférence quitte le navigateur, il faut examiner le programme et les requêtes : un script peut décider de la placer dans un paramètre ou un corps de message. Le seul nom du mécanisme de stockage ne prouve ni qu’une donnée est envoyée, ni qu’elle restera toujours locale.

À vous de faire varier les choses

Qu’est-ce qui part réellement vers le serveur ?

Choisissez une action et les données présentes dans le navigateur. Ce modèle distingue traitement local, requête et réponse.

Lire le résultat de l’expérience initiale

Réponse HTTP 200

Le transport est protégé par HTTPS. La préférence localStorage reste locale dans ce modèle : aucun script ne l’ajoute à la demande.

ÉtapeAction
NavigateurGET /cours
Données transmisesCookie applicable joint
ServeurTraite la demande
RéponseStatut 200
NavigateurInterprète la réponse

Stocker dans le navigateur et transmettre au serveur sont deux événements distincts. Il faut suivre le programme et le protocole pour savoir ce qui circule.

De la compréhension à l’autonomie

À vous de résoudre

Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.

Exercice 1 · S’entraîner#

Remettre un échange en ordre

Ordonnez : réponse HTML reçue ; requête de page envoyée ; HTML interprété par le navigateur ; demande traitée par le serveur.

Indice 1

Le serveur doit recevoir une demande avant de produire sa réponse.

Indice 2

Le navigateur affiche à partir des ressources reçues.

Comprendre la correction

L’ordre est : requête envoyée, demande traitée par le serveur, réponse HTML reçue, puis HTML interprété. Le chargement réel peut ensuite provoquer d’autres requêtes. Cette séquence explique qu’une erreur de réseau peut empêcher l’arrivée de ressources même si le navigateur fonctionne correctement.

Exercice 2 · S’entraîner#

Placer les traitements

Classez ces opérations dans leur lieu habituel : changer localement un texte au clic ; consulter la base privée du site ; vérifier définitivement un mot de passe ; calculer une animation déjà téléchargée.

Indice 1

La base et les secrets ne doivent pas être fournis au navigateur pour ce traitement.

Indice 2

Un programme déjà reçu peut agir sans nouvelle requête.

Comprendre la correction

Le changement de texte et le calcul de l’animation peuvent se faire côté client. La consultation de la base privée et la vérification définitive du mot de passe se font côté serveur dans l’architecture décrite. Le client peut contrôler le format d’une saisie, mais ce contrôle ne remplace pas l’authentification du serveur.

Exercice 3 · S’entraîner#

Un cookie et un stockage local

Une valeur est placée dans localStorage. Est-elle automatiquement ajoutée à toutes les requêtes HTTP comme un cookie correspondant à la destination ?

Indice 1

Les mécanismes de stockage ne possèdent pas les mêmes règles de transmission.

Indice 2

Le programme peut lire la valeur et choisir de l’envoyer.

Comprendre la correction

Non. localStorage fournit un stockage que le programme peut consulter, mais son contenu n’est pas automatiquement attaché aux requêtes comme les cookies applicables. Un script peut cependant lire une valeur et la transmettre explicitement. Il faut examiner le fonctionnement de l’application pour savoir quelles informations quittent le navigateur.

Exercice 4 · S’entraîner#

La promesse exacte de HTTPS

Un utilisateur affirme : « Le site est en HTTPS, donc le serveur ne peut pas lire mon formulaire et toutes ses informations sont fiables. » Corrigez les deux idées.

Indice 1

Le destinataire doit pouvoir traiter les données reçues.

Indice 2

La protection du canal ne vérifie pas les affirmations du contenu.

Comprendre la correction

HTTPS protège le transport entre le navigateur et le serveur, mais le serveur destinataire peut lire le formulaire pour le traiter. Il ne garantit pas non plus la vérité des informations publiées. La présence de HTTPS est une propriété de l’échange sécurisé, distincte de la fiabilité éditoriale ou commerciale du site.

Exercice 5 · Approfondir et relier#

Compter les échanges d’un chargement

Une page référence une feuille de style, un script et deux images distinctes. Rien n’est en cache et chaque ressource nécessite sa propre demande. Comptez les requêtes en incluant le HTML. Si une image renvoie 404, les autres ressources peuvent-elles avoir été reçues ?

Indice 1

Le document principal est lui aussi une ressource.

Indice 2

Chaque réponse possède son propre statut.

Comprendre la correction

On compte cinq requêtes : HTML, style, script et deux images. Une image absente peut renvoyer 404 tandis que les quatre autres ressources sont reçues avec succès. Le navigateur peut donc présenter une page partiellement complète. La trace doit associer chaque statut à la cible concernée.

Exercice 6 · Approfondir et relier#

Une action locale avec un cookie présent

Le navigateur possède un cookie applicable et une préférence locale. Un bouton ne fait que changer une couleur avec un script déjà reçu. Une seconde action demande ensuite /cours. Expliquez les transmissions dans les deux étapes selon le modèle de l’atelier.

Indice 1

La présence d’un cookie ne crée pas une requête.

Indice 2

La préférence locale n’est pas ajoutée explicitement par un script dans ce modèle.

Comprendre la correction

Le changement de couleur ne produit aucune requête, donc aucun cookie n’est transmis à cet instant. La demande de page crée une requête qui peut contenir le cookie applicable. La préférence locale reste locale dans ce modèle, car aucun traitement ne l’ajoute au message. Les données présentes et les données effectivement envoyées ne se confondent pas.

Exercice 7 · Approfondir et relier#

Une réponse absente et une ressource absente

A ne reçoit aucune réponse après une demande. B reçoit une réponse 404 avec un texte explicatif. Comparez ce que ces observations établissent. Un statut 200 sur une troisième page garantirait-il que toutes les informations publiées sont vraies ?

Indice 1

404 prouve qu’une réponse HTTP a été reçue.

Indice 2

Le protocole ne valide pas le contenu éditorial.

Comprendre la correction

Pour A, plusieurs causes restent possibles, notamment une liaison ou un serveur indisponible. Pour B, le serveur a répondu que la ressource demandée n’était pas trouvée. Un statut 200 indique une réussite de la demande selon le protocole, sans garantir la vérité des informations. Il faut distinguer transport, résultat de la requête et fiabilité du contenu.

Les erreurs qui méritent un détour

Attribuer tout changement visuel à un serveur
Un programme exécuté dans le navigateur peut modifier la page sans nouvel échange.
Déduire la confidentialité totale du seul HTTPS
Le navigateur et le serveur restent les extrémités qui utilisent les données ; leur stockage doit être examiné séparément.

La fiche à garder

L’essentiel à retenir

  • HTTP organise des requêtes et des réponses.
  • Les traitements se répartissent entre client et serveur.
  • HTTPS protège le transport mais ne garantit pas la véracité du contenu.

Le prochain pas

Retrouver le catalogue de Première

Ce chapitre s’appuie sur le programme officiel de Première (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.