[{"data":1,"prerenderedAt":3927},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires":585,"\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires__counterpart":2261,"\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires__slides":2637,"annexes-memo:\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires":3163,"annexes-slides:\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires":3468},[4,224,440],{"title":5,"path":6,"stem":7,"children":8},"SNT — Seconde","\u002Fsnt-2nde","0.snt-2nde\u002F0.index",[9,10,14,36,66,92,118,144,162,184,206],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"REVIEW pédagogique — SNT 2nde","\u002Fsnt-2nde\u002Freview","0.snt-2nde\u002FREVIEW",{"title":15,"path":16,"stem":17,"children":18},"Internet","\u002Fsnt-2nde\u002Fsa-internet","0.snt-2nde\u002Fsa-internet\u002F0.index",[19,20,24,28,32],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Adresses symboliques et DNS","\u002Fsnt-2nde\u002Fsa-internet\u002Fadresses-dns","0.snt-2nde\u002Fsa-internet\u002F1.adresses-dns",{"title":25,"path":26,"stem":27},"Internet et les réseaux physiques","\u002Fsnt-2nde\u002Fsa-internet\u002Freseaux-physiques","0.snt-2nde\u002Fsa-internet\u002F2.reseaux-physiques",{"title":29,"path":30,"stem":31},"Protocoles TCP\u002FIP et routage des paquets","\u002Fsnt-2nde\u002Fsa-internet\u002Ftcp-ip-routage","0.snt-2nde\u002Fsa-internet\u002F3.tcp-ip-routage",{"title":33,"path":34,"stem":35},"Réseaux pair-à-pair","\u002Fsnt-2nde\u002Fsa-internet\u002Fpair-a-pair","0.snt-2nde\u002Fsa-internet\u002F4.pair-a-pair",{"title":37,"path":38,"stem":39,"children":40},"Le Web","\u002Fsnt-2nde\u002Fsb-web","0.snt-2nde\u002Fsb-web\u002F0.index",[41,42,46,50,54,58,62],{"title":37,"path":38,"stem":39},{"title":43,"path":44,"stem":45},"Histoire du Web","\u002Fsnt-2nde\u002Fsb-web\u002Fhistoire-web","0.snt-2nde\u002Fsb-web\u002F1.histoire-web",{"title":47,"path":48,"stem":49},"URL et hypertexte","\u002Fsnt-2nde\u002Fsb-web\u002Furl-hypertexte","0.snt-2nde\u002Fsb-web\u002F2.url-hypertexte",{"title":51,"path":52,"stem":53},"HTML et CSS — le contenu et la présentation","\u002Fsnt-2nde\u002Fsb-web\u002Fhtml-css","0.snt-2nde\u002Fsb-web\u002F3.html-css",{"title":55,"path":56,"stem":57},"Client-serveur et requêtes HTTP","\u002Fsnt-2nde\u002Fsb-web\u002Fclient-serveur-http","0.snt-2nde\u002Fsb-web\u002F4.client-serveur-http",{"title":59,"path":60,"stem":61},"Moteurs de recherche","\u002Fsnt-2nde\u002Fsb-web\u002Fmoteurs-recherche","0.snt-2nde\u002Fsb-web\u002F5.moteurs-recherche",{"title":63,"path":64,"stem":65},"Sécurité du navigateur et notions juridiques","\u002Fsnt-2nde\u002Fsb-web\u002Fsecurite-droits","0.snt-2nde\u002Fsb-web\u002F6.securite-droits",{"title":67,"path":68,"stem":69,"children":70},"Les réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F0.index",[71,72,76,80,84,88],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Panorama des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpanorama-rs","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F1.panorama-rs",{"title":77,"path":78,"stem":79},"Identité numérique et authentification","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fidentite-numerique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F2.identite-numerique",{"title":81,"path":82,"stem":83},"Le modèle économique des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fmodele-economique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F3.modele-economique",{"title":85,"path":86,"stem":87},"Petit monde et graphes","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpetit-monde-graphes","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F4.petit-monde-graphes",{"title":89,"path":90,"stem":91},"La cyberviolence","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fcyberviolence","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F5.cyberviolence",{"title":93,"path":94,"stem":95,"children":96},"Les données structurées et leur traitement","\u002Fsnt-2nde\u002Fsd-donnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F0.index",[97,98,102,106,110,114],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101},"Données et formats","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-formats","0.snt-2nde\u002Fsd-donnees-structurees\u002F1.donnees-formats",{"title":103,"path":104,"stem":105},"Données structurées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F2.donnees-structurees",{"title":107,"path":108,"stem":109},"Métadonnées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fmetadonnees","0.snt-2nde\u002Fsd-donnees-structurees\u002F3.metadonnees",{"title":111,"path":112,"stem":113},"Traitement de tables","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Ftraitement-tables","0.snt-2nde\u002Fsd-donnees-structurees\u002F4.traitement-tables",{"title":115,"path":116,"stem":117},"Le cloud","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fcloud","0.snt-2nde\u002Fsd-donnees-structurees\u002F5.cloud",{"title":119,"path":120,"stem":121,"children":122},"Localisation, cartographie et mobilité","\u002Fsnt-2nde\u002Fse-localisation-cartographie","0.snt-2nde\u002Fse-localisation-cartographie\u002F0.index",[123,124,128,132,136,140],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"GPS et Galileo — se situer grâce aux satellites","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fgps-galileo","0.snt-2nde\u002Fse-localisation-cartographie\u002F1.gps-galileo",{"title":129,"path":130,"stem":131},"Décoder une trame NMEA","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Ftrame-nmea","0.snt-2nde\u002Fse-localisation-cartographie\u002F2.trame-nmea",{"title":133,"path":134,"stem":135},"Cartes numériques — GeoPortail et OpenStreetMap","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fcartes-numeriques","0.snt-2nde\u002Fse-localisation-cartographie\u002F3.cartes-numeriques",{"title":137,"path":138,"stem":139},"Itinéraires et graphes","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fitineraires-graphes","0.snt-2nde\u002Fse-localisation-cartographie\u002F4.itineraires-graphes",{"title":141,"path":142,"stem":143},"Confidentialité de la position","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fconfidentialite-position","0.snt-2nde\u002Fse-localisation-cartographie\u002F5.confidentialite-position",{"title":145,"path":146,"stem":147,"children":148},"Informatique embarquée et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee","0.snt-2nde\u002Fsf-info-embarquee\u002F0.index",[149,150,154,158],{"title":145,"path":146,"stem":147},{"title":151,"path":152,"stem":153},"Systèmes informatiques embarqués","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fsystemes-embarques","0.snt-2nde\u002Fsf-info-embarquee\u002F1.systemes-embarques",{"title":155,"path":156,"stem":157},"Capteurs et actionneurs","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fcapteurs-actionneurs","0.snt-2nde\u002Fsf-info-embarquee\u002F2.capteurs-actionneurs",{"title":159,"path":160,"stem":161},"IHM et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fihm-objet-connecte","0.snt-2nde\u002Fsf-info-embarquee\u002F3.ihm-objet-connecte",{"title":163,"path":164,"stem":165,"children":166},"Photographie numérique","\u002Fsnt-2nde\u002Fsg-photo-numerique","0.snt-2nde\u002Fsg-photo-numerique\u002F0.index",[167,168,172,176,180],{"title":163,"path":164,"stem":165},{"title":169,"path":170,"stem":171},"Photosites, pixels et résolution","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fpixels-resolution","0.snt-2nde\u002Fsg-photo-numerique\u002F1.pixels-resolution",{"title":173,"path":174,"stem":175},"Les algorithmes de l'appareil photo","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Falgorithmes-photo","0.snt-2nde\u002Fsg-photo-numerique\u002F2.algorithmes-photo",{"title":177,"path":178,"stem":179},"Les métadonnées EXIF","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fmetadonnees-exif","0.snt-2nde\u002Fsg-photo-numerique\u002F3.metadonnees-exif",{"title":181,"path":182,"stem":183},"Traiter une image en Python","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Ftraitement-rgb","0.snt-2nde\u002Fsg-photo-numerique\u002F4.traitement-rgb",{"title":185,"path":186,"stem":187,"children":188},"Notions transversales de programmation","\u002Fsnt-2nde\u002Fsh-prog-notions","0.snt-2nde\u002Fsh-prog-notions\u002F0.index",[189,190,194,198,202],{"title":185,"path":186,"stem":187},{"title":191,"path":192,"stem":193},"Séquences d'instructions et variables","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fsequences-affectations","0.snt-2nde\u002Fsh-prog-notions\u002F1.sequences-affectations",{"title":195,"path":196,"stem":197},"Instructions conditionnelles","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fconditionnelles","0.snt-2nde\u002Fsh-prog-notions\u002F2.conditionnelles",{"title":199,"path":200,"stem":201},"Boucles bornées et non bornées","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles","0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles",{"title":203,"path":204,"stem":205},"Définitions et appels de fonctions","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Ffonctions","0.snt-2nde\u002Fsh-prog-notions\u002F4.fonctions",{"title":207,"path":208,"stem":209,"children":210},"Démo des widgets MDC","\u002Fsnt-2nde\u002Fzz-demo-widgets","0.snt-2nde\u002Fzz-demo-widgets\u002F0.index",[211,212,216,220],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Démo statique — callouts, code, BO, illustration","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fstatique","0.snt-2nde\u002Fzz-demo-widgets\u002F1.statique",{"title":217,"path":218,"stem":219},"Démo interactive — self-eval et python-snippet","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Finteractif","0.snt-2nde\u002Fzz-demo-widgets\u002F2.interactif",{"title":221,"path":222,"stem":223},"Démo · 14 widgets de manipulation NSI","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fwidgets-manipulation","0.snt-2nde\u002Fzz-demo-widgets\u002F3.widgets-manipulation",{"title":225,"path":226,"stem":227,"children":228},"NSI — Première","\u002Fnsi-1ere","1.nsi-1ere\u002F0.index",[229,230,234,256,282,304,328,354,380,410],{"title":225,"path":226,"stem":227},{"title":231,"path":232,"stem":233},"Relecture pédagogique — 8 chapitres NSI 1ère (PA → PH)","\u002Fnsi-1ere\u002Freview","1.nsi-1ere\u002FREVIEW",{"title":235,"path":236,"stem":237,"children":238},"Histoire de l'informatique","\u002Fnsi-1ere\u002Fpa-histoire-info","1.nsi-1ere\u002Fpa-histoire-info\u002F0.index",[239,240,244,248,252],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"De la préantiquité aux machines à calculer","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fpreantiquite-aux-machines","1.nsi-1ere\u002Fpa-histoire-info\u002F1.preantiquite-aux-machines",{"title":245,"path":246,"stem":247},"La machine universelle (1930-1950)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fmachine-universelle","1.nsi-1ere\u002Fpa-histoire-info\u002F2.machine-universelle",{"title":249,"path":250,"stem":251},"Les ordinateurs modernes (1947-1990)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fordinateurs-modernes","1.nsi-1ere\u002Fpa-histoire-info\u002F3.ordinateurs-modernes",{"title":253,"path":254,"stem":255},"Réseaux, Web et IA (1969 à aujourd'hui)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Freseaux-et-web","1.nsi-1ere\u002Fpa-histoire-info\u002F4.reseaux-et-web",{"title":257,"path":258,"stem":259,"children":260},"Représentation des données — types et valeurs","\u002Fnsi-1ere\u002Fpb-types-valeurs","1.nsi-1ere\u002Fpb-types-valeurs\u002F0.index",[261,262,266,270,274,278],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265},"Bases de numération et entiers positifs","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbases-entiers-positifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F1.bases-entiers-positifs",{"title":267,"path":268,"stem":269},"Entiers relatifs et complément à deux","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fentiers-relatifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F2.entiers-relatifs",{"title":271,"path":272,"stem":273},"Nombres flottants et virgule flottante","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fflottants","1.nsi-1ere\u002Fpb-types-valeurs\u002F3.flottants",{"title":275,"path":276,"stem":277},"Textes et encodages — ASCII, ISO-8859-1, Unicode","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Ftextes-encodages","1.nsi-1ere\u002Fpb-types-valeurs\u002F4.textes-encodages",{"title":279,"path":280,"stem":281},"Valeurs booléennes et opérateurs logiques","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbooleens","1.nsi-1ere\u002Fpb-types-valeurs\u002F5.booleens",{"title":283,"path":284,"stem":285,"children":286},"Représentation des données : types construits","\u002Fnsi-1ere\u002Fpc-types-construits","1.nsi-1ere\u002Fpc-types-construits\u002F0.index",[287,288,292,296,300],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"Tableaux et listes","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftableaux-listes","1.nsi-1ere\u002Fpc-types-construits\u002F1.tableaux-listes",{"title":293,"path":294,"stem":295},"Listes en compréhension","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fcomprehension","1.nsi-1ere\u002Fpc-types-construits\u002F2.comprehension",{"title":297,"path":298,"stem":299},"Tuples et p-uplets nommés","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftuples","1.nsi-1ere\u002Fpc-types-construits\u002F3.tuples",{"title":301,"path":302,"stem":303},"Dictionnaires","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fdictionnaires","1.nsi-1ere\u002Fpc-types-construits\u002F4.dictionnaires",{"title":305,"path":306,"stem":307,"children":308},"Traitement de données en tables","\u002Fnsi-1ere\u002Fpd-tables-donnees","1.nsi-1ere\u002Fpd-tables-donnees\u002F0.index",[309,310,314,318,322],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313},"Tables et CSV","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv","1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv",{"title":315,"path":316,"stem":317},"Recherche et filtrage","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Frecherche","1.nsi-1ere\u002Fpd-tables-donnees\u002F2.recherche",{"title":319,"path":320,"stem":321},"Trier une table","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftri","1.nsi-1ere\u002Fpd-tables-donnees\u002F3.tri",{"title":323,"path":324,"stem":325,"children":326},"Fusion et indexation","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ffusion-indexation","1.nsi-1ere\u002Fpd-tables-donnees\u002F4.fusion-indexation",[327],{"title":323,"path":324,"stem":325},{"title":329,"path":330,"stem":331,"children":332},"IHM sur le Web","\u002Fnsi-1ere\u002Fpe-ihm-web","1.nsi-1ere\u002Fpe-ihm-web\u002F0.index",[333,334,338,342,346,350],{"title":329,"path":330,"stem":331},{"title":335,"path":336,"stem":337},"HTML et CSS — rappel de structure","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fhtml-css-bases","1.nsi-1ere\u002Fpe-ihm-web\u002F1.html-css-bases",{"title":339,"path":340,"stem":341},"Formulaires HTML","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires","1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires",{"title":343,"path":344,"stem":345},"Événements JavaScript","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fevenements-js","1.nsi-1ere\u002Fpe-ihm-web\u002F3.evenements-js",{"title":347,"path":348,"stem":349},"Manipulation du DOM","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fdom-interaction","1.nsi-1ere\u002Fpe-ihm-web\u002F4.dom-interaction",{"title":351,"path":352,"stem":353},"Client, serveur et HTTP","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fclient-serveur-http","1.nsi-1ere\u002Fpe-ihm-web\u002F5.client-serveur-http",{"title":355,"path":356,"stem":357,"children":358},"Architectures matérielles et systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os","1.nsi-1ere\u002Fpf-archi-os\u002F0.index",[359,360,364,368,372,376],{"title":355,"path":356,"stem":357},{"title":361,"path":362,"stem":363},"Le modèle de von Neumann","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fvon-neumann","1.nsi-1ere\u002Fpf-archi-os\u002F1.von-neumann",{"title":365,"path":366,"stem":367},"Périphériques et interface homme-machine","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fperipheriques-ihm","1.nsi-1ere\u002Fpf-archi-os\u002F2.peripheriques-ihm",{"title":369,"path":370,"stem":371},"Les systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fsystemes-exploitation","1.nsi-1ere\u002Fpf-archi-os\u002F3.systemes-exploitation",{"title":373,"path":374,"stem":375},"Linux et le shell","\u002Fnsi-1ere\u002Fpf-archi-os\u002Flinux-shell","1.nsi-1ere\u002Fpf-archi-os\u002F4.linux-shell",{"title":377,"path":378,"stem":379},"Réseaux et protocoles","\u002Fnsi-1ere\u002Fpf-archi-os\u002Freseaux","1.nsi-1ere\u002Fpf-archi-os\u002F5.reseaux",{"title":381,"path":382,"stem":383,"children":384},"Langages et programmation","\u002Fnsi-1ere\u002Fpg-langages-prog","1.nsi-1ere\u002Fpg-langages-prog\u002F0.index",[385,386,390,394,398,402,406],{"title":381,"path":382,"stem":383},{"title":387,"path":388,"stem":389},"Diversité et unité des langages de programmation","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages","1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages",{"title":391,"path":392,"stem":393},"Constructions élémentaires","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fconstructions-elementaires","1.nsi-1ere\u002Fpg-langages-prog\u002F2.constructions-elementaires",{"title":395,"path":396,"stem":397},"Fonctions","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions","1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions",{"title":399,"path":400,"stem":401},"Spécification d'une fonction","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fspecification","1.nsi-1ere\u002Fpg-langages-prog\u002F4.specification",{"title":403,"path":404,"stem":405},"Mise au point des programmes","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fmise-au-point","1.nsi-1ere\u002Fpg-langages-prog\u002F5.mise-au-point",{"title":407,"path":408,"stem":409},"Utilisation de bibliothèques","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fbibliotheques","1.nsi-1ere\u002Fpg-langages-prog\u002F6.bibliotheques",{"title":411,"path":412,"stem":413,"children":414},"Algorithmique","\u002Fnsi-1ere\u002Fph-algorithmique","1.nsi-1ere\u002Fph-algorithmique\u002F0.index",[415,416,420,424,428,432,436],{"title":411,"path":412,"stem":413},{"title":417,"path":418,"stem":419},"Parcours séquentiel d'un tableau","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel","1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel",{"title":421,"path":422,"stem":423},"Bases de la complexité","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fcomplexite-bases","1.nsi-1ere\u002Fph-algorithmique\u002F2.complexite-bases",{"title":425,"path":426,"stem":427},"Tris par sélection et par insertion","\u002Fnsi-1ere\u002Fph-algorithmique\u002Ftris","1.nsi-1ere\u002Fph-algorithmique\u002F3.tris",{"title":429,"path":430,"stem":431},"Recherche dichotomique","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fdichotomie","1.nsi-1ere\u002Fph-algorithmique\u002F4.dichotomie",{"title":433,"path":434,"stem":435},"Algorithmes gloutons","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons","1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons",{"title":437,"path":438,"stem":439},"Les k plus proches voisins (k-NN)","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fknn","1.nsi-1ere\u002Fph-algorithmique\u002F6.knn",{"title":441,"path":442,"stem":443,"children":444},"NSI — Terminale","\u002Fnsi-tale","2.nsi-tale\u002F0.index",[445,446,450,476,498,536,560],{"title":441,"path":442,"stem":443},{"title":447,"path":448,"stem":449},"Review pédagogique — chapitres NSI Terminale (TA, TB, TC, TD, TE)","\u002Fnsi-tale\u002Freview","2.nsi-tale\u002FREVIEW",{"title":451,"path":452,"stem":453,"children":454},"Structures de données","\u002Fnsi-tale\u002Fta-structures-donnees","2.nsi-tale\u002Fta-structures-donnees\u002F0.index",[455,456,460,464,468,472],{"title":451,"path":452,"stem":453},{"title":457,"path":458,"stem":459},"Objet, classe, interface","\u002Fnsi-tale\u002Fta-structures-donnees\u002Finterface-implementation","2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation",{"title":461,"path":462,"stem":463},"Implémenter une structure — l'exemple de la file FIFO","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fimplementer-une-structure","2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure",{"title":465,"path":466,"stem":467},"Listes, piles, files, dictionnaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Flistes-piles-files-dict","2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict",{"title":469,"path":470,"stem":471},"Arbres binaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Farbres-binaires","2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires",{"title":473,"path":474,"stem":475},"Graphes","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fgraphes","2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes",{"title":477,"path":478,"stem":479,"children":480},"Bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees","2.nsi-tale\u002Ftb-bases-de-donnees\u002F0.index",[481,482,486,490,494],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"Le modèle relationnel","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fmodele-relationnel","2.nsi-tale\u002Ftb-bases-de-donnees\u002F1.modele-relationnel",{"title":487,"path":488,"stem":489},"Bases de données relationnelles et anomalies de schéma","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fbase-relationnelle","2.nsi-tale\u002Ftb-bases-de-donnees\u002F2.base-relationnelle",{"title":491,"path":492,"stem":493},"Le langage SQL","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsql","2.nsi-tale\u002Ftb-bases-de-donnees\u002F3.sql",{"title":495,"path":496,"stem":497},"Les systèmes de gestion de bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsgbd","2.nsi-tale\u002Ftb-bases-de-donnees\u002F4.sgbd",{"title":499,"path":500,"stem":501,"children":502},"Architectures matérielles, systèmes d'exploitation et réseaux","\u002Fnsi-tale\u002Ftc-archi-os-reseaux","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F0.index",[503,504,508,512,516,520,524,528,532],{"title":499,"path":500,"stem":501},{"title":505,"path":506,"stem":507},"Le système sur puce (SoC)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fsysteme-sur-puce","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F1.systeme-sur-puce",{"title":509,"path":510,"stem":511},"Processus et ordonnancement par l'OS","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprocessus-os","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F2.processus-os",{"title":513,"path":514,"stem":515},"L'interblocage (deadlock)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Finterblocage","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F3.interblocage",{"title":517,"path":518,"stem":519},"Principes du routage","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Froutage-principes","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F4.routage-principes",{"title":521,"path":522,"stem":523},"Protocoles de routage RIP et OSPF","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprotocoles-rip-ospf","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F5.protocoles-rip-ospf",{"title":525,"path":526,"stem":527},"Chiffrement symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-symetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F6.chiffrement-symetrique",{"title":529,"path":530,"stem":531},"Chiffrement asymétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-asymetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F7.chiffrement-asymetrique",{"title":533,"path":534,"stem":535},"HTTPS — l'échange de clé symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fhttps-tls","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F8.https-tls",{"title":381,"path":537,"stem":538,"children":539},"\u002Fnsi-tale\u002Ftd-langages-prog","2.nsi-tale\u002Ftd-langages-prog\u002F0.index",[540,541,544,548,552,556],{"title":381,"path":537,"stem":538},{"title":403,"path":542,"stem":543},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmise-au-point","2.nsi-tale\u002Ftd-langages-prog\u002F1.mise-au-point",{"title":545,"path":546,"stem":547},"Modularité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite","2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite",{"title":549,"path":550,"stem":551},"Récursivité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Frecursivite","2.nsi-tale\u002Ftd-langages-prog\u002F3.recursivite",{"title":553,"path":554,"stem":555},"Paradigmes de programmation","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes","2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes",{"title":557,"path":558,"stem":559},"Programme comme donnée — calculabilité et indécidabilité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fprogramme-comme-donnee","2.nsi-tale\u002Ftd-langages-prog\u002F5.programme-comme-donnee",{"title":411,"path":561,"stem":562,"children":563},"\u002Fnsi-tale\u002Fte-algorithmique","2.nsi-tale\u002Fte-algorithmique\u002F0.index",[564,565,569,573,577,581],{"title":411,"path":561,"stem":562},{"title":566,"path":567,"stem":568},"Algorithmes sur les arbres binaires","\u002Fnsi-tale\u002Fte-algorithmique\u002Farbres-binaires-algos","2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos",{"title":570,"path":571,"stem":572},"Parcours de graphes — DFS, BFS, cycles, chemins","\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours","2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours",{"title":574,"path":575,"stem":576},"Diviser pour régner","\u002Fnsi-tale\u002Fte-algorithmique\u002Fdiviser-pour-regner","2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner",{"title":578,"path":579,"stem":580},"Programmation dynamique","\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique","2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique",{"title":582,"path":583,"stem":584},"Recherche textuelle — l'algorithme de Boyer-Moore","\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle","2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle",{"id":586,"title":339,"bo":587,"body":589,"description":2248,"eval":2249,"extension":2250,"labo":2249,"meta":2251,"navigation":766,"path":340,"quizzes":2252,"readingTime":672,"seo":2259,"stem":341,"tp":2249,"__hash__":2260},"cours\u002F1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires.md",[588],"PE01",{"type":590,"value":591,"toc":2236},"minimark",[592,597,623,630,634,659,870,875,922,927,1005,1018,1024,1032,1296,1301,1343,1346,1436,1461,1465,1486,1582,1591,1599,1604,1632,1636,1647,1739,1742,1797,1801,1825,1836,1840,1923,1942,1964,1968,1975,2114,2140,2154,2158,2214,2218,2232],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,610,611,616,617,622],"p",{},"Le ",[602,603,604],"strong",{},"formulaire"," est la principale interface de saisie d'une page Web. Champ\nde recherche d'un moteur, page de connexion, sondage, panier d'un site\nmarchand : derrière chacun se cache une balise ",[607,608,609],"code",{},"\u003Cform>"," qui collecte les\nsaisies de l'utilisateur et les transmet à un serveur. Ce cours étudie sa\nstructure et les deux méthodes de transmission, ",[602,612,613],{},[607,614,615],{},"GET"," et ",[602,618,619],{},[607,620,621],{},"POST",", dont\nle choix n'est pas anodin.",[598,624,625,626,629],{},"Voir ",[627,628],"bo-ref",{"code":588},".",[593,631,633],{"id":632},"anatomie-dun-formulaire","Anatomie d'un formulaire",[598,635,636,637,639,640,643,644,647,648,647,651,654,655,658],{},"Un formulaire est délimité par la balise ",[607,638,609],{},". Il contient des ",[602,641,642],{},"champs","\n(",[607,645,646],{},"\u003Cinput>",", ",[607,649,650],{},"\u003Ctextarea>",[607,652,653],{},"\u003Cselect>",") et un ",[602,656,657],{},"bouton de soumission"," :",[660,661,666],"pre",{"className":662,"code":663,"language":664,"meta":665,"style":665},"language-html shiki shiki-themes github-light github-light github-dark","\u003Cform action=\"\u002Finscription\" method=\"post\">\n  \u003Clabel for=\"email\">Adresse e-mail :\u003C\u002Flabel>\n  \u003Cinput type=\"email\" id=\"email\" name=\"email\" required>\n\n  \u003Clabel for=\"age\">Âge :\u003C\u002Flabel>\n  \u003Cinput type=\"number\" id=\"age\" name=\"age\" min=\"0\" max=\"120\">\n\n  \u003Cbutton type=\"submit\">S'inscrire\u003C\u002Fbutton>\n\u003C\u002Fform>\n","html","",[607,667,668,703,727,761,768,789,833,838,860],{"__ignoreMap":665},[669,670,673,677,681,685,688,692,695,697,700],"span",{"class":671,"line":672},"line",1,[669,674,676],{"class":675},"sxrX7","\u003C",[669,678,680],{"class":679},"sovSZ","form",[669,682,684],{"class":683},"snPdu"," action",[669,686,687],{"class":675},"=",[669,689,691],{"class":690},"sIIMD","\"\u002Finscription\"",[669,693,694],{"class":683}," method",[669,696,687],{"class":675},[669,698,699],{"class":690},"\"post\"",[669,701,702],{"class":675},">\n",[669,704,706,709,712,715,717,720,723,725],{"class":671,"line":705},2,[669,707,708],{"class":675},"  \u003C",[669,710,711],{"class":679},"label",[669,713,714],{"class":683}," for",[669,716,687],{"class":675},[669,718,719],{"class":690},"\"email\"",[669,721,722],{"class":675},">Adresse e-mail :\u003C\u002F",[669,724,711],{"class":679},[669,726,702],{"class":675},[669,728,730,732,735,738,740,742,745,747,749,752,754,756,759],{"class":671,"line":729},3,[669,731,708],{"class":675},[669,733,734],{"class":679},"input",[669,736,737],{"class":683}," type",[669,739,687],{"class":675},[669,741,719],{"class":690},[669,743,744],{"class":683}," id",[669,746,687],{"class":675},[669,748,719],{"class":690},[669,750,751],{"class":683}," name",[669,753,687],{"class":675},[669,755,719],{"class":690},[669,757,758],{"class":683}," required",[669,760,702],{"class":675},[669,762,764],{"class":671,"line":763},4,[669,765,767],{"emptyLinePlaceholder":766},true,"\n",[669,769,771,773,775,777,779,782,785,787],{"class":671,"line":770},5,[669,772,708],{"class":675},[669,774,711],{"class":679},[669,776,714],{"class":683},[669,778,687],{"class":675},[669,780,781],{"class":690},"\"age\"",[669,783,784],{"class":675},">Âge :\u003C\u002F",[669,786,711],{"class":679},[669,788,702],{"class":675},[669,790,792,794,796,798,800,803,805,807,809,811,813,815,818,820,823,826,828,831],{"class":671,"line":791},6,[669,793,708],{"class":675},[669,795,734],{"class":679},[669,797,737],{"class":683},[669,799,687],{"class":675},[669,801,802],{"class":690},"\"number\"",[669,804,744],{"class":683},[669,806,687],{"class":675},[669,808,781],{"class":690},[669,810,751],{"class":683},[669,812,687],{"class":675},[669,814,781],{"class":690},[669,816,817],{"class":683}," min",[669,819,687],{"class":675},[669,821,822],{"class":690},"\"0\"",[669,824,825],{"class":683}," max",[669,827,687],{"class":675},[669,829,830],{"class":690},"\"120\"",[669,832,702],{"class":675},[669,834,836],{"class":671,"line":835},7,[669,837,767],{"emptyLinePlaceholder":766},[669,839,841,843,846,848,850,853,856,858],{"class":671,"line":840},8,[669,842,708],{"class":675},[669,844,845],{"class":679},"button",[669,847,737],{"class":683},[669,849,687],{"class":675},[669,851,852],{"class":690},"\"submit\"",[669,854,855],{"class":675},">S'inscrire\u003C\u002F",[669,857,845],{"class":679},[669,859,702],{"class":675},[669,861,863,866,868],{"class":671,"line":862},9,[669,864,865],{"class":675},"\u003C\u002F",[669,867,680],{"class":679},[669,869,702],{"class":675},[598,871,872,873,658],{},"Décortiquons les attributs essentiels de ",[607,874,609],{},[876,877,878,891],"table",{},[879,880,881],"thead",{},[882,883,884,888],"tr",{},[885,886,887],"th",{},"Attribut",[885,889,890],{},"Rôle",[892,893,894,905],"tbody",{},[882,895,896,902],{},[897,898,899],"td",{},[607,900,901],{},"action",[897,903,904],{},"URL où sont envoyées les données du formulaire.",[882,906,907,912],{},[897,908,909],{},[607,910,911],{},"method",[897,913,914,915,918,919,629],{},"Méthode HTTP de transmission : ",[607,916,917],{},"get"," ou ",[607,920,921],{},"post",[598,923,924,925,658],{},"Et ceux d'un champ ",[607,926,646],{},[876,928,929,937],{},[879,930,931],{},[882,932,933,935],{},[885,934,887],{},[885,936,890],{},[892,938,939,949,962,976,986],{},[882,940,941,946],{},[897,942,943],{},[607,944,945],{},"type",[897,947,948],{},"Genre de champ (texte, mot de passe, e-mail, nombre, case à cocher…).",[882,950,951,956],{},[897,952,953],{},[607,954,955],{},"name",[897,957,958,961],{},[602,959,960],{},"Clé"," sous laquelle la valeur sera envoyée au serveur.",[882,963,964,969],{},[897,965,966],{},[607,967,968],{},"id",[897,970,971,972,975],{},"Identifiant unique, utilisé par ",[607,973,974],{},"\u003Clabel for=\"…\">"," et JavaScript.",[882,977,978,983],{},[897,979,980],{},[607,981,982],{},"value",[897,984,985],{},"Valeur par défaut, ou valeur saisie.",[882,987,988,1002],{},[897,989,990,647,993,647,996,647,999],{},[607,991,992],{},"required",[607,994,995],{},"min",[607,997,998],{},"max",[607,1000,1001],{},"pattern",[897,1003,1004],{},"Contraintes de validation côté navigateur.",[1006,1007,1008],"note",{},[598,1009,1010,1011,616,1014,1017],{},"Le couple ",[607,1012,1013],{},"\u003Clabel for=\"email\">…\u003C\u002Flabel>",[607,1015,1016],{},"\u003Cinput id=\"email\">"," lie le\ntexte d'étiquette au champ. Un clic sur l'étiquette focalise le champ — c'est\nun acquis d'accessibilité majeur.",[593,1019,1021,1022],{"id":1020},"le-bestiaire-des-input","Le bestiaire des ",[607,1023,646],{},[598,1025,600,1026,1028,1029,1031],{},[607,1027,945],{}," d'un ",[607,1030,646],{}," détermine la nature du champ. Quelques exemples\ncourants :",[660,1033,1035],{"className":662,"code":1034,"language":664,"meta":665,"style":665},"\u003Cinput type=\"text\"     name=\"pseudo\">\n\u003Cinput type=\"password\" name=\"motdepasse\">\n\u003Cinput type=\"email\"    name=\"email\">\n\u003Cinput type=\"number\"   name=\"age\" min=\"0\" max=\"120\">\n\u003Cinput type=\"date\"     name=\"naissance\">\n\u003Cinput type=\"checkbox\" name=\"newsletter\" value=\"oui\">\n\u003Cinput type=\"radio\"    name=\"genre\" value=\"F\">\n\u003Cinput type=\"radio\"    name=\"genre\" value=\"M\">\n\u003Cinput type=\"file\"     name=\"photo\">\n\u003Cinput type=\"hidden\"   name=\"token\" value=\"abc123\">\n",[607,1036,1037,1060,1082,1103,1136,1158,1188,1217,1244,1266],{"__ignoreMap":665},[669,1038,1039,1041,1043,1045,1047,1050,1053,1055,1058],{"class":671,"line":672},[669,1040,676],{"class":675},[669,1042,734],{"class":679},[669,1044,737],{"class":683},[669,1046,687],{"class":675},[669,1048,1049],{"class":690},"\"text\"",[669,1051,1052],{"class":683},"     name",[669,1054,687],{"class":675},[669,1056,1057],{"class":690},"\"pseudo\"",[669,1059,702],{"class":675},[669,1061,1062,1064,1066,1068,1070,1073,1075,1077,1080],{"class":671,"line":705},[669,1063,676],{"class":675},[669,1065,734],{"class":679},[669,1067,737],{"class":683},[669,1069,687],{"class":675},[669,1071,1072],{"class":690},"\"password\"",[669,1074,751],{"class":683},[669,1076,687],{"class":675},[669,1078,1079],{"class":690},"\"motdepasse\"",[669,1081,702],{"class":675},[669,1083,1084,1086,1088,1090,1092,1094,1097,1099,1101],{"class":671,"line":729},[669,1085,676],{"class":675},[669,1087,734],{"class":679},[669,1089,737],{"class":683},[669,1091,687],{"class":675},[669,1093,719],{"class":690},[669,1095,1096],{"class":683},"    name",[669,1098,687],{"class":675},[669,1100,719],{"class":690},[669,1102,702],{"class":675},[669,1104,1105,1107,1109,1111,1113,1115,1118,1120,1122,1124,1126,1128,1130,1132,1134],{"class":671,"line":763},[669,1106,676],{"class":675},[669,1108,734],{"class":679},[669,1110,737],{"class":683},[669,1112,687],{"class":675},[669,1114,802],{"class":690},[669,1116,1117],{"class":683},"   name",[669,1119,687],{"class":675},[669,1121,781],{"class":690},[669,1123,817],{"class":683},[669,1125,687],{"class":675},[669,1127,822],{"class":690},[669,1129,825],{"class":683},[669,1131,687],{"class":675},[669,1133,830],{"class":690},[669,1135,702],{"class":675},[669,1137,1138,1140,1142,1144,1146,1149,1151,1153,1156],{"class":671,"line":770},[669,1139,676],{"class":675},[669,1141,734],{"class":679},[669,1143,737],{"class":683},[669,1145,687],{"class":675},[669,1147,1148],{"class":690},"\"date\"",[669,1150,1052],{"class":683},[669,1152,687],{"class":675},[669,1154,1155],{"class":690},"\"naissance\"",[669,1157,702],{"class":675},[669,1159,1160,1162,1164,1166,1168,1171,1173,1175,1178,1181,1183,1186],{"class":671,"line":791},[669,1161,676],{"class":675},[669,1163,734],{"class":679},[669,1165,737],{"class":683},[669,1167,687],{"class":675},[669,1169,1170],{"class":690},"\"checkbox\"",[669,1172,751],{"class":683},[669,1174,687],{"class":675},[669,1176,1177],{"class":690},"\"newsletter\"",[669,1179,1180],{"class":683}," value",[669,1182,687],{"class":675},[669,1184,1185],{"class":690},"\"oui\"",[669,1187,702],{"class":675},[669,1189,1190,1192,1194,1196,1198,1201,1203,1205,1208,1210,1212,1215],{"class":671,"line":835},[669,1191,676],{"class":675},[669,1193,734],{"class":679},[669,1195,737],{"class":683},[669,1197,687],{"class":675},[669,1199,1200],{"class":690},"\"radio\"",[669,1202,1096],{"class":683},[669,1204,687],{"class":675},[669,1206,1207],{"class":690},"\"genre\"",[669,1209,1180],{"class":683},[669,1211,687],{"class":675},[669,1213,1214],{"class":690},"\"F\"",[669,1216,702],{"class":675},[669,1218,1219,1221,1223,1225,1227,1229,1231,1233,1235,1237,1239,1242],{"class":671,"line":840},[669,1220,676],{"class":675},[669,1222,734],{"class":679},[669,1224,737],{"class":683},[669,1226,687],{"class":675},[669,1228,1200],{"class":690},[669,1230,1096],{"class":683},[669,1232,687],{"class":675},[669,1234,1207],{"class":690},[669,1236,1180],{"class":683},[669,1238,687],{"class":675},[669,1240,1241],{"class":690},"\"M\"",[669,1243,702],{"class":675},[669,1245,1246,1248,1250,1252,1254,1257,1259,1261,1264],{"class":671,"line":862},[669,1247,676],{"class":675},[669,1249,734],{"class":679},[669,1251,737],{"class":683},[669,1253,687],{"class":675},[669,1255,1256],{"class":690},"\"file\"",[669,1258,1052],{"class":683},[669,1260,687],{"class":675},[669,1262,1263],{"class":690},"\"photo\"",[669,1265,702],{"class":675},[669,1267,1269,1271,1273,1275,1277,1280,1282,1284,1287,1289,1291,1294],{"class":671,"line":1268},10,[669,1270,676],{"class":675},[669,1272,734],{"class":679},[669,1274,737],{"class":683},[669,1276,687],{"class":675},[669,1278,1279],{"class":690},"\"hidden\"",[669,1281,1117],{"class":683},[669,1283,687],{"class":675},[669,1285,1286],{"class":690},"\"token\"",[669,1288,1180],{"class":683},[669,1290,687],{"class":675},[669,1292,1293],{"class":690},"\"abc123\"",[669,1295,702],{"class":675},[598,1297,1298,1299,658],{},"Pour un champ de texte multilignes, on préfère ",[607,1300,650],{},[660,1302,1304],{"className":662,"code":1303,"language":664,"meta":665,"style":665},"\u003Ctextarea name=\"commentaire\" rows=\"4\" cols=\"50\">\u003C\u002Ftextarea>\n",[607,1305,1306],{"__ignoreMap":665},[669,1307,1308,1310,1313,1315,1317,1320,1323,1325,1328,1331,1333,1336,1339,1341],{"class":671,"line":672},[669,1309,676],{"class":675},[669,1311,1312],{"class":679},"textarea",[669,1314,751],{"class":683},[669,1316,687],{"class":675},[669,1318,1319],{"class":690},"\"commentaire\"",[669,1321,1322],{"class":683}," rows",[669,1324,687],{"class":675},[669,1326,1327],{"class":690},"\"4\"",[669,1329,1330],{"class":683}," cols",[669,1332,687],{"class":675},[669,1334,1335],{"class":690},"\"50\"",[669,1337,1338],{"class":675},">\u003C\u002F",[669,1340,1312],{"class":679},[669,1342,702],{"class":675},[598,1344,1345],{},"Pour un menu déroulant :",[660,1347,1349],{"className":662,"code":1348,"language":664,"meta":665,"style":665},"\u003Cselect name=\"pays\">\n  \u003Coption value=\"fr\">France\u003C\u002Foption>\n  \u003Coption value=\"be\">Belgique\u003C\u002Foption>\n  \u003Coption value=\"ca\">Canada\u003C\u002Foption>\n\u003C\u002Fselect>\n",[607,1350,1351,1367,1388,1408,1428],{"__ignoreMap":665},[669,1352,1353,1355,1358,1360,1362,1365],{"class":671,"line":672},[669,1354,676],{"class":675},[669,1356,1357],{"class":679},"select",[669,1359,751],{"class":683},[669,1361,687],{"class":675},[669,1363,1364],{"class":690},"\"pays\"",[669,1366,702],{"class":675},[669,1368,1369,1371,1374,1376,1378,1381,1384,1386],{"class":671,"line":705},[669,1370,708],{"class":675},[669,1372,1373],{"class":679},"option",[669,1375,1180],{"class":683},[669,1377,687],{"class":675},[669,1379,1380],{"class":690},"\"fr\"",[669,1382,1383],{"class":675},">France\u003C\u002F",[669,1385,1373],{"class":679},[669,1387,702],{"class":675},[669,1389,1390,1392,1394,1396,1398,1401,1404,1406],{"class":671,"line":729},[669,1391,708],{"class":675},[669,1393,1373],{"class":679},[669,1395,1180],{"class":683},[669,1397,687],{"class":675},[669,1399,1400],{"class":690},"\"be\"",[669,1402,1403],{"class":675},">Belgique\u003C\u002F",[669,1405,1373],{"class":679},[669,1407,702],{"class":675},[669,1409,1410,1412,1414,1416,1418,1421,1424,1426],{"class":671,"line":763},[669,1411,708],{"class":675},[669,1413,1373],{"class":679},[669,1415,1180],{"class":683},[669,1417,687],{"class":675},[669,1419,1420],{"class":690},"\"ca\"",[669,1422,1423],{"class":675},">Canada\u003C\u002F",[669,1425,1373],{"class":679},[669,1427,702],{"class":675},[669,1429,1430,1432,1434],{"class":671,"line":770},[669,1431,865],{"class":675},[669,1433,1357],{"class":679},[669,1435,702],{"class":675},[1437,1438,1441,1447],"self-eval-qcm",{"correct":1439,"slug":1440},"2","formulaires-c1",[1442,1443,1444],"template",{"v-slot:question":665},[598,1445,1446],{},"Quel attribut détermine la clé sous laquelle la valeur d'un champ est envoyée au serveur ?",[1442,1448,1449],{"v-slot:choices":665},[1450,1451,1452,1455,1457,1459],"ul",{},[1453,1454,968],"li",{},[1453,1456,945],{},[1453,1458,955],{},[1453,1460,982],{},[593,1462,1464],{"id":1463},"get-paramètres-dans-lurl","GET — paramètres dans l'URL",[598,1466,1467,1468,1470,1471,1474,1477,1478,1481,1482,1485],{},"Lorsque la méthode est ",[607,1469,917],{},", le navigateur encode les paires ",[607,1472,1473],{},"name=value",[602,1475,1476],{},"dans l'URL",", après un ",[607,1479,1480],{},"?",", séparées par des ",[607,1483,1484],{},"&",". Exemple : un formulaire\nde recherche.",[660,1487,1489],{"className":662,"code":1488,"language":664,"meta":665,"style":665},"\u003Cform action=\"\u002Frecherche\" method=\"get\">\n  \u003Cinput type=\"text\" name=\"q\">\n  \u003Cinput type=\"text\" name=\"page\">\n  \u003Cbutton type=\"submit\">Rechercher\u003C\u002Fbutton>\n\u003C\u002Fform>\n",[607,1490,1491,1513,1534,1555,1574],{"__ignoreMap":665},[669,1492,1493,1495,1497,1499,1501,1504,1506,1508,1511],{"class":671,"line":672},[669,1494,676],{"class":675},[669,1496,680],{"class":679},[669,1498,684],{"class":683},[669,1500,687],{"class":675},[669,1502,1503],{"class":690},"\"\u002Frecherche\"",[669,1505,694],{"class":683},[669,1507,687],{"class":675},[669,1509,1510],{"class":690},"\"get\"",[669,1512,702],{"class":675},[669,1514,1515,1517,1519,1521,1523,1525,1527,1529,1532],{"class":671,"line":705},[669,1516,708],{"class":675},[669,1518,734],{"class":679},[669,1520,737],{"class":683},[669,1522,687],{"class":675},[669,1524,1049],{"class":690},[669,1526,751],{"class":683},[669,1528,687],{"class":675},[669,1530,1531],{"class":690},"\"q\"",[669,1533,702],{"class":675},[669,1535,1536,1538,1540,1542,1544,1546,1548,1550,1553],{"class":671,"line":729},[669,1537,708],{"class":675},[669,1539,734],{"class":679},[669,1541,737],{"class":683},[669,1543,687],{"class":675},[669,1545,1049],{"class":690},[669,1547,751],{"class":683},[669,1549,687],{"class":675},[669,1551,1552],{"class":690},"\"page\"",[669,1554,702],{"class":675},[669,1556,1557,1559,1561,1563,1565,1567,1570,1572],{"class":671,"line":763},[669,1558,708],{"class":675},[669,1560,845],{"class":679},[669,1562,737],{"class":683},[669,1564,687],{"class":675},[669,1566,852],{"class":690},[669,1568,1569],{"class":675},">Rechercher\u003C\u002F",[669,1571,845],{"class":679},[669,1573,702],{"class":675},[669,1575,1576,1578,1580],{"class":671,"line":770},[669,1577,865],{"class":675},[669,1579,680],{"class":679},[669,1581,702],{"class":675},[598,1583,1584,1585,616,1588,1590],{},"Si l'utilisateur tape ",[607,1586,1587],{},"python",[607,1589,1439],{},", le navigateur navigue vers :",[660,1592,1597],{"className":1593,"code":1595,"language":1596},[1594],"language-text","\u002Frecherche?q=python&page=2\n","text",[607,1598,1595],{"__ignoreMap":665},[598,1600,1601,1602,658],{},"Caractéristiques de ",[607,1603,615],{},[1450,1605,1606,1612,1619,1622],{},[1453,1607,1608,1609,629],{},"Les paramètres sont ",[602,1610,1611],{},"visibles dans l'URL",[1453,1613,1614,1615,1618],{},"L'URL résultante est ",[602,1616,1617],{},"partageable et bookmarkable"," (copier-coller).",[1453,1620,1621],{},"Limitation de longueur (en pratique, quelques milliers de caractères).",[1453,1623,1624,1625,1628,1629,1631],{},"À réserver aux opérations ",[602,1626,1627],{},"sans effet de bord"," : consultation, recherche,\nfiltrage. Une requête ",[607,1630,615],{}," peut être rejouée sans risque.",[593,1633,1635],{"id":1634},"post-paramètres-dans-le-corps","POST — paramètres dans le corps",[598,1637,1467,1638,1470,1640,1642,1643,1646],{},[607,1639,921],{},[607,1641,1473],{},"\ndans le ",[602,1644,1645],{},"corps"," de la requête HTTP, invisibles dans l'URL.",[660,1648,1650],{"className":662,"code":1649,"language":664,"meta":665,"style":665},"\u003Cform action=\"\u002Finscription\" method=\"post\">\n  \u003Cinput type=\"email\"    name=\"email\">\n  \u003Cinput type=\"password\" name=\"motdepasse\">\n  \u003Cbutton type=\"submit\">Créer mon compte\u003C\u002Fbutton>\n\u003C\u002Fform>\n",[607,1651,1652,1672,1692,1712,1731],{"__ignoreMap":665},[669,1653,1654,1656,1658,1660,1662,1664,1666,1668,1670],{"class":671,"line":672},[669,1655,676],{"class":675},[669,1657,680],{"class":679},[669,1659,684],{"class":683},[669,1661,687],{"class":675},[669,1663,691],{"class":690},[669,1665,694],{"class":683},[669,1667,687],{"class":675},[669,1669,699],{"class":690},[669,1671,702],{"class":675},[669,1673,1674,1676,1678,1680,1682,1684,1686,1688,1690],{"class":671,"line":705},[669,1675,708],{"class":675},[669,1677,734],{"class":679},[669,1679,737],{"class":683},[669,1681,687],{"class":675},[669,1683,719],{"class":690},[669,1685,1096],{"class":683},[669,1687,687],{"class":675},[669,1689,719],{"class":690},[669,1691,702],{"class":675},[669,1693,1694,1696,1698,1700,1702,1704,1706,1708,1710],{"class":671,"line":729},[669,1695,708],{"class":675},[669,1697,734],{"class":679},[669,1699,737],{"class":683},[669,1701,687],{"class":675},[669,1703,1072],{"class":690},[669,1705,751],{"class":683},[669,1707,687],{"class":675},[669,1709,1079],{"class":690},[669,1711,702],{"class":675},[669,1713,1714,1716,1718,1720,1722,1724,1727,1729],{"class":671,"line":763},[669,1715,708],{"class":675},[669,1717,845],{"class":679},[669,1719,737],{"class":683},[669,1721,687],{"class":675},[669,1723,852],{"class":690},[669,1725,1726],{"class":675},">Créer mon compte\u003C\u002F",[669,1728,845],{"class":679},[669,1730,702],{"class":675},[669,1732,1733,1735,1737],{"class":671,"line":770},[669,1734,865],{"class":675},[669,1736,680],{"class":679},[669,1738,702],{"class":675},[598,1740,1741],{},"Côté réseau, la requête envoyée ressemble à :",[660,1743,1747],{"className":1744,"code":1745,"language":1746,"meta":665,"style":665},"language-http shiki shiki-themes github-light github-light github-dark","POST \u002Finscription HTTP\u002F1.1\nHost: exemple.fr\nContent-Type: application\u002Fx-www-form-urlencoded\n\nemail=alice%40exemple.fr&motdepasse=secret123\n","http",[607,1748,1749,1767,1778,1788,1792],{"__ignoreMap":665},[669,1750,1751,1754,1757,1760,1763],{"class":671,"line":672},[669,1752,621],{"class":1753},"s8jYJ",[669,1755,1756],{"class":675}," \u002Finscription ",[669,1758,1759],{"class":1753},"HTTP",[669,1761,1762],{"class":675},"\u002F",[669,1764,1766],{"class":1765},"sBjJW","1.1\n",[669,1768,1769,1772,1775],{"class":671,"line":705},[669,1770,1771],{"class":679},"Host",[669,1773,1774],{"class":1753},":",[669,1776,1777],{"class":690}," exemple.fr\n",[669,1779,1780,1783,1785],{"class":671,"line":729},[669,1781,1782],{"class":679},"Content-Type",[669,1784,1774],{"class":1753},[669,1786,1787],{"class":690}," application\u002Fx-www-form-urlencoded\n",[669,1789,1790],{"class":671,"line":763},[669,1791,767],{"emptyLinePlaceholder":766},[669,1793,1794],{"class":671,"line":770},[669,1795,1796],{"class":675},"email=alice%40exemple.fr&motdepasse=secret123\n",[598,1798,1601,1799,658],{},[607,1800,621],{},[1450,1802,1803,1810,1816],{},[1453,1804,1805,1806,1809],{},"Les paramètres ne sont ",[602,1807,1808],{},"pas dans l'URL"," — donc ni dans l'historique ni\ndans les logs serveurs basiques.",[1453,1811,1812,1815],{},[602,1813,1814],{},"Pas de limite pratique"," sur la taille des données (utile pour les\nfichiers, les longs textes).",[1453,1817,1624,1818,1821,1822,1824],{},[602,1819,1820],{},"avec effet de bord"," : création, modification,\nsuppression. Re-soumettre par mégarde un ",[607,1823,621],{}," peut créer deux comptes,\ndeux commandes…",[1826,1827,1828],"warning",{},[598,1829,1830,1835],{},[602,1831,1832,1834],{},[607,1833,621],{}," n'est pas un blindage de sécurité."," Les données restent en clair sur\nle réseau si la connexion n'est pas en HTTPS. Pour la confidentialité, c'est\nle chiffrement HTTPS qui compte, pas la méthode HTTP.",[593,1837,1839],{"id":1838},"get-vs-post-quand-utiliser-quoi","GET vs POST — quand utiliser quoi ?",[876,1841,1842,1852],{},[879,1843,1844],{},[882,1845,1846,1849],{},[885,1847,1848],{},"Situation",[885,1850,1851],{},"Méthode",[892,1853,1854,1863,1872,1881,1890,1899,1913],{},[882,1855,1856,1859],{},[897,1857,1858],{},"Recherche, filtrage, pagination",[897,1860,1861],{},[607,1862,615],{},[882,1864,1865,1868],{},[897,1866,1867],{},"Connexion (login + mot de passe)",[897,1869,1870],{},[607,1871,621],{},[882,1873,1874,1877],{},[897,1875,1876],{},"Inscription, création de compte",[897,1878,1879],{},[607,1880,621],{},[882,1882,1883,1886],{},[897,1884,1885],{},"Lien partageable vers une page",[897,1887,1888],{},[607,1889,615],{},[882,1891,1892,1895],{},[897,1893,1894],{},"Envoi d'un fichier",[897,1896,1897],{},[607,1898,621],{},[882,1900,1901,1904],{},[897,1902,1903],{},"Suppression d'une ressource",[897,1905,1906,1908,1909,1912],{},[607,1907,621],{}," (ou ",[607,1910,1911],{},"DELETE"," côté API)",[882,1914,1915,1918],{},[897,1916,1917],{},"Données sensibles (mot de passe, n° de carte)",[897,1919,1920,1922],{},[607,1921,621],{}," + HTTPS",[598,1924,1925,1928,1929,1932,1933,1935,1936,1939,1940,629],{},[602,1926,1927],{},"Règle simple"," : si l'action ",[602,1930,1931],{},"lit"," une information sans rien changer côté\nserveur, choisir ",[607,1934,615],{},". Si l'action ",[602,1937,1938],{},"modifie"," quelque chose ou transmet une\ninformation sensible, choisir ",[607,1941,621],{},[1437,1943,1946,1951],{"correct":1944,"slug":1945},"0","formulaires-c2",[1442,1947,1948],{"v-slot:question":665},[598,1949,1950],{},"Vous codez un moteur de recherche partageable par URL. Quelle méthode ?",[1442,1952,1953],{"v-slot:choices":665},[1450,1954,1955,1957,1959,1962],{},[1453,1956,615],{},[1453,1958,621],{},[1453,1960,1961],{},"PUT",[1453,1963,1911],{},[593,1965,1967],{"id":1966},"validation-côté-navigateur","Validation côté navigateur",[598,1969,1970,1971,1974],{},"HTML5 propose des ",[602,1972,1973],{},"contraintes intégrées"," vérifiées avant l'envoi :",[660,1976,1978],{"className":662,"code":1977,"language":664,"meta":665,"style":665},"\u003Cform action=\"\u002Fcontact\" method=\"post\">\n  \u003Cinput type=\"email\" name=\"email\" required>\n  \u003Cinput type=\"number\" name=\"age\" min=\"13\" max=\"120\">\n  \u003Cinput type=\"text\" name=\"code\" pattern=\"[A-Z]{3}\\d{4}\" required>\n  \u003Cbutton type=\"submit\">Envoyer\u003C\u002Fbutton>\n\u003C\u002Fform>\n",[607,1979,1980,2001,2023,2056,2087,2106],{"__ignoreMap":665},[669,1981,1982,1984,1986,1988,1990,1993,1995,1997,1999],{"class":671,"line":672},[669,1983,676],{"class":675},[669,1985,680],{"class":679},[669,1987,684],{"class":683},[669,1989,687],{"class":675},[669,1991,1992],{"class":690},"\"\u002Fcontact\"",[669,1994,694],{"class":683},[669,1996,687],{"class":675},[669,1998,699],{"class":690},[669,2000,702],{"class":675},[669,2002,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021],{"class":671,"line":705},[669,2004,708],{"class":675},[669,2006,734],{"class":679},[669,2008,737],{"class":683},[669,2010,687],{"class":675},[669,2012,719],{"class":690},[669,2014,751],{"class":683},[669,2016,687],{"class":675},[669,2018,719],{"class":690},[669,2020,758],{"class":683},[669,2022,702],{"class":675},[669,2024,2025,2027,2029,2031,2033,2035,2037,2039,2041,2043,2045,2048,2050,2052,2054],{"class":671,"line":729},[669,2026,708],{"class":675},[669,2028,734],{"class":679},[669,2030,737],{"class":683},[669,2032,687],{"class":675},[669,2034,802],{"class":690},[669,2036,751],{"class":683},[669,2038,687],{"class":675},[669,2040,781],{"class":690},[669,2042,817],{"class":683},[669,2044,687],{"class":675},[669,2046,2047],{"class":690},"\"13\"",[669,2049,825],{"class":683},[669,2051,687],{"class":675},[669,2053,830],{"class":690},[669,2055,702],{"class":675},[669,2057,2058,2060,2062,2064,2066,2068,2070,2072,2075,2078,2080,2083,2085],{"class":671,"line":763},[669,2059,708],{"class":675},[669,2061,734],{"class":679},[669,2063,737],{"class":683},[669,2065,687],{"class":675},[669,2067,1049],{"class":690},[669,2069,751],{"class":683},[669,2071,687],{"class":675},[669,2073,2074],{"class":690},"\"code\"",[669,2076,2077],{"class":683}," pattern",[669,2079,687],{"class":675},[669,2081,2082],{"class":690},"\"[A-Z]{3}\\d{4}\"",[669,2084,758],{"class":683},[669,2086,702],{"class":675},[669,2088,2089,2091,2093,2095,2097,2099,2102,2104],{"class":671,"line":770},[669,2090,708],{"class":675},[669,2092,845],{"class":679},[669,2094,737],{"class":683},[669,2096,687],{"class":675},[669,2098,852],{"class":690},[669,2100,2101],{"class":675},">Envoyer\u003C\u002F",[669,2103,845],{"class":679},[669,2105,702],{"class":675},[669,2107,2108,2110,2112],{"class":671,"line":791},[669,2109,865],{"class":675},[669,2111,680],{"class":679},[669,2113,702],{"class":675},[1450,2115,2116,2121,2128,2134],{},[1453,2117,2118,2120],{},[607,2119,992],{}," : champ obligatoire.",[1453,2122,2123,647,2125,2127],{},[607,2124,995],{},[607,2126,998],{}," : bornes numériques.",[1453,2129,2130,2133],{},[607,2131,2132],{},"pattern=\"…\""," : expression régulière à respecter.",[1453,2135,2136,2139],{},[607,2137,2138],{},"type=\"email\""," : validation basique du format e-mail.",[2141,2142,2143],"caution",{},[598,2144,2145,2146,2149,2150,2153],{},"Cette validation est un ",[602,2147,2148],{},"confort utilisateur",", pas une sécurité. Un client\nmalveillant peut envoyer ce qu'il veut directement au serveur, sans passer par\nle formulaire. ",[602,2151,2152],{},"Le serveur doit toujours revalider"," les données reçues.",[593,2155,2157],{"id":2156},"cas-particuliers-et-pièges","Cas particuliers et pièges",[1450,2159,2160,2171,2193,2202],{},[1453,2161,2162,2167,2168,2170],{},[602,2163,2164,2165],{},"Oublier ",[607,2166,955],{}," : un champ sans ",[607,2169,955],{}," n'est tout simplement pas envoyé.",[1453,2172,2173,2178,2179,2182,2183,2185,2186,2189,2190,629],{},[602,2174,2175,2176],{},"Bouton sans ",[607,2177,945],{}," : par défaut, un ",[607,2180,2181],{},"\u003Cbutton>"," dans un ",[607,2184,609],{}," est de\ntype ",[607,2187,2188],{},"submit"," et soumet le formulaire. Pour un bouton « ordinaire » (par\nexemple gérer un événement JS), préciser ",[607,2191,2192],{},"type=\"button\"",[1453,2194,2195,2201],{},[602,2196,2197,2198,2200],{},"Plusieurs ",[607,2199,609],{}," imbriqués"," : interdit. Un formulaire ne peut pas en\ncontenir un autre.",[1453,2203,2204,2207,2208,2213],{},[602,2205,2206],{},"Boutons radio"," : tous les radios d'un même groupe doivent partager le\n",[602,2209,2210,2211],{},"même ",[607,2212,955],{}," pour fonctionner comme un choix unique.",[593,2215,2217],{"id":2216},"pour-aller-plus-loin","Pour aller plus loin",[598,2219,2220,2221,2224,2225,2227,2228,2231],{},"Avec JavaScript, vous pourrez ",[602,2222,2223],{},"intercepter la soumission"," d'un formulaire\n(événement ",[607,2226,2188],{},"), valider les champs, formater les données, et même\nenvoyer la requête sans recharger la page (",[607,2229,2230],{},"fetch","). C'est le sujet des deux\ncours suivants : événements et manipulation du DOM.",[2233,2234,2235],"style",{},"html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sovSZ, html code.shiki .sovSZ{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":665,"searchDepth":705,"depth":705,"links":2237},[2238,2239,2240,2242,2243,2244,2245,2246,2247],{"id":595,"depth":705,"text":596},{"id":632,"depth":705,"text":633},{"id":1020,"depth":705,"text":2241},"Le bestiaire des \u003Cinput>",{"id":1463,"depth":705,"text":1464},{"id":1634,"depth":705,"text":1635},{"id":1838,"depth":705,"text":1839},{"id":1966,"depth":705,"text":1967},{"id":2156,"depth":705,"text":2157},{"id":2216,"depth":705,"text":2217},"Collecter des données dans une page Web — balise `\u003Cform>`, champs `\u003Cinput>`, et choix entre `GET` et `POST` pour les transmettre.",null,"md",{},[2253,2257],{"slug":1440,"kind":2254,"question":1446,"choices":2255,"correct":1439,"multi":2256,"explanation":665},"qcm",[968,945,955,982],false,{"slug":1945,"kind":2254,"question":1950,"choices":2258,"correct":1944,"multi":2256,"explanation":665},[615,621,1961,1911],{"title":339,"description":2248},"-MihY1V34OF0sOVpjHsQTLYAAzQC4-JNrlf690J0BXw",{"id":2262,"title":2263,"bo":2264,"body":2265,"description":2630,"eval":2249,"extension":2250,"labo":2249,"meta":2631,"navigation":2256,"path":2632,"quizzes":2633,"readingTime":672,"seo":2634,"stem":2635,"tp":2249,"__hash__":2636},"coursMemo\u002F1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires.memo.md","Formulaires HTML — l'essentiel",[588],{"type":590,"value":2266,"toc":2622},[2267,2271,2295,2299,2342,2346,2418,2430,2434,2482,2486,2517,2521,2619],[593,2268,2270],{"id":2269},"en-une-phrase","En une phrase",[598,2272,2273],{},[602,2274,2275,2276,2278,2279,2282,2283,2285,2286,2288,2289,2291,2292,2294],{},"Un ",[607,2277,609],{}," collecte des valeurs ",[607,2280,2281],{},"name=…"," saisies dans des ",[607,2284,646],{}," et les\ntransmet à ",[607,2287,901],{}," en ",[607,2290,615],{}," (URL) ou ",[607,2293,621],{}," (corps).",[593,2296,2298],{"id":2297},"à-mémoriser","À mémoriser",[1450,2300,2301,2307,2312,2323,2329],{},[1453,2302,2303,2306],{},[607,2304,2305],{},"\u003Cform action=\"URL\" method=\"get|post\">"," — squelette d'un formulaire.",[1453,2308,2309,2310,629],{},"Chaque champ envoyé doit avoir un attribut ",[607,2311,955],{},[1453,2313,2314,2316,2317,647,2319,2322],{},[607,2315,968],{}," sert au CSS et à ",[607,2318,974],{},[602,2320,2321],{},"pas"," à l'envoi serveur.",[1453,2324,2325,2328],{},[607,2326,2327],{},"\u003Cbutton type=\"submit\">"," envoie le formulaire.",[1453,2330,2331,2332,647,2334,647,2336,647,2338,647,2340,629],{},"Validation HTML5 : ",[607,2333,992],{},[607,2335,995],{},[607,2337,998],{},[607,2339,1001],{},[607,2341,2138],{},[593,2343,2345],{"id":2344},"get-vs-post","GET vs POST",[876,2347,2348,2359],{},[879,2349,2350],{},[882,2351,2352,2355,2357],{},[885,2353,2354],{},"Critère",[885,2356,615],{},[885,2358,621],{},[892,2360,2361,2375,2386,2396,2407],{},[882,2362,2363,2366,2372],{},[897,2364,2365],{},"Paramètres dans l'URL",[897,2367,2368,2369,2371],{},"Oui (après ",[607,2370,1480],{},")",[897,2373,2374],{},"Non (dans le corps)",[882,2376,2377,2380,2383],{},[897,2378,2379],{},"URL partageable \u002F bookmarkable",[897,2381,2382],{},"Oui",[897,2384,2385],{},"Non",[882,2387,2388,2391,2394],{},[897,2389,2390],{},"Limite de taille",[897,2392,2393],{},"Quelques Ko",[897,2395,1814],{},[882,2397,2398,2401,2404],{},[897,2399,2400],{},"Idempotent ?",[897,2402,2403],{},"Oui — rejouable sans risque",[897,2405,2406],{},"Non — peut créer un effet de bord",[882,2408,2409,2412,2415],{},[897,2410,2411],{},"Adapté à",[897,2413,2414],{},"Lecture, recherche, filtrage",[897,2416,2417],{},"Création, modification, données sensibles",[598,2419,2420,2425,2426,2429],{},[602,2421,2422,2424],{},[607,2423,621],{}," ≠ sécurité."," La confidentialité vient de ",[602,2427,2428],{},"HTTPS",", pas de la\nméthode HTTP.",[593,2431,2433],{"id":2432},"à-savoir-reconnaître","À savoir reconnaître",[876,2435,2436,2444],{},[879,2437,2438],{},[882,2439,2440,2442],{},[885,2441,1848],{},[885,2443,1851],{},[892,2445,2446,2455,2464,2473],{},[882,2447,2448,2451],{},[897,2449,2450],{},"Recherche dans un site",[897,2452,2453],{},[607,2454,615],{},[882,2456,2457,2460],{},[897,2458,2459],{},"Login + mot de passe",[897,2461,2462],{},[607,2463,621],{},[882,2465,2466,2469],{},[897,2467,2468],{},"Lien à partager",[897,2470,2471],{},[607,2472,615],{},[882,2474,2475,2478],{},[897,2476,2477],{},"Upload de fichier",[897,2479,2480],{},[607,2481,621],{},[593,2483,2485],{"id":2484},"pièges-courants","Pièges courants",[1450,2487,2488,2494,2502,2511],{},[1453,2489,2490,2491,2493],{},"Pas de ",[607,2492,955],{}," → champ pas envoyé.",[1453,2495,2496,2498,2499,2501],{},[607,2497,2181],{}," sans ",[607,2500,945],{}," → soumet le formulaire par défaut.",[1453,2503,2504,2505,2507,2508],{},"Mot de passe en ",[607,2506,615],{}," → apparaît dans l'URL et dans les logs. ",[602,2509,2510],{},"Jamais.",[1453,2512,2513,2514,629],{},"Validation côté navigateur ≠ sécurité : ",[602,2515,2516],{},"revalider côté serveur",[593,2518,2520],{"id":2519},"syntaxe-html-de-référence","Syntaxe HTML de référence",[660,2522,2524],{"className":662,"code":2523,"language":664,"meta":665,"style":665},"\u003Cform action=\"\u002Finscription\" method=\"post\">\n  \u003Clabel for=\"email\">E-mail :\u003C\u002Flabel>\n  \u003Cinput type=\"email\" id=\"email\" name=\"email\" required>\n  \u003Cbutton type=\"submit\">Envoyer\u003C\u002Fbutton>\n\u003C\u002Fform>\n",[607,2525,2526,2546,2565,2593,2611],{"__ignoreMap":665},[669,2527,2528,2530,2532,2534,2536,2538,2540,2542,2544],{"class":671,"line":672},[669,2529,676],{"class":675},[669,2531,680],{"class":679},[669,2533,684],{"class":683},[669,2535,687],{"class":675},[669,2537,691],{"class":690},[669,2539,694],{"class":683},[669,2541,687],{"class":675},[669,2543,699],{"class":690},[669,2545,702],{"class":675},[669,2547,2548,2550,2552,2554,2556,2558,2561,2563],{"class":671,"line":705},[669,2549,708],{"class":675},[669,2551,711],{"class":679},[669,2553,714],{"class":683},[669,2555,687],{"class":675},[669,2557,719],{"class":690},[669,2559,2560],{"class":675},">E-mail :\u003C\u002F",[669,2562,711],{"class":679},[669,2564,702],{"class":675},[669,2566,2567,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587,2589,2591],{"class":671,"line":729},[669,2568,708],{"class":675},[669,2570,734],{"class":679},[669,2572,737],{"class":683},[669,2574,687],{"class":675},[669,2576,719],{"class":690},[669,2578,744],{"class":683},[669,2580,687],{"class":675},[669,2582,719],{"class":690},[669,2584,751],{"class":683},[669,2586,687],{"class":675},[669,2588,719],{"class":690},[669,2590,758],{"class":683},[669,2592,702],{"class":675},[669,2594,2595,2597,2599,2601,2603,2605,2607,2609],{"class":671,"line":763},[669,2596,708],{"class":675},[669,2598,845],{"class":679},[669,2600,737],{"class":683},[669,2602,687],{"class":675},[669,2604,852],{"class":690},[669,2606,2101],{"class":675},[669,2608,845],{"class":679},[669,2610,702],{"class":675},[669,2612,2613,2615,2617],{"class":671,"line":770},[669,2614,865],{"class":675},[669,2616,680],{"class":679},[669,2618,702],{"class":675},[2233,2620,2621],{},"html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sovSZ, html code.shiki .sovSZ{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":665,"searchDepth":705,"depth":705,"links":2623},[2624,2625,2626,2627,2628,2629],{"id":2269,"depth":705,"text":2270},{"id":2297,"depth":705,"text":2298},{"id":2344,"depth":705,"text":2345},{"id":2432,"depth":705,"text":2433},{"id":2484,"depth":705,"text":2485},{"id":2519,"depth":705,"text":2520},"Mémo de révision sur `\u003Cform>`, `\u003Cinput>`, et le choix GET \u002F POST.",{},"\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires.memo",[],{"title":2263,"description":2630},"1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires.memo","kTQva6_7JX8F4pkavRazc-BUbtsL7WK-xTPH9Waptt0",{"id":2638,"title":2639,"body":2640,"description":3157,"extension":2250,"meta":3158,"navigation":2256,"path":3159,"seo":3160,"stem":3161,"__hash__":3162},"coursSlides\u002F1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires.slides.md","Formulaires HTML — diapositives",{"type":590,"value":2641,"toc":3155},[2642,2646,2649,2652,2656,2754,2756,2760,2764,2780,2784,2805,2807,2813,2942,2944,2948,2969,2971,2975,2994,2996,3000,3039,3041,3045,3052,3057,3059,3063,3130,3135,3137,3141,3153],[2643,2644,339],"h1",{"id":2645},"formulaires-html",[598,2647,2648],{},"Collecter des données dans une page Web et les transmettre à un serveur.",[2650,2651],"hr",{},[2643,2653,2655],{"id":2654},"squelette","Squelette",[660,2657,2659],{"className":662,"code":2658,"language":664,"meta":665,"style":665},"\u003Cform action=\"\u002Fcible\" method=\"post\">\n  \u003Clabel for=\"x\">Nom :\u003C\u002Flabel>\n  \u003Cinput type=\"text\" id=\"x\" name=\"x\">\n  \u003Cbutton type=\"submit\">Envoyer\u003C\u002Fbutton>\n\u003C\u002Fform>\n",[607,2660,2661,2682,2702,2728,2746],{"__ignoreMap":665},[669,2662,2663,2665,2667,2669,2671,2674,2676,2678,2680],{"class":671,"line":672},[669,2664,676],{"class":675},[669,2666,680],{"class":679},[669,2668,684],{"class":683},[669,2670,687],{"class":675},[669,2672,2673],{"class":690},"\"\u002Fcible\"",[669,2675,694],{"class":683},[669,2677,687],{"class":675},[669,2679,699],{"class":690},[669,2681,702],{"class":675},[669,2683,2684,2686,2688,2690,2692,2695,2698,2700],{"class":671,"line":705},[669,2685,708],{"class":675},[669,2687,711],{"class":679},[669,2689,714],{"class":683},[669,2691,687],{"class":675},[669,2693,2694],{"class":690},"\"x\"",[669,2696,2697],{"class":675},">Nom :\u003C\u002F",[669,2699,711],{"class":679},[669,2701,702],{"class":675},[669,2703,2704,2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726],{"class":671,"line":729},[669,2705,708],{"class":675},[669,2707,734],{"class":679},[669,2709,737],{"class":683},[669,2711,687],{"class":675},[669,2713,1049],{"class":690},[669,2715,744],{"class":683},[669,2717,687],{"class":675},[669,2719,2694],{"class":690},[669,2721,751],{"class":683},[669,2723,687],{"class":675},[669,2725,2694],{"class":690},[669,2727,702],{"class":675},[669,2729,2730,2732,2734,2736,2738,2740,2742,2744],{"class":671,"line":763},[669,2731,708],{"class":675},[669,2733,845],{"class":679},[669,2735,737],{"class":683},[669,2737,687],{"class":675},[669,2739,852],{"class":690},[669,2741,2101],{"class":675},[669,2743,845],{"class":679},[669,2745,702],{"class":675},[669,2747,2748,2750,2752],{"class":671,"line":770},[669,2749,865],{"class":675},[669,2751,680],{"class":679},[669,2753,702],{"class":675},[2650,2755],{},[2643,2757,2759],{"id":2758},"attributs-clés","Attributs clés",[598,2761,2762,658],{},[607,2763,609],{},[1450,2765,2766,2771],{},[1453,2767,2768,2770],{},[607,2769,901],{}," — URL de destination",[1453,2772,2773,2775,2776,918,2778],{},[607,2774,911],{}," — ",[607,2777,917],{},[607,2779,921],{},[598,2781,2782,658],{},[607,2783,646],{},[1450,2785,2786,2791,2796],{},[1453,2787,2788,2790],{},[607,2789,945],{}," — text, email, password, number, checkbox, radio…",[1453,2792,2793,2795],{},[607,2794,955],{}," — clé envoyée au serveur",[1453,2797,2798,2800,2801,2804],{},[607,2799,968],{}," — référencé par ",[607,2802,2803],{},"\u003Clabel for>"," et JS",[2650,2806],{},[2643,2808,2810,2811],{"id":2809},"types-dinput","Types d'",[607,2812,646],{},[660,2814,2816],{"className":662,"code":2815,"language":664,"meta":665,"style":665},"\u003Cinput type=\"text\">\n\u003Cinput type=\"email\">\n\u003Cinput type=\"password\">\n\u003Cinput type=\"number\" min=\"0\" max=\"120\">\n\u003Cinput type=\"checkbox\">\n\u003Cinput type=\"radio\">\n\u003Cinput type=\"date\">\n\u003Cinput type=\"file\">\n",[607,2817,2818,2832,2846,2860,2886,2900,2914,2928],{"__ignoreMap":665},[669,2819,2820,2822,2824,2826,2828,2830],{"class":671,"line":672},[669,2821,676],{"class":675},[669,2823,734],{"class":679},[669,2825,737],{"class":683},[669,2827,687],{"class":675},[669,2829,1049],{"class":690},[669,2831,702],{"class":675},[669,2833,2834,2836,2838,2840,2842,2844],{"class":671,"line":705},[669,2835,676],{"class":675},[669,2837,734],{"class":679},[669,2839,737],{"class":683},[669,2841,687],{"class":675},[669,2843,719],{"class":690},[669,2845,702],{"class":675},[669,2847,2848,2850,2852,2854,2856,2858],{"class":671,"line":729},[669,2849,676],{"class":675},[669,2851,734],{"class":679},[669,2853,737],{"class":683},[669,2855,687],{"class":675},[669,2857,1072],{"class":690},[669,2859,702],{"class":675},[669,2861,2862,2864,2866,2868,2870,2872,2874,2876,2878,2880,2882,2884],{"class":671,"line":763},[669,2863,676],{"class":675},[669,2865,734],{"class":679},[669,2867,737],{"class":683},[669,2869,687],{"class":675},[669,2871,802],{"class":690},[669,2873,817],{"class":683},[669,2875,687],{"class":675},[669,2877,822],{"class":690},[669,2879,825],{"class":683},[669,2881,687],{"class":675},[669,2883,830],{"class":690},[669,2885,702],{"class":675},[669,2887,2888,2890,2892,2894,2896,2898],{"class":671,"line":770},[669,2889,676],{"class":675},[669,2891,734],{"class":679},[669,2893,737],{"class":683},[669,2895,687],{"class":675},[669,2897,1170],{"class":690},[669,2899,702],{"class":675},[669,2901,2902,2904,2906,2908,2910,2912],{"class":671,"line":791},[669,2903,676],{"class":675},[669,2905,734],{"class":679},[669,2907,737],{"class":683},[669,2909,687],{"class":675},[669,2911,1200],{"class":690},[669,2913,702],{"class":675},[669,2915,2916,2918,2920,2922,2924,2926],{"class":671,"line":835},[669,2917,676],{"class":675},[669,2919,734],{"class":679},[669,2921,737],{"class":683},[669,2923,687],{"class":675},[669,2925,1148],{"class":690},[669,2927,702],{"class":675},[669,2929,2930,2932,2934,2936,2938,2940],{"class":671,"line":840},[669,2931,676],{"class":675},[669,2933,734],{"class":679},[669,2935,737],{"class":683},[669,2937,687],{"class":675},[669,2939,1256],{"class":690},[669,2941,702],{"class":675},[2650,2943],{},[2643,2945,2947],{"id":2946},"méthode-get","Méthode GET",[1450,2949,2950,2956,2959,2962],{},[1453,2951,2952,2953],{},"Paramètres dans l'URL : ",[607,2954,2955],{},"\u002Frecherche?q=python&page=2",[1453,2957,2958],{},"URL partageable",[1453,2960,2961],{},"Limité en taille",[1453,2963,2964,2965,2968],{},"Pour ",[602,2966,2967],{},"lire",", sans effet de bord",[2650,2970],{},[2643,2972,2974],{"id":2973},"méthode-post","Méthode POST",[1450,2976,2977,2983,2986,2988],{},[1453,2978,2979,2980,2982],{},"Paramètres dans le ",[602,2981,1645],{}," de la requête",[1453,2984,2985],{},"Invisible dans l'URL",[1453,2987,1814],{},[1453,2989,2964,2990,2993],{},[602,2991,2992],{},"modifier"," (création, login, upload)",[2650,2995],{},[2643,2997,2999],{"id":2998},"get-ou-post","GET ou POST ?",[876,3001,3002,3011],{},[879,3003,3004],{},[882,3005,3006,3009],{},[885,3007,3008],{},"Action",[885,3010,1851],{},[892,3012,3013,3020,3027,3033],{},[882,3014,3015,3018],{},[897,3016,3017],{},"Recherche",[897,3019,615],{},[882,3021,3022,3025],{},[897,3023,3024],{},"Login",[897,3026,621],{},[882,3028,3029,3031],{},[897,3030,2477],{},[897,3032,621],{},[882,3034,3035,3037],{},[897,3036,2468],{},[897,3038,615],{},[2650,3040],{},[2643,3042,3044],{"id":3043},"sécurité","Sécurité",[3046,3047],"illustration",{"alt":3048,"kind":3049,"src":3050,"svg":3051},"HTTPS chiffre le tuyau entre navigateur et serveur, indépendamment de la méthode GET ou POST","schema","\u002Fillustrations\u002F1.nsi-1ere\u002Fpe-ihm-web\u002Fhttps-tuyau.svg","\u003Csvg class=\"illustration-svg\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 480 220\" role=\"img\" aria-label=\"HTTPS chiffre le tuyau entre le navigateur et le serveur : une gaine TLS entoure les messages qui circulent, les rendant illisibles pour un intermédiaire qui les intercepte.\">\n  \u003Ctitle>HTTPS : le tuyau chiffré entre navigateur et serveur\u003C\u002Ftitle>\n  \u003Cstyle>\n    .ht-svg { font-family: Geist, Inter, system-ui, sans-serif; }\n    .ht-node     { fill: var(--diagram-node-bg); stroke: var(--diagram-node-border); stroke-width: 1.5; }\n    .ht-label    { fill: var(--diagram-text); font-size: 13px; font-weight: 500; }\n    .ht-pipe     { fill: var(--diagram-surface-alt); stroke: var(--diagram-node-border); stroke-width: 2; }\n    .ht-pipe-in  { fill: var(--diagram-surface); stroke: none; }\n    .ht-tls      { fill: var(--diagram-accent-soft); stroke: var(--diagram-node-border); stroke-width: 1.5; }\n    .ht-lock     { fill: none; stroke: var(--diagram-node-border); stroke-width: 1.6; }\n    .ht-cipher   { fill: var(--diagram-line); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 1px; }\n    .ht-tls-cap  { fill: var(--diagram-node-border); font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 1.5px; }\n    .ht-eaves    { fill: var(--diagram-line); font-size: 11px; }\n    .ht-leader   { stroke: var(--diagram-border); stroke-width: 1.5; stroke-dasharray: 4 3; fill: none; }\n    .ht-x        { stroke: var(--diagram-line); stroke-width: 1.6; }\n  \u003C\u002Fstyle>\n\n  \u003Cg class=\"ht-svg\">\n    \u003C!-- TLS envelope wrapping the whole pipe -->\n    \u003Crect x=\"92\" y=\"58\" width=\"296\" height=\"74\" rx=\"14\" class=\"ht-tls\"\u002F>\n    \u003Ctext x=\"240\" y=\"50\" text-anchor=\"middle\" class=\"ht-tls-cap\">GAINE TLS\u003C\u002Ftext>\n\n    \u003C!-- inner pipe carrying the ciphered message -->\n    \u003Crect x=\"104\" y=\"74\" width=\"272\" height=\"42\" rx=\"8\" class=\"ht-pipe\"\u002F>\n    \u003Ctext x=\"240\" y=\"100\" text-anchor=\"middle\" class=\"ht-cipher\">a8?f3·9k#·z1q\u003C\u002Ftext>\n\n    \u003C!-- padlock (form, not colour) -->\n    \u003Cg transform=\"translate(118,86)\">\n      \u003Crect class=\"ht-lock\" x=\"0\" y=\"7\" width=\"16\" height=\"13\" rx=\"2\"\u002F>\n      \u003Cpath class=\"ht-lock\" d=\"M 3 7 V 4 a 5 5 0 0 1 10 0 V 7\"\u002F>\n    \u003C\u002Fg>\n\n    \u003C!-- browser (left) -->\n    \u003Crect x=\"20\" y=\"74\" width=\"72\" height=\"42\" rx=\"5\" class=\"ht-node\"\u002F>\n    \u003Ctext x=\"56\" y=\"100\" text-anchor=\"middle\" class=\"ht-label\">Navigateur\u003C\u002Ftext>\n\n    \u003C!-- server (right) -->\n    \u003Crect x=\"388\" y=\"74\" width=\"72\" height=\"42\" rx=\"5\" class=\"ht-node\"\u002F>\n    \u003Ctext x=\"424\" y=\"100\" text-anchor=\"middle\" class=\"ht-label\">Serveur\u003C\u002Ftext>\n\n    \u003C!-- eavesdropper below, sees only scrambled bytes -->\n    \u003Cpath class=\"ht-leader\" d=\"M 240 132 V 168\"\u002F>\n    \u003Cg transform=\"translate(204,170)\">\n      \u003Ccircle class=\"ht-x\" cx=\"12\" cy=\"12\" r=\"11\" fill=\"none\"\u002F>\n      \u003Cline class=\"ht-x\" x1=\"5\" y1=\"5\" x2=\"19\" y2=\"19\"\u002F>\n      \u003Cline class=\"ht-x\" x1=\"19\" y1=\"5\" x2=\"5\" y2=\"19\"\u002F>\n    \u003C\u002Fg>\n    \u003Ctext x=\"236\" y=\"187\" class=\"ht-eaves\">intermédiaire : message illisible\u003C\u002Ftext>\n  \u003C\u002Fg>\n\u003C\u002Fsvg>\n",[598,3053,3054,3055,629],{},"POST ≠ sécurité. La confidentialité vient de ",[602,3056,2428],{},[2650,3058],{},[2643,3060,3062],{"id":3061},"validation-html5","Validation HTML5",[660,3064,3066],{"className":662,"code":3065,"language":664,"meta":665,"style":665},"\u003Cinput type=\"email\" required>\n\u003Cinput type=\"number\" min=\"0\" max=\"120\">\n\u003Cinput type=\"text\" pattern=\"[A-Z]{3}\\d{4}\">\n",[607,3067,3068,3084,3110],{"__ignoreMap":665},[669,3069,3070,3072,3074,3076,3078,3080,3082],{"class":671,"line":672},[669,3071,676],{"class":675},[669,3073,734],{"class":679},[669,3075,737],{"class":683},[669,3077,687],{"class":675},[669,3079,719],{"class":690},[669,3081,758],{"class":683},[669,3083,702],{"class":675},[669,3085,3086,3088,3090,3092,3094,3096,3098,3100,3102,3104,3106,3108],{"class":671,"line":705},[669,3087,676],{"class":675},[669,3089,734],{"class":679},[669,3091,737],{"class":683},[669,3093,687],{"class":675},[669,3095,802],{"class":690},[669,3097,817],{"class":683},[669,3099,687],{"class":675},[669,3101,822],{"class":690},[669,3103,825],{"class":683},[669,3105,687],{"class":675},[669,3107,830],{"class":690},[669,3109,702],{"class":675},[669,3111,3112,3114,3116,3118,3120,3122,3124,3126,3128],{"class":671,"line":729},[669,3113,676],{"class":675},[669,3115,734],{"class":679},[669,3117,737],{"class":683},[669,3119,687],{"class":675},[669,3121,1049],{"class":690},[669,3123,2077],{"class":683},[669,3125,687],{"class":675},[669,3127,2082],{"class":690},[669,3129,702],{"class":675},[598,3131,3132,3133,629],{},"Côté navigateur seulement — ",[602,3134,2516],{},[2650,3136],{},[2643,3138,3140],{"id":3139},"à-retenir","À retenir",[598,3142,3143,3145,3146,3149,3150],{},[607,3144,609],{}," + ",[607,3147,3148],{},"\u003Cinput name>"," + bouton submit = un formulaire.\n",[602,3151,3152],{},"GET pour lire, POST pour modifier.",[2233,3154,2621],{},{"title":665,"searchDepth":705,"depth":705,"links":3156},[],"Deck projetable pour la séance sur les formulaires.",{},"\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires.slides",{"title":2639,"description":3157},"1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires.slides","aF0P82t-HkXJKsYgJc98L5gYiyEB38lzABF0mxeFFpU",{"id":2262,"title":2263,"bo":3164,"body":3165,"description":2630,"eval":2249,"extension":2250,"labo":2249,"meta":3465,"navigation":2256,"path":2632,"quizzes":3466,"readingTime":672,"seo":3467,"stem":2635,"tp":2249,"__hash__":2636},[588],{"type":590,"value":3166,"toc":3457},[3167,3169,3185,3187,3221,3223,3279,3287,3289,3333,3335,3357,3359,3455],[593,3168,2270],{"id":2269},[598,3170,3171],{},[602,3172,2275,3173,2278,3175,2282,3177,2285,3179,2288,3181,2291,3183,2294],{},[607,3174,609],{},[607,3176,2281],{},[607,3178,646],{},[607,3180,901],{},[607,3182,615],{},[607,3184,621],{},[593,3186,2298],{"id":2297},[1450,3188,3189,3193,3197,3205,3209],{},[1453,3190,3191,2306],{},[607,3192,2305],{},[1453,3194,2309,3195,629],{},[607,3196,955],{},[1453,3198,3199,2316,3201,647,3203,2322],{},[607,3200,968],{},[607,3202,974],{},[602,3204,2321],{},[1453,3206,3207,2328],{},[607,3208,2327],{},[1453,3210,2331,3211,647,3213,647,3215,647,3217,647,3219,629],{},[607,3212,992],{},[607,3214,995],{},[607,3216,998],{},[607,3218,1001],{},[607,3220,2138],{},[593,3222,2345],{"id":2344},[876,3224,3225,3235],{},[879,3226,3227],{},[882,3228,3229,3231,3233],{},[885,3230,2354],{},[885,3232,615],{},[885,3234,621],{},[892,3236,3237,3247,3255,3263,3271],{},[882,3238,3239,3241,3245],{},[897,3240,2365],{},[897,3242,2368,3243,2371],{},[607,3244,1480],{},[897,3246,2374],{},[882,3248,3249,3251,3253],{},[897,3250,2379],{},[897,3252,2382],{},[897,3254,2385],{},[882,3256,3257,3259,3261],{},[897,3258,2390],{},[897,3260,2393],{},[897,3262,1814],{},[882,3264,3265,3267,3269],{},[897,3266,2400],{},[897,3268,2403],{},[897,3270,2406],{},[882,3272,3273,3275,3277],{},[897,3274,2411],{},[897,3276,2414],{},[897,3278,2417],{},[598,3280,3281,2425,3285,2429],{},[602,3282,3283,2424],{},[607,3284,621],{},[602,3286,2428],{},[593,3288,2433],{"id":2432},[876,3290,3291,3299],{},[879,3292,3293],{},[882,3294,3295,3297],{},[885,3296,1848],{},[885,3298,1851],{},[892,3300,3301,3309,3317,3325],{},[882,3302,3303,3305],{},[897,3304,2450],{},[897,3306,3307],{},[607,3308,615],{},[882,3310,3311,3313],{},[897,3312,2459],{},[897,3314,3315],{},[607,3316,621],{},[882,3318,3319,3321],{},[897,3320,2468],{},[897,3322,3323],{},[607,3324,615],{},[882,3326,3327,3329],{},[897,3328,2477],{},[897,3330,3331],{},[607,3332,621],{},[593,3334,2485],{"id":2484},[1450,3336,3337,3341,3347,3353],{},[1453,3338,2490,3339,2493],{},[607,3340,955],{},[1453,3342,3343,2498,3345,2501],{},[607,3344,2181],{},[607,3346,945],{},[1453,3348,2504,3349,2507,3351],{},[607,3350,615],{},[602,3352,2510],{},[1453,3354,2513,3355,629],{},[602,3356,2516],{},[593,3358,2520],{"id":2519},[660,3360,3361],{"className":662,"code":2523,"language":664,"meta":665,"style":665},[607,3362,3363,3383,3401,3429,3447],{"__ignoreMap":665},[669,3364,3365,3367,3369,3371,3373,3375,3377,3379,3381],{"class":671,"line":672},[669,3366,676],{"class":675},[669,3368,680],{"class":679},[669,3370,684],{"class":683},[669,3372,687],{"class":675},[669,3374,691],{"class":690},[669,3376,694],{"class":683},[669,3378,687],{"class":675},[669,3380,699],{"class":690},[669,3382,702],{"class":675},[669,3384,3385,3387,3389,3391,3393,3395,3397,3399],{"class":671,"line":705},[669,3386,708],{"class":675},[669,3388,711],{"class":679},[669,3390,714],{"class":683},[669,3392,687],{"class":675},[669,3394,719],{"class":690},[669,3396,2560],{"class":675},[669,3398,711],{"class":679},[669,3400,702],{"class":675},[669,3402,3403,3405,3407,3409,3411,3413,3415,3417,3419,3421,3423,3425,3427],{"class":671,"line":729},[669,3404,708],{"class":675},[669,3406,734],{"class":679},[669,3408,737],{"class":683},[669,3410,687],{"class":675},[669,3412,719],{"class":690},[669,3414,744],{"class":683},[669,3416,687],{"class":675},[669,3418,719],{"class":690},[669,3420,751],{"class":683},[669,3422,687],{"class":675},[669,3424,719],{"class":690},[669,3426,758],{"class":683},[669,3428,702],{"class":675},[669,3430,3431,3433,3435,3437,3439,3441,3443,3445],{"class":671,"line":763},[669,3432,708],{"class":675},[669,3434,845],{"class":679},[669,3436,737],{"class":683},[669,3438,687],{"class":675},[669,3440,852],{"class":690},[669,3442,2101],{"class":675},[669,3444,845],{"class":679},[669,3446,702],{"class":675},[669,3448,3449,3451,3453],{"class":671,"line":770},[669,3450,865],{"class":675},[669,3452,680],{"class":679},[669,3454,702],{"class":675},[2233,3456,2621],{},{"title":665,"searchDepth":705,"depth":705,"links":3458},[3459,3460,3461,3462,3463,3464],{"id":2269,"depth":705,"text":2270},{"id":2297,"depth":705,"text":2298},{"id":2344,"depth":705,"text":2345},{"id":2432,"depth":705,"text":2433},{"id":2484,"depth":705,"text":2485},{"id":2519,"depth":705,"text":2520},{},[],{"title":2263,"description":2630},{"id":2638,"title":2639,"body":3469,"description":3157,"extension":2250,"meta":3925,"navigation":2256,"path":3159,"seo":3926,"stem":3161,"__hash__":3162},{"type":590,"value":3470,"toc":3923},[3471,3473,3475,3477,3479,3573,3575,3577,3581,3595,3599,3615,3617,3621,3749,3751,3753,3767,3769,3771,3785,3787,3789,3825,3827,3829,3831,3835,3837,3839,3905,3909,3911,3913,3921],[2643,3472,339],{"id":2645},[598,3474,2648],{},[2650,3476],{},[2643,3478,2655],{"id":2654},[660,3480,3481],{"className":662,"code":2658,"language":664,"meta":665,"style":665},[607,3482,3483,3503,3521,3547,3565],{"__ignoreMap":665},[669,3484,3485,3487,3489,3491,3493,3495,3497,3499,3501],{"class":671,"line":672},[669,3486,676],{"class":675},[669,3488,680],{"class":679},[669,3490,684],{"class":683},[669,3492,687],{"class":675},[669,3494,2673],{"class":690},[669,3496,694],{"class":683},[669,3498,687],{"class":675},[669,3500,699],{"class":690},[669,3502,702],{"class":675},[669,3504,3505,3507,3509,3511,3513,3515,3517,3519],{"class":671,"line":705},[669,3506,708],{"class":675},[669,3508,711],{"class":679},[669,3510,714],{"class":683},[669,3512,687],{"class":675},[669,3514,2694],{"class":690},[669,3516,2697],{"class":675},[669,3518,711],{"class":679},[669,3520,702],{"class":675},[669,3522,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545],{"class":671,"line":729},[669,3524,708],{"class":675},[669,3526,734],{"class":679},[669,3528,737],{"class":683},[669,3530,687],{"class":675},[669,3532,1049],{"class":690},[669,3534,744],{"class":683},[669,3536,687],{"class":675},[669,3538,2694],{"class":690},[669,3540,751],{"class":683},[669,3542,687],{"class":675},[669,3544,2694],{"class":690},[669,3546,702],{"class":675},[669,3548,3549,3551,3553,3555,3557,3559,3561,3563],{"class":671,"line":763},[669,3550,708],{"class":675},[669,3552,845],{"class":679},[669,3554,737],{"class":683},[669,3556,687],{"class":675},[669,3558,852],{"class":690},[669,3560,2101],{"class":675},[669,3562,845],{"class":679},[669,3564,702],{"class":675},[669,3566,3567,3569,3571],{"class":671,"line":770},[669,3568,865],{"class":675},[669,3570,680],{"class":679},[669,3572,702],{"class":675},[2650,3574],{},[2643,3576,2759],{"id":2758},[598,3578,3579,658],{},[607,3580,609],{},[1450,3582,3583,3587],{},[1453,3584,3585,2770],{},[607,3586,901],{},[1453,3588,3589,2775,3591,918,3593],{},[607,3590,911],{},[607,3592,917],{},[607,3594,921],{},[598,3596,3597,658],{},[607,3598,646],{},[1450,3600,3601,3605,3609],{},[1453,3602,3603,2790],{},[607,3604,945],{},[1453,3606,3607,2795],{},[607,3608,955],{},[1453,3610,3611,2800,3613,2804],{},[607,3612,968],{},[607,3614,2803],{},[2650,3616],{},[2643,3618,2810,3619],{"id":2809},[607,3620,646],{},[660,3622,3623],{"className":662,"code":2815,"language":664,"meta":665,"style":665},[607,3624,3625,3639,3653,3667,3693,3707,3721,3735],{"__ignoreMap":665},[669,3626,3627,3629,3631,3633,3635,3637],{"class":671,"line":672},[669,3628,676],{"class":675},[669,3630,734],{"class":679},[669,3632,737],{"class":683},[669,3634,687],{"class":675},[669,3636,1049],{"class":690},[669,3638,702],{"class":675},[669,3640,3641,3643,3645,3647,3649,3651],{"class":671,"line":705},[669,3642,676],{"class":675},[669,3644,734],{"class":679},[669,3646,737],{"class":683},[669,3648,687],{"class":675},[669,3650,719],{"class":690},[669,3652,702],{"class":675},[669,3654,3655,3657,3659,3661,3663,3665],{"class":671,"line":729},[669,3656,676],{"class":675},[669,3658,734],{"class":679},[669,3660,737],{"class":683},[669,3662,687],{"class":675},[669,3664,1072],{"class":690},[669,3666,702],{"class":675},[669,3668,3669,3671,3673,3675,3677,3679,3681,3683,3685,3687,3689,3691],{"class":671,"line":763},[669,3670,676],{"class":675},[669,3672,734],{"class":679},[669,3674,737],{"class":683},[669,3676,687],{"class":675},[669,3678,802],{"class":690},[669,3680,817],{"class":683},[669,3682,687],{"class":675},[669,3684,822],{"class":690},[669,3686,825],{"class":683},[669,3688,687],{"class":675},[669,3690,830],{"class":690},[669,3692,702],{"class":675},[669,3694,3695,3697,3699,3701,3703,3705],{"class":671,"line":770},[669,3696,676],{"class":675},[669,3698,734],{"class":679},[669,3700,737],{"class":683},[669,3702,687],{"class":675},[669,3704,1170],{"class":690},[669,3706,702],{"class":675},[669,3708,3709,3711,3713,3715,3717,3719],{"class":671,"line":791},[669,3710,676],{"class":675},[669,3712,734],{"class":679},[669,3714,737],{"class":683},[669,3716,687],{"class":675},[669,3718,1200],{"class":690},[669,3720,702],{"class":675},[669,3722,3723,3725,3727,3729,3731,3733],{"class":671,"line":835},[669,3724,676],{"class":675},[669,3726,734],{"class":679},[669,3728,737],{"class":683},[669,3730,687],{"class":675},[669,3732,1148],{"class":690},[669,3734,702],{"class":675},[669,3736,3737,3739,3741,3743,3745,3747],{"class":671,"line":840},[669,3738,676],{"class":675},[669,3740,734],{"class":679},[669,3742,737],{"class":683},[669,3744,687],{"class":675},[669,3746,1256],{"class":690},[669,3748,702],{"class":675},[2650,3750],{},[2643,3752,2947],{"id":2946},[1450,3754,3755,3759,3761,3763],{},[1453,3756,2952,3757],{},[607,3758,2955],{},[1453,3760,2958],{},[1453,3762,2961],{},[1453,3764,2964,3765,2968],{},[602,3766,2967],{},[2650,3768],{},[2643,3770,2974],{"id":2973},[1450,3772,3773,3777,3779,3781],{},[1453,3774,2979,3775,2982],{},[602,3776,1645],{},[1453,3778,2985],{},[1453,3780,1814],{},[1453,3782,2964,3783,2993],{},[602,3784,2992],{},[2650,3786],{},[2643,3788,2999],{"id":2998},[876,3790,3791,3799],{},[879,3792,3793],{},[882,3794,3795,3797],{},[885,3796,3008],{},[885,3798,1851],{},[892,3800,3801,3807,3813,3819],{},[882,3802,3803,3805],{},[897,3804,3017],{},[897,3806,615],{},[882,3808,3809,3811],{},[897,3810,3024],{},[897,3812,621],{},[882,3814,3815,3817],{},[897,3816,2477],{},[897,3818,621],{},[882,3820,3821,3823],{},[897,3822,2468],{},[897,3824,615],{},[2650,3826],{},[2643,3828,3044],{"id":3043},[3046,3830],{"alt":3048,"kind":3049,"src":3050,"svg":3051},[598,3832,3054,3833,629],{},[602,3834,2428],{},[2650,3836],{},[2643,3838,3062],{"id":3061},[660,3840,3841],{"className":662,"code":3065,"language":664,"meta":665,"style":665},[607,3842,3843,3859,3885],{"__ignoreMap":665},[669,3844,3845,3847,3849,3851,3853,3855,3857],{"class":671,"line":672},[669,3846,676],{"class":675},[669,3848,734],{"class":679},[669,3850,737],{"class":683},[669,3852,687],{"class":675},[669,3854,719],{"class":690},[669,3856,758],{"class":683},[669,3858,702],{"class":675},[669,3860,3861,3863,3865,3867,3869,3871,3873,3875,3877,3879,3881,3883],{"class":671,"line":705},[669,3862,676],{"class":675},[669,3864,734],{"class":679},[669,3866,737],{"class":683},[669,3868,687],{"class":675},[669,3870,802],{"class":690},[669,3872,817],{"class":683},[669,3874,687],{"class":675},[669,3876,822],{"class":690},[669,3878,825],{"class":683},[669,3880,687],{"class":675},[669,3882,830],{"class":690},[669,3884,702],{"class":675},[669,3886,3887,3889,3891,3893,3895,3897,3899,3901,3903],{"class":671,"line":729},[669,3888,676],{"class":675},[669,3890,734],{"class":679},[669,3892,737],{"class":683},[669,3894,687],{"class":675},[669,3896,1049],{"class":690},[669,3898,2077],{"class":683},[669,3900,687],{"class":675},[669,3902,2082],{"class":690},[669,3904,702],{"class":675},[598,3906,3132,3907,629],{},[602,3908,2516],{},[2650,3910],{},[2643,3912,3140],{"id":3139},[598,3914,3915,3145,3917,3149,3919],{},[607,3916,609],{},[607,3918,3148],{},[602,3920,3152],{},[2233,3922,2621],{},{"title":665,"searchDepth":705,"depth":705,"links":3924},[],{},{"title":2639,"description":3157},1788035581307]