Première
Interactions entre l'homme et la machine sur le Web
Une page Web moderne n'est pas un simple document figé : elle réagit aux actions de l'utilisateur (clics, survols, saisies) et communique avec un serveur distant. Ce chapitre étudie les événements et le JavaScript qui rendent une page interactive, puis le modèle client-serveur et le protocole HTTP qui permettent à un navigateur et à un serveur Web d'échanger des données, notamment via les formulaires.
Événements et interactions JavaScript dans une page Web
Les composants graphiques d'une page Web
Une page HTML propose différents éléments permettant à l'utilisateur d'interagir :
- les liens hypertextes (
<a href="...">) ; - les boutons (
<button>) ; - les champs de texte (
<input type="text">) et mots de passe (<input type="password">) ; - les cases à cocher (
<input type="checkbox">) et boutons radio (<input type="radio">) ; - les listes déroulantes (
<select>/<option>).
Ces éléments sont regroupés dans un formulaire (<form>) lorsqu'ils sont destinés à être transmis au serveur (voir la notion suivante).
Les événements
Un événement est une action détectée par le navigateur : un clic de souris, un passage du curseur au-dessus d'un élément, une saisie au clavier, la soumission d'un formulaire, etc.
| Événement | Se déclenche quand... |
|---|---|
onclick | l'utilisateur clique sur l'élément |
onmouseover | le curseur entre dans l'élément |
onmouseout | le curseur quitte l'élément |
onchange | la valeur d'un champ est modifiée |
onsubmit | un formulaire est soumis |
Associer un événement à une fonction JavaScript
On associe un événement à du code JavaScript en donnant, comme valeur de l'attribut d'événement, le nom d'une fonction à exécuter.
<button onclick="maFonction()">Cliquer ici</button>function maFonction() {
alert("Le bouton a été cliqué !");
}Important. Le code de maFonction() n'est exécuté qu'au moment du clic, pas au chargement de la page : c'est la différence entre écrire une instruction directement dans le fichier JavaScript (exécutée dès le chargement) et l'écrire à l'intérieur d'une fonction associée à un événement (exécutée seulement quand l'événement se produit).
Modifier une page depuis JavaScript
JavaScript permet de retrouver un élément HTML grâce à document.querySelector, puis de le modifier :
document.querySelector("#monPara").style.color = "red"; // change le style
document.querySelector("#monPara").classList.add("actif"); // ajoute une classe CSS
document.querySelector("#monPara").classList.remove("actif"); // retire une classe CSS
document.querySelector("#monPara").innerHTML = "Nouveau texte"; // change le contenuExemple complet.
<p id="monPara">Survolez ou cliquez sur les boutons</p>
<button onclick="document.querySelector('#monPara').style.color='red'">Rouge</button>
<button onclick="document.querySelector('#monPara').style.color='green'">Vert</button>Chaque bouton déclenche, au clic, une instruction JavaScript qui modifie la couleur du texte du paragraphe d'identifiant monPara.
Exercice — Analyser un clic sur un bouton
On donne l'extrait de page Web suivant :
<p id="message">Bonjour !</p>
<button onclick="changerTexte()">Cliquer</button>function changerTexte() {
document.querySelector("#message").innerHTML = "Vous avez cliqué sur le bouton !";
}- Quel événement déclenche l'exécution de la fonction
changerTexte? - Qu'affiche le paragraphe avant tout clic ? Et juste après un clic sur le bouton ?
- Modifier le code JavaScript pour qu'en plus de changer le texte, le clic change également la couleur du texte du paragraphe en bleu.
Exercice — Un formulaire avec plusieurs événements
On donne l'extrait de page suivant, qui combine un menu déroulant et une zone de texte :
<select id="theme" onchange="changerTheme()">
<option value="clair">Thème clair</option>
<option value="sombre">Thème sombre</option>
</select>
<p id="zone" onmouseover="survol()" onmouseout="finSurvol()">Survolez-moi</p>function changerTheme() {
var choix = document.querySelector("#theme").value;
if (choix === "sombre") {
document.querySelector("#zone").style.backgroundColor = "black";
document.querySelector("#zone").style.color = "white";
} else {
document.querySelector("#zone").style.backgroundColor = "white";
document.querySelector("#zone").style.color = "black";
}
}
function survol() {
document.querySelector("#zone").style.fontWeight = "bold";
}
function finSurvol() {
document.querySelector("#zone").style.fontWeight = "normal";
}- Combien d'événements différents sont utilisés dans cet extrait ? Les nommer, et préciser pour chacun l'élément HTML concerné et la fonction JavaScript associée.
- L'utilisateur sélectionne "Thème sombre" dans le menu déroulant. Que deviennent la couleur de fond et la couleur du texte de la zone
#zone? - Sans changer de thème, l'utilisateur déplace ensuite la souris au-dessus du paragraphe
#zone, puis la retire. Décrire, dans l'ordre, les deux fonctions exécutées et leur effet sur le style du texte. - Le menu déroulant affiche "Thème clair" au chargement de la page. La fonction
changerThemes'exécute-t-elle à ce moment-là ? Justifier.
Exercice — Corriger un bug dans un gestionnaire d'événement
On donne l'extrait de page suivant :
<p id="info">Informations masquées</p>
<button onclick="afficher()">Afficher</button>
<button onclick="masquer()">Masquer</button>function afficher() {
document.querySelector("#information").style.display = "block";
}
function masquer() {
document.querySelector("#info").style.display = "none";
}- L'utilisateur clique sur le bouton "Afficher". Que renvoie
document.querySelector("#information"), sachant qu'aucun élément de la page ne porte cet identifiant ? - En déduire ce qui se passe réellement lorsqu'on essaie d'exécuter la suite de l'instruction
.style.display = "block"sur cette valeur. - Identifier précisément la ligne fautive du code JavaScript et expliquer l'erreur.
- Corriger le code JavaScript pour que le bouton "Afficher" fonctionne correctement.
- Le bouton "Masquer" fonctionne-t-il correctement ? Justifier en comparant l'identifiant utilisé dans le HTML et celui utilisé dans le JavaScript.
Exercice — Un compteur de clics : variable globale et innerHTML
On considère la page suivante.
<p>Nombre de clics : <span id="compteur">0</span></p>
<button onclick="incrementer()">+1</button>
<button onclick="remettreAZero()">Remise à zéro</button>let n = 0;
function incrementer() {
n = n + 1;
document.querySelector("#compteur").innerHTML = n;
}
function remettreAZero() {
n = 0;
document.querySelector("#compteur").innerHTML = n;
}- Qu'affiche le paragraphe au chargement de la page ? Puis après trois clics sur « +1 », un clic sur « Remise à zéro » et deux nouveaux clics sur « +1 » ?
- Un élève déplace la ligne
let n = 0;à l'intérieur de la fonctionincrementer, juste avantn = n + 1;. Que constate-t-il en cliquant plusieurs fois sur « +1 » ? Expliquer. - Ajouter un bouton « −1 » et la fonction associée, sans que le compteur puisse devenir négatif.
- L'utilisateur clique dix fois, puis recharge la page. Que devient le compteur ? Le serveur a-t-il été informé des clics ?
Exercice — Vérifier un formulaire avant l'envoi avec onsubmit
Voici le formulaire d'inscription d'un club, accompagné d'un script.
<form action="inscription.php" method="post" onsubmit="return verifier()">
<label>Pseudo</label> : <input type="text" id="pseudo" name="pseudo" />
<label>Mot de passe</label> : <input type="password" id="mdp" name="mdp" />
<input type="submit" value="S'inscrire" />
</form>
<p id="erreur"></p>function verifier() {
let mdp = document.querySelector("#mdp").value;
if (mdp.length < 8) {
document.querySelector("#erreur").innerHTML =
"Mot de passe trop court (8 caractères minimum).";
return false;
}
return true;
}- L'utilisateur saisit le mot de passe
soleilet clique sur « S'inscrire ». Que se passe-t-il ? Même question avecsoleil2026. - Pourquoi lit-on le mot de passe avec
.valueet non avec.innerHTML? - Compléter la fonction pour refuser aussi un pseudo vide, avec un message adapté.
- Le programme
inscription.php, sur le serveur, doit-il encore vérifier la longueur du mot de passe ? Justifier.
QCM — Événements et JavaScript
Client, serveur, HTTP et formulaires
Le modèle client-serveur
Sur le Web, deux ordinateurs communiquent selon des rôles différents :
- le client (votre navigateur) demande des ressources ;
- le serveur fournit ces ressources (pages HTML, images, fichiers CSS ou JavaScript...) à tous les clients qui les demandent.
Visiter une page Web déclenche un échange client-serveur : le client demande le fichier HTML, puis les ressources qu'il référence (images, CSS, JavaScript).
Le protocole HTTP
HTTP (HyperText Transfer Protocol) est l'ensemble des règles qui permettent au client d'envoyer une requête au serveur et au serveur de renvoyer une réponse.
Une requête HTTP contient notamment :
- une méthode (l'action demandée) ;
- l'URL de la ressource demandée ;
- la version du protocole utilisé.
Une réponse HTTP contient notamment :
- un code de statut (
200: la ressource a été trouvée,404: la ressource est introuvable...) ; - le corps de la réponse (par exemple le code HTML de la page).
Les principales méthodes HTTP :
| Méthode | Rôle |
|---|---|
GET | demander une ressource, sans effet sur le serveur |
POST | soumettre des données au serveur pour traitement |
Exécution côté client, exécution côté serveur
Il est essentiel de distinguer ce qui s'exécute où, et dans quel ordre :
- le client (navigateur) envoie une requête HTTP au serveur ;
- le serveur exécute, si besoin, un programme (en Python, PHP...) qui génère la page HTML à renvoyer ; c'est l'exécution côté serveur ;
- le serveur envoie sa réponse (le code HTML, éventuellement du CSS et du JavaScript) ;
- le navigateur reçoit cette réponse, l'affiche, puis exécute le JavaScript qu'elle contient ; c'est l'exécution côté client.
Le code HTML, CSS et JavaScript reçu par le navigateur s'exécute donc toujours après le serveur, et côté client (dans le navigateur, pas sur le serveur).
Des données mémorisées côté client : les cookies
Le protocole HTTP est, à la base, sans état : le serveur ne se souvient pas d'une requête à l'autre. Pour pallier cela, le serveur peut demander au navigateur de mémoriser une petite information, appelée cookie. À chaque nouvelle requête vers ce même serveur, le navigateur retransmet automatiquement ce cookie, ce qui permet par exemple de garder un utilisateur connecté d'une page à l'autre.
HTTP et HTTPS : la transmission chiffrée
Le HTTPS est la version sécurisée du protocole HTTP : les données échangées entre le client et le serveur sont chiffrées, et donc illisibles pour un tiers qui intercepterait la communication. On reconnaît une connexion HTTPS au préfixe https:// dans la barre d'adresse (souvent accompagné d'un cadenas). Il faut toujours vérifier la présence du HTTPS avant de transmettre des données sensibles (mot de passe, coordonnées bancaires...).
Le formulaire d'une page Web
Un formulaire HTML permet à l'utilisateur de saisir des données et de les envoyer au serveur. Il est délimité par la balise <form>, qui possède deux attributs essentiels :
action: l'URL vers laquelle la requête sera envoyée ;method: la méthode HTTP utilisée (getoupost).
<form action="traitement.php" method="post">
<label>Nom</label> : <input type="text" name="nom" />
<label>Mot de passe</label> : <input type="password" name="mdp" />
<input type="submit" value="Envoyer" />
</form>GET ou POST ?
| Méthode GET | Méthode POST | |
|---|---|---|
| Emplacement des données | dans l'URL (?nom=Martin&...) | dans le corps de la requête |
| Visibilité | visibles, modifiables dans la barre d'adresse | non visibles directement |
| Usage recommandé | recherche, filtrage (données non sensibles) | envoi de données sensibles ou modifiant le serveur |
À noter. La méthode POST cache les données de l'URL, mais ne les chiffre pas : sans HTTPS, elles restent lisibles par quiconque intercepte la requête.
Exercice — Comparer GET et POST
On donne deux versions d'un même formulaire de connexion :
<!-- Version A -->
<form action="connexion.php" method="get">
<input type="text" name="identifiant" />
<input type="password" name="motdepasse" />
<input type="submit" value="Se connecter" />
</form>
<!-- Version B -->
<form action="connexion.php" method="post">
<input type="text" name="identifiant" />
<input type="password" name="motdepasse" />
<input type="submit" value="Se connecter" />
</form>- Pour la version A, à quoi ressemblerait l'URL affichée après validation du formulaire, si l'utilisateur saisit
sophiecomme identifiant etazertycomme mot de passe ? - Laquelle des deux versions faut-il utiliser pour ce formulaire de connexion ? Justifier.
- Le formulaire choisi en question 2 garantit-il, à lui seul, que le mot de passe est protégé contre une interception ? Justifier.
Exercice — Remettre dans l'ordre une communication client-serveur
Un internaute saisit dans son navigateur l'adresse d'un site marchand et consulte la fiche d'un produit. Voici, dans le désordre, quatre étapes de cet échange :
A. Le navigateur affiche la page HTML reçue. B. Le serveur génère dynamiquement le code HTML de la fiche produit. C. Le navigateur envoie une requête HTTP au serveur avec l'URL de la fiche produit. D. Le serveur envoie sa réponse HTTP contenant le code HTML généré.
- Remettre ces quatre étapes dans l'ordre chronologique correct.
- Préciser, pour chacune des étapes B et A, si elle s'exécute côté client ou côté serveur.
Exercice — Lire une URL et les paramètres d'un formulaire GET
Après une recherche sur un site de réservation, la barre d'adresse affiche :
https://www.example.com/recherche/hotels.php?ville=Rabat&nuits=3&budget=800
- Identifier dans cette URL : le protocole, le nom de domaine du serveur, le chemin de la ressource demandée, et les paramètres transmis avec leurs valeurs.
- La page de recherche contient le formulaire suivant.
<form action="/recherche/hotels.php" method="get">
<input type="text" name="ville" />
<input type="number" name="nuits" />
<input type="submit" value="Chercher" />
</form>L'utilisateur saisit Fès et 2. Quelle URL le navigateur demande-t-il ? On rappelle que les caractères non autorisés dans une URL sont encodés : l'espace devient +, et une lettre accentuée est remplacée par les octets de son codage UTF-8, écrits en hexadécimal et précédés de % (« è » se code C3 A8 en UTF-8).
- Que deviendrait cette URL si le formulaire utilisait
method="post"? - Un utilisateur remplace à la main
budget=800parbudget=-5dans la barre d'adresse et valide. Que montre cette expérience ? Quelle conséquence pour le programmehotels.php?
Exercice — Codes de statut et chronologie des requêtes d'une page
L'outil « Réseau » d'un navigateur a enregistré les requêtes suivantes pendant la visite d'une page du site d'un club, puis l'envoi de son formulaire d'inscription.
| N° | Méthode | Ressource demandée | Code de statut |
|---|---|---|---|
| 1 | GET | /club/index.html | 200 |
| 2 | GET | /club/style.css | 200 |
| 3 | GET | /club/logo.png | 404 |
| 4 | GET | /club/script.js | 200 |
| 5 | GET | /club/photos/equipe.jpg | 200 |
| 6 | POST | /club/inscription.php | 500 |
- Combien de requêtes le navigateur a-t-il émises pour afficher la page ? Pourquoi la requête n° 1 est-elle nécessairement la première ?
- Que signifient les codes 200, 404 et 500 ? Décrire ce que voit l'utilisateur pour les requêtes n° 3 et n° 6.
- Les codes commençant par 4 désignent un problème dans la requête, ceux commençant par 5 un problème sur le serveur. Pour chacune des deux erreurs, proposer une cause plausible et la personne qui doit la corriger.
- Où et quand le contenu du fichier
script.jsest-il exécuté ?
QCM — Client, serveur, HTTP et formulaires
Exercices bilan
Associer un événement JavaScript à l'action qu'il déclenche
On considère l'extrait de page suivant :
<p id="statut">Non connecte</p>
<button onclick="document.querySelector('#statut').innerHTML = 'Connecte'">Se connecter</button>
<button onclick="document.querySelector('#statut').innerHTML = 'Non connecte'">Se deconnecter</button>1. Quel événement ? Quel événement JavaScript est utilisé dans ce code pour déclencher l'exécution des instructions ? À quelle action de l'utilisateur correspond-il ?
2. Que fait le code ? En une phrase pour chaque bouton, décrire précisément ce que fait le code associé lorsqu'il s'exécute.
3. Dérouler des clics. L'utilisateur clique d'abord sur « Se connecter », puis sur « Se déconnecter ». Quel est le texte affiché dans le paragraphe #statut après chacun de ces deux clics ?
4. Associer chaque situation à son événement. Le cours présente quatre événements : onclick, onmouseover, onchange, onsubmit. Associer chacune des situations suivantes à l'événement le plus adapté :
a. L'utilisateur survole une image avec la souris, sans cliquer. b. L'utilisateur valide un formulaire d'inscription en cliquant sur le bouton d'envoi. c. L'utilisateur sélectionne une nouvelle option dans une liste déroulante. d. L'utilisateur clique sur un bouton pour agrandir une image.
Lire une requête et une réponse HTTP lors de la visite d'une page
Un utilisateur tape, dans la barre d'adresse de son navigateur, l'URL https://lycee-exemple.fr/accueil. Voici ce qui est échangé :
Requête envoyée par le navigateur :
| Élément | Valeur |
|---|---|
| Méthode | GET |
| URL demandée | /accueil |
Réponse renvoyée par le serveur :
| Élément | Valeur |
|---|---|
| Code de statut | 200 |
| Corps de la réponse | le code HTML de la page d'accueil |
1. Qui envoie quoi ? Qui joue le rôle de client dans cet échange, et qui joue le rôle de serveur ? Qui envoie la requête, et qui envoie la réponse ?
2. Pourquoi cette méthode ? La méthode utilisée est GET. Expliquer, en une phrase, pourquoi cette méthode est adaptée à une simple visite de page.
3. Un code différent. Si l'utilisateur avait fait une faute de frappe et demandé /acceuil (page inexistante), quel code de statut le serveur aurait-il vraisemblablement renvoyé ? Que se passe-t-il alors côté navigateur ?
4. Combien d'échanges au total ? La page d'accueil contient, en plus du HTML, une feuille de style CSS et un script JavaScript. Combien d'échanges requête/réponse au minimum sont nécessaires pour charger complètement cette page ? Justifier.
Créez un compte gratuit : votre première correction est offerte.
Modifier dynamiquement le contenu d'une page avec JavaScript
Une page contient l'extrait suivant, représentant une lampe connectée :
<p id="lampe">Lampe eteinte</p>
<button onclick="document.querySelector('#lampe').innerHTML = 'Lampe allumee'; document.querySelector('#lampe').classList.add('actif')">Allumer</button>
<button onclick="document.querySelector('#lampe').innerHTML = 'Lampe eteinte'; document.querySelector('#lampe').classList.remove('actif')">Eteindre</button>1. Trois façons de modifier une page. Le cours présente trois façons de modifier un élément avec JavaScript : changer son style, changer ses classes CSS, ou changer son contenu. Laquelle (ou lesquelles) sont utilisées dans ce code ? Justifier en citant les instructions concernées.
2. Un clic. L'utilisateur clique sur le bouton « Allumer ». Donner le texte affiché dans le paragraphe #lampe juste après, et indiquer si la classe actif est alors présente sur cet élément.
3. Une séquence de clics. L'utilisateur clique successivement sur : Allumer, puis Allumer une seconde fois, puis Éteindre. Donner le texte affiché après chacun des trois clics. Le second clic sur « Allumer » a-t-il un effet visible ? Justifier en expliquant ce que fait classList.add lorsque la classe est déjà présente.
4. Ajouter une troisième action. Écrire l'attribut onclick d'un troisième bouton « Basculer », qui doit afficher Lampe allumee si le texte actuellement affiché est Lampe eteinte, et Lampe eteinte sinon. (On pourra s'appuyer sur document.querySelector('#lampe').innerHTML pour lire le texte actuel dans une fonction JavaScript séparée, appelée depuis l'attribut onclick.)
Exécution au chargement de la page ou lors d'un événement ?
On considère le code JavaScript suivant, associé à la page HTML qui le suit :
<p id="message">En attente</p>
<button onclick="reagirAuClic()">Cliquez ici</button>document.querySelector('#message').innerHTML = 'Page chargee';
function reagirAuClic() {
document.querySelector('#message').innerHTML = 'Bouton clique';
}1. Juste après le chargement. Le navigateur vient de finir de charger la page, et l'utilisateur n'a encore rien cliqué. Quel texte le paragraphe #message affiche-t-il à cet instant ? Justifier en identifiant quelle ligne du script s'est exécutée, et à quel moment.
2. Après un clic. L'utilisateur clique ensuite sur le bouton. Quel texte le paragraphe affiche-t-il désormais ?
3. Le piège classique. Un élève affirme : « la fonction reagirAuClic s'exécute dès que la page se charge, donc le paragraphe affiche Bouton clique immédiatement, avant même le clic. » Expliquer précisément pourquoi cette affirmation est fausse, en utilisant la distinction faite dans le cours entre une instruction écrite directement dans le fichier JavaScript et une instruction placée à l'intérieur d'une fonction associée à un événement.
4. Une variante. On ajoute une seconde ligne juste après la première, tout en haut du fichier JavaScript : reagirAuClic(); (un appel direct à la fonction, hors de toute fonction et hors de tout gestionnaire d'événement). Que change ce simple ajout au texte affiché juste après le chargement de la page, avant tout clic ?
Créez un compte gratuit : votre première correction est offerte.
Choisir entre les méthodes HTTP GET et POST
1. GET ou POST ? Pour chacune des situations suivantes, indiquer si le formulaire concerné devrait utiliser la méthode GET ou la méthode POST, et justifier à l'aide des critères du cours (sensibilité des données, effet ou non sur le serveur).
a. Une barre de recherche sur un site d'e-commerce, qui affiche les articles correspondant au mot tapé.
b. Un formulaire de connexion, avec un champ identifiant et un champ mot de passe.
c. Un filtre permettant de choisir une fourchette de prix (prix_min, prix_max) pour afficher une liste de produits.
d. Un formulaire permettant de publier un nouveau commentaire sous un article de blog.
2. L'URL d'une recherche. Pour la situation (a), en supposant que le champ de recherche se nomme q et que l'utilisateur tape console, à quoi pourrait ressembler l'URL affichée dans la barre d'adresse après validation de la recherche ?
3. Un avantage de GET dans ce cas précis. Pour la situation (c), quel avantage concret y a-t-il à ce que les critères du filtre apparaissent dans l'URL, que ne permettrait pas POST ?
4. Écrire la balise. Écrire la balise form correspondant à la situation (b), avec un attribut action valant connexion.php et la méthode adaptée.
Créez un compte gratuit : votre première correction est offerte.
Sujet type bac : le formulaire d'inscription à un club
Le site d'un club scientifique propose un formulaire d'inscription, dont on étudie successivement le HTML, l'échange HTTP qu'il déclenche, une amélioration en JavaScript, puis le maintien de la connexion.
Partie A — Le formulaire HTML.
<form action="inscription.php" method="post">
<label>Nom</label> : <input type="text" name="nom" />
<label>Email</label> : <input type="text" name="email" />
<label>Mot de passe</label> : <input type="password" name="mdp" />
<label>Niveau</label> :
<select name="niveau" onchange="afficherNiveau()">
<option value="premiere">Premiere</option>
<option value="terminale">Terminale</option>
</select>
<input type="submit" value="S'inscrire" />
</form>
<p id="message"></p>- À quoi servent respectivement les attributs
actionetmethodde la baliseform? - Pourquoi la méthode
postest-elle appropriée ici, plutôt queget? On donnera deux raisons distinctes.
Partie B — L'échange HTTP déclenché par l'envoi.
- Décrire la requête HTTP envoyée par le navigateur lorsque l'utilisateur remplit le formulaire et clique sur « S'inscrire » : méthode, URL visée, emplacement des données saisies.
- En cas de succès, le serveur renvoie le code
200. Si, par erreur de configuration, l'attributactionavait pointé vers un fichier inexistant, quel code de statut le serveur renverrait-il vraisemblablement à la place ?
Partie C — Un retour visuel en JavaScript.
On souhaite qu'un message s'affiche dans le paragraphe #message dès que l'utilisateur change le niveau sélectionné, sans attendre l'envoi du formulaire.
- Écrire la fonction
afficherNiveau, appelée par l'attributonchangede la liste déroulante, qui doit afficherVous avez choisi : Premieresi l'optionpremiereest sélectionnée, etVous avez choisi : Terminalesinon. (On pourra utiliser la propriétévaluede l'élémentselect, qui renvoie la valeur de l'option actuellement sélectionnée.) - L'utilisateur sélectionne « Terminale », puis change d'avis et sélectionne « Premiere ». Donner, dans l'ordre, les deux textes successivement affichés dans
#message.
Partie D — Rester connecté après l'inscription.
Une fois inscrit, l'utilisateur reste connecté au site lorsqu'il navigue vers la page « Mes séances ».
- Quel mécanisme, décrit en cours, permet au serveur de reconnaître l'utilisateur sur cette nouvelle page, sans lui redemander son mot de passe ?
- Pourquoi est-il indispensable que l'ensemble du site, y compris la page d'inscription elle-même, soit servi en HTTPS et non en simple HTTP ?
Créez un compte gratuit : votre première correction est offerte.