Un cap pour ce chapitre
Ce que vous saurez faire
- Analyser les champs et les paramètres d’un formulaire
- Distinguer les transmissions GET et POST
- Relier méthode HTTP confidentialité et validation
Les bases utiles pour commencer
Des champs nommés deviennent des paramètres
Un formulaire possède notamment une destination, indiquée par action, et une méthode, indiquée par method. Un champ doit avoir un nom pour participer normalement à l’envoi des valeurs correspondantes. L’étiquette visible aide l’utilisateur, mais ce n’est pas elle qui détermine le nom du paramètre transmis. Un champ name = "ville" contenant Lyon produit ainsi une association ville=Lyon. Certains contrôles ont des règles particulières : une case à cocher non cochée n’envoie généralement pas son paramètre. Pour analyser le résultat, il faut donc examiner la structure du formulaire et son état au moment de la soumission.
Voici un formulaire pédagogique complet pour analyser une soumission. La destination /recherche représente un service d’exemple ; le code décrit la demande, mais sa réponse doit être programmée sur le serveur concerné.
<form action="/recherche" method="get">
<label for="notion">Notion recherchée</label>
<input id="notion" name="notion" value="arbre" required>
<label for="niveau">Niveau</label>
<select id="niveau" name="niveau">
<option value="premiere">Première</option>
<option value="terminale">Terminale</option>
</select>
<button type="submit">Rechercher</button>
</form>L’identifiant relie un champ à son étiquette ou à un script ; le nom sert de clé dans les données envoyées. Ces attributs peuvent avoir la même valeur par commodité, mais ils ne jouent pas le même rôle. Un nom manquant peut donc laisser un champ visible sans paramètre transmis.
GET place les paramètres dans la cible de la requête
Un formulaire GET encode les paramètres dans la partie de requête de l’URL, après le point d’interrogation. Une recherche peut produire /recherche?notion=graphe&niveau=terminale. Cette adresse peut être copiée, partagée ou ajoutée à un favori pour retrouver le même résultat, si le site respecte ce fonctionnement. GET est destiné à demander une représentation sans provoquer une modification applicative attendue. Une suppression de données ne devrait donc pas être déclenchée simplement par l’ouverture d’un lien GET. Cette distinction concerne le sens de la demande, pas seulement l’emplacement du texte.
Les caractères spéciaux doivent être encodés pour ne pas être confondus avec les séparateurs de l’URL. Un espace peut notamment apparaître sous une forme encodée. Cette transformation rend le message transportable ; elle n’est pas un chiffrement et permet de retrouver les caractères d’origine.
POST transmet habituellement les paramètres dans le corps
Un formulaire POST envoie ses données dans le corps de la requête selon l’encodage choisi, au lieu de les ajouter à l’URL de la même manière. Il convient notamment aux soumissions que le serveur doit traiter et qui peuvent modifier son état. POST ne signifie pas « chiffré » : sans HTTPS, le contenu peut circuler sans la protection cryptographique attendue. Même avec HTTPS, le serveur reçoit les données lisibles. L’URL plus courte ne prouve donc pas à elle seule que l’application ne conserve rien ni que les informations sont accessibles uniquement à l’utilisateur.
Un corps de requête reste observable par le serveur destinataire et par les outils du navigateur. Le choisir peut répondre au sens de l’action et au format des données. La confidentialité du transport dépend séparément du canal HTTPS.
Valider aux bons endroits et vérifier la réponse
Les contrôles du navigateur, comme required ou un type de champ, améliorent la saisie. Ils ne dispensent pas le serveur de vérifier les valeurs, car une demande peut être construite en dehors de la page. Le serveur doit ensuite répondre de manière compréhensible : succès, erreur de champ, absence de ressource ou autre situation. Dans une analyse, suivez une valeur depuis le champ jusqu’au paramètre reçu, puis jusqu’à son utilisation. N’envoyez jamais de mots de passe ou d’informations sensibles dans une URL partageable ; choisissez aussi une collecte proportionnée au besoin réel.
Le serveur doit prévoir les paramètres absents, répétés ou invalides selon le contrat du service. Un formulaire donné produit une forme habituelle de demande, mais il ne limite pas toutes les demandes possibles. Les décisions essentielles doivent donc être vérifiées lors de leur réception.
Suivre une valeur avec un espace et un accent
Une recherche sur « arbre binaire » en GET produit une association dont le nom est notion et la valeur le texte complet. L’espace doit être représenté dans l’URL sans devenir un séparateur de paramètres. Dans le modèle de l’atelier, il apparaît sous la forme %20. Pour « réseau », les octets UTF-8 de l’accent sont également encodés.
Le serveur décode ensuite ces représentations pour retrouver la valeur recherchée. Cette opération est réversible et ne protège pas un secret. Il faut distinguer encodage des caractères, emplacement du paramètre et chiffrement de la communication : ces mécanismes répondent à des besoins différents.
Choisir la méthode selon l’intention de l’action
Une recherche de chapitre convient à GET : la demande peut être répétée ou conservée comme favori pour retrouver la même représentation. Une soumission destinée à enregistrer une inscription correspond à un traitement qui peut modifier l’état du serveur et utilise habituellement POST.
Le serveur doit néanmoins programmer ce sens correctement. Changer seulement l’attribut du formulaire ne crée ni validation ni enregistrement dans une base. Pour analyser un exercice, identifiez le but de la requête, les paramètres présents, leur emplacement et la réponse attendue. Une méthode indique une convention d’échange, pas l’intégralité du fonctionnement de l’application.
À vous de faire varier les choses
Suivez la soumission du formulaire
Choisissez la méthode, le contenu et le canal. Aucun envoi réel n’a lieu ; l’atelier reconstitue une requête pédagogique.
Lire le résultat de l’expérience initiale
GET /recherche?notion=arbre%20binaire&corriges=oui
Les paramètres apparaissent dans l’URL, qui peut être conservée ou partagée. HTTPS protège le transport, et le serveur reçoit les valeurs.
| Élément | Valeur |
|---|---|
| Méthode | GET |
| Cible | /recherche?notion=arbre%20binaire&corriges=oui |
| Corps | Vide |
| Paramètre corriges | oui |
Le formulaire, la méthode et le canal déterminent des aspects différents de l’échange. Suivre les champs évite les raccourcis sur la confidentialité.
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.
Lire une recherche
Un formulaire GET vers /recherche contient notion = arbre et niveau = premiere. Écrivez une URL possible et indiquez ce qui permet de partager la recherche.
Indice 1
Les paramètres suivent un point d’interrogation.
Indice 2
Deux associations sont séparées par une esperluette.
Comprendre la correction
Une URL possible est /recherche?notion=arbre&niveau=premiere. Les valeurs font partie de l’adresse, ce qui permet de la copier pour demander le même résultat. Leur ordre peut varier sans modifier le sens si le serveur identifie correctement les noms. Le comportement final dépend du traitement prévu par l’application.
Un nom manquant
Un champ affiche « Prénom » et contient Lina, mais ne possède pas d’attribut name. Pourquoi la valeur peut-elle manquer lors d’une soumission HTML ordinaire ?
Indice 1
L’étiquette et le nom transmis n’ont pas le même rôle.
Indice 2
Le serveur reçoit des associations nom-valeur.
Comprendre la correction
L’étiquette décrit le champ pour l’utilisateur, mais l’attribut name fournit la clé du paramètre envoyé. Sans ce nom, le champ ne participe pas normalement à la soumission de ses données. Il faut ajouter un nom cohérent, comme prenom, et conserver une étiquette correctement associée pour l’accessibilité.
POST n’est pas un chiffrement
Un élève choisit POST sur une adresse HTTP et affirme que les données sont protégées parce qu’elles ne sont plus visibles dans l’URL. Expliquez l’erreur.
Indice 1
L’emplacement d’une donnée et la protection du transport sont deux propriétés différentes.
Indice 2
HTTPS fournit le canal chiffré, pas la méthode POST.
Comprendre la correction
POST place généralement les données dans le corps, mais HTTP sans TLS ne leur apporte pas le chiffrement de HTTPS. Elles peuvent donc être observables pendant le transport selon le réseau. Il faut utiliser HTTPS et traiter correctement les données côté serveur. L’absence dans l’URL ne constitue pas une garantie de confidentialité.
Une case non cochée
Un formulaire contient une case name = "lettre" value="oui". Comparez l’envoi lorsqu’elle est cochée puis lorsqu’elle ne l’est pas. Que doit prévoir le serveur ?
Indice 1
Une case non cochée est normalement absente des paramètres.
Indice 2
L’absence doit être interprétée explicitement.
Comprendre la correction
Lorsqu’elle est cochée, le paramètre lettre=oui est envoyé. Lorsqu’elle ne l’est pas, aucun paramètre lettre n’est normalement transmis. Le serveur doit donc prévoir ce cas, par exemple comme une absence de demande d’inscription. Il ne doit pas supposer que tous les noms de champs arrivent toujours avec une valeur vide ou fausse.
Trois noms à ne pas confondre
Un champ affiche l’étiquette « Votre ville », possède l’identifiant ville_formulaire, le nom destination et contient Lyon. Quel nom-valeur est transmis ? Quel attribut le label doit-il référencer ? Expliquez ce qui change si le nom est supprimé.
Indice 1
L’étiquette n’est pas la clé de transmission.
Indice 2
Le label vise l’identifiant du champ.
Comprendre la correction
La soumission transmet destination=Lyon. Le label doit référencer ville_formulaire pour être associé au champ. Si le nom manque, ce champ ne participe pas normalement à l’envoi HTML ordinaire, même s’il reste visible et correctement étiqueté. Les rôles de présentation, d’association et de transmission sont distincts.
Une recherche et une option absente
Un formulaire GET vers /recherche contient notion égale à arbre et une case corriges=oui non cochée. Donnez les paramètres envoyés, puis expliquez le changement si elle est cochée. Le serveur doit-il attendre une valeur faux quand elle est décochée ?
Indice 1
Une case non cochée est normalement omise.
Indice 2
L’absence doit avoir une interprétation prévue.
Comprendre la correction
Sans coche, seule l’association notion=arbre est envoyée. Avec coche, on ajoute corriges=oui. Le serveur ne doit pas supposer que le paramètre arrive avec la valeur faux : il est absent dans la première situation. Il peut interpréter cette absence comme une recherche sans l’option, conformément au contrat.
Séparer trois propriétés de l’envoi
Une soumission POST utilise HTTPS et envoie un texte contenant un espace encodé. Distinguez le rôle de POST, de HTTPS et de l’encodage. Le serveur peut-il lire le texte ? Changer POST en GET supprimerait-il le chiffrement si HTTPS reste utilisé ?
Indice 1
La méthode, le canal et la représentation sont trois choix indépendants.
Indice 2
Le destinataire doit retrouver les données pour les traiter.
Comprendre la correction
POST place ici les paramètres dans le corps. HTTPS protège la communication pendant le transport. L’encodage représente les caractères dans le format du message. Le serveur retrouve le texte lisible. Passer à GET déplace les paramètres dans l’URL du modèle, sans supprimer à lui seul la protection HTTPS du transport.
Les erreurs qui méritent un détour
- Confondre le label avec le nom du paramètre
- Le label renseigne l’utilisateur ;
namedétermine la clé envoyée par le formulaire. - Présenter
POSTcomme une protection cryptographique GET et POST organisent la demande ; HTTPSprotège le transport dans les deux cas.
La fiche à garder
L’essentiel à retenir
- Un formulaire transmet des paramètres nommés.
GET facilite les demandes partageables dans une URL.POST et HTTPSrépondent à des questions différentes.
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.
