Remplissez le jupyter notebook suivant en vous aidant de votre livre de Première NSI de Serge BAYS .
Fichier / Créer une nouvelle sauvegarde
puis sur :
Fichier / Fermer et Arrêter
Réponse :
Lisez le paragraphe Le langage HTML p. 58
1) Que signifie HTML ?
Réponse :
2) Que fait le navigateur quand il ouvre une page HTML ?
Réponse :
3) Qu'envoie le serveur au client (c'est à dire votre navigateur) ? et pourquoi ?
Réponse :
4) Que signifie www ?
Réponse :
5) A quoi ressemble le système de lien entre les pages ?
Réponse :
6) Qu'utilise le HTML ?
Réponse :
7) Qu'est-ce qu'un hypertexte ?
Réponse :
8) Le langage HTML est-il comme le langage Python un langage de programmation ?
Réponse :
9) Quels sont les noms de deux logiciels utiles quand on crée une page web (un pour créer un pour visualiser) ?
Réponse :
10) Quelle est l'extension de fichier qui permet de gérer la mise en forme ?
Réponse :
11) Citez des noms de navigateurs web (au moins 4)?
Réponse :
Lisez le paragraphe Création d'une page du bas de la p. 58 au milieu de la p. 60
12) Quelle habitude prendre quand on programme en HTML ?
Réponse :
13) Quelles sont les trois balises obligatoires ?
Réponse :
<Commencez à saisir vos balises ici...>
<html lang="fr">
<head>
<title> Nom prénom </title>
<meta charset="utf-8"/>
</head>
<body>
<h1> Nom prénom </h1>
<h2> mel@monmel.fr <br> </h2>
<h3> Je me présente... </h3>
<p> Je m'appelle ...<br> J'habite Laval en Mayenne<br>
<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p> Voilà ! </p>
</body>
</html>
14) Quelle action a la balise <br> ?
Réponse :
15) Insérez un commentaire contenant « Début de la présentation » avant "Je me présente" indiquant que c'est le début de la présentation. Qu'allez vous saisir ?
Réponse :
Vous pouvez modifier les balises dans le code html et regarder ce que cela change au niveau de la présentation. (maximum cinq minutes).
Lisez le paragraphe Création d'autres pages du bas de la p. 60 au milieu de la p. 63
On va ajouter un lien pour que le visiteur puisse vous envoyer un courrier
16) Modifiez la ligne contenant l'adresse mel en écrivant votre adresse @avesnieres.fr et que celle-ci soit "cliquable". Quel va être le code de la nouvelle ligne ?
Réponse :
On peut, avant la balise </a>, remplacer l'adresse mel (visible sur le site) par du texte comme "Contactez-moi".
17) Ajoutez un lien vers le site du lycée (https://avesnieres.paysdelaloire.e-lyco.fr) en bas de la page avant </body>. Quel va être le code de la ligne ?
Réponse :
18) Ajoutez, avant la balise </body> mais après le lien précédent (pas sur la même ligne) un lien vers le fichier Anaconda3-2019.03-Windows-x86_64.exe qui se trouve à cette adresse http://www.astrovirtuel.fr/nsi/. Quel va être le code de la ligne ?
Réponse :
Ajoutez avant la balise fermante </body> :
<p><h5 id="bas_de_page">Site créé en 2020<br>
En cours de NSI<br>
Première</h5></p>
Cette action permet d’ajouter une ancre dans la page, c’est à dire un nom sur lequel on peut pointer (comme un lien externe).
19) Ajoutez, juste après la balise <body> un lien interne à la page qui pointe vers l’ancre bas_de_page.
Qu’allez vous saisir comme code ?
Réponse :
20) Ajoutez un lien interne retour qui pointe vers une ancre se trouvant en haut de la page. Quelles sont les deux lignes que vous allez vous saisir ?
Il va y avoir deux lignes à saisir :
une pour définir l'ancre en haut de la page
une autre pour mettre un lien en bas de la page (juste avant </body>) qui permettra de pointer sur la balise du haut de la page.
Réponse :
1) ligne du haut :
2) ligne du bas :
Testez vos liens
21) Que remarquez-vous dans cet éditeur une fois la sauvegarde effectuée ?
Réponse :
22) Que remarquez-vous lors de la création de ces fichiers ?
Réponse :
<ul>
<li> Accueil </li>
<!-- lien vers la page ville.html -->
<li> Ma ville/mon village </li>
<!-- lien vers la page passion.html -->
<li> Ma passion </li>
</ul>
Remettez de l’ordre aussi dans l’indentation.
Remarquez que l'onglet du navigateur porte le titre de la page html courante.
23) Complétez dans la cellule ci-dessous les 3 lignes de liens hypertextes permettant de naviguer entre accueil.html, ville.html, passion.html
Réponse :
<a href="..."> Accueil </a>
<a href="..."> Ma ville / mon village </a>
<a href="..."> Ma passion </a>
<h1>Ma ville est Entrammes</h1>
<h2>Géographie</h2>
<h2>Histoire</h2>
<h2>Population</h2>
<h2>Liens</h2>
<h1>Ma passion est l'aéromodélisme</h1>
<h2>Les techniques</h2>
<h2>Principales disciplines</h2>
<h2>Principaux records du monde</h2>
<h2>Principales associations</h2>
<h2>Liens</h2>
Lisez le paragraphe Les images du milieu de la p. 63 au bas de la p. 64
24) Quelle ligne de code allez-vous saisir ?
Réponse :
Cela fixe à 100 pixels la hauteur de l'image, qui conserve ses proportions.
Remarquez que la valeur de l'attribut height est une chaîne de caractères (et non un entier).
Au lieu de la hauteur, on peut fixer la largeur avec l'attribut width="100"
Attention : si on fixe la hauteur ET la largeur sans respecter les proportions de l'image originale, cela entrainera une déformation.
Rappel : Pour insérer une image ET une légende, on utilise la suite de balises :
<figure>
<img src="..." alt="Logo du lycée">
<figcaption> ... </figcaption>
</figure>
Remarque : En anglais 'légende' se dit 'caption'.
25) Quelle balise permet d'insérer une image ET une légende ?
Réponse :
<...>
26) Quelle suite de balises allez-vous utiliser pour insérer le logo ?
Réponse :
<center>
...
...
...
...
</center>
27) Qu’allez-vous saisir ?
Réponse :
<center>
<a href="..."><figure>
<img src="..." alt="Logo du lycée">
<figcaption> ... </figcaption>
</figure></a>
</center>
Une fois que les 3 pages accueil.html, ville.html, passion.html ont reçu en bas les lignes pour afficher le logo du lycée, commencez à compléter les pages ville.html et passion.html, en ajoutant une ou des images, du texte, des listes, des liens .. (maximum 30 minutes de travail)
Lisez le paragraphe Balises HTML du bas de la p. 64 et p. 65
Lisez le paragraphe Le langage CSS en haut de la p. 66
28) Quel est l’avantage du CSS ?
Réponse :
29) Qui a adopté ce standard ?
Réponse :
Lisez le paragraphe Attribut dans une balise du milieu de la p. 66 au milieu de la p. 67
30) En utilisant Geany, dans la page accueil.html, mettez la zone contenant "je me présente" en rouge. Quel sera le code de cette ligne ?
Réponse :
31) En haut de la page accueil.html, complétez la balise <h1 id="haut_de_page"> avec un attribut style
de façon à mettre le nom et le prénom en vert et en gras. Quel sera le code de cette ligne ?
Réponse :
32) Sur la ligne contenant la phrase "Je me présente", mettez la zone contenant "Je me" en italique (garder la couleur rouge). Utilisez la balise <span>. Que va contenir la nouvelle ligne ?
Réponse :
Le mot anglais span signifie portée. La balise <span> permet de délimiter une petite zone et d'y mettre des attributs qui ont une portée limitée.
Lisez le paragraphe Règle CSS dans l'en-tête du milieu de la p. 67 au milieu de la p. 69
33) Mettez le nom et le prénom en vert et en gras, comme tout à l’heure mais en écrivant une règle CSS dans l'en-tête, après la balise <meta charset="utf-8"/>. Il faudra supprimer l'attribut style
mis dans la balise <h1> à la question 31.
Quelles sont les 3 lignes de code qu'il faut saisir entre les balises <meta charset="utf-8"/> et </head> ?
Réponse :
34) On veut que la ligne « Je m'appelle... J'habite ... en Mayenne. » soit en italiques.
On remarquera que cette ligne est une ligne de paragraphe <p>.
Quel ligne de code faut-il ajouter entre les balises <style type="text/css"> et </style> ?
Réponse :
35) Que se passe-t-il pour le texte « Voilà » en bas de la page d'accueil ?
pourquoi ?
Réponse :
Ce problème sera corrigé dans la partie suivante.
Nous venons de voir deux méthodes :
Insérer un attribut style
dans des balises telle que <p>, <h1>, <span> ...
Ajouter dans l'en-tête de la page html des règles CSS sous la forme d'un bloc <style type="text/css"> ... </style> en précisant dedans les syles que doivent avoir body
, p
, h1
...
Mais elles peuvent être empiriques surtout si des styles de même nom apparaissent sur plusieurs pages. Il faudrait, si l’on veut changer le style sur toutes les pages, passer fichier html par fichier html.
Nous allons plutôt nous pencher sur la méthode du fichier CSS externe aux pages accueil.html, ville.html et passion.html.
Lisez le paragraphe Fichier de style du milieu de la p. 69 au milieu de la p. 70
<!-- Henry Laval - Version 2-->
<html lang="fr">
<head>
<title> Henry Laval </title>
<meta charset="utf-8"/>
<link href="style.css" rel="stylesheet" media="all" type="text/css">
</head>
<body>
<div id="en-tete">
<h1> Henry Laval </h1>
<h2> h-laval@monmel.fr <br></h2>
</div>
<div id="menu">
<ul>
<li> Ma ville/mon village </li>
<li> Ma passion </li>
</ul>
</div>
<!-- Début de la présentation -->
<div id="presentation">
<h3> Je me présente... </h3>
<p> Je m'appelle ...<br>
J'habite …. en Mayenne<br>
<br>
</p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p>.....<br></p>
<p> Voilà ! </p>
</div>
<div id="pied">
<p>
<a href= "https://avesnieres.paysdelaloire.e-lyco.fr/">Lycée Privé d’Avesnières</a>
</p>
</div>
</body>
</html>
/* Mon css */
html,
body { margin : 10px;
background-color : #F8F8FF;
font-family : Arial;
}
h1 { font-size : 30px;
text-align : left;
}
h2 { font-size : 20px;
text-align : left;
color : #003366;
}
h3 { font-size : 20px;
font-style : bold;
text-align : left;
}
p { text-align : justify;
color : #003366;
}
img { width : 250px;}
#en-tete { background-color : #99CCCC;
padding : 10px 10px 0px 10px;
}
#menu { float : left;
background-color : #FFFFFF;
}
#presentation {
margin-left : 270px;
padding : 10px 10px 50px 0;
color : #003366;
}
#pied { background-color:#99CCCC;
text-align:right;
}
Regardez ce qui se passe dans la fenêtre de visualisation HTML lorsqu'on colle le code de la feuille de style dans le fenêtre CSS.
36) Par quelle balise associe-t-on un fichier CSS dans le fichier html, dans sa partie en-tête, juste après <meta charset="utf-8"/> ?
Réponse :
<link href="style.css" rel="stylesheet" media="all" type="text/css">
Vous devez obtenir dans l'en-tête du fichier accueil.html :
<head>
<title> Nom Prénom </title>
<meta charset="utf-8"/>
<link href="style.css" rel="stylesheet" media="all" type="text/css">
</head>
<link href="style.css" rel="stylesheet" media="all" type="text/css">
dans l'en-tête des deux fichiers ville.html et passion.html, juste après les balises <meta>.
On veut régler plus finement l'aspect de la page web. Pour cela on va créer des divisions au moyen de divisions de page.
Chaque division portera un identifiant (un nom au choix de celui qui écrit la page html). Et cet identifiant sera utilisé dans la feuille externe style.css
<html lang="fr">
<head>
<title> Henry LAVAL </title>
<meta charset="utf-8"/>
<link href="style.css" rel="stylesheet" media="all" type="text/css">
</head>
<body>
<!-- Début de l'en-tête -->
<div id="en-tete">
<a href="#bas_de_page">info site</a>
<h1 id="haut"> Henry Laval </h1>
<h2><a href="mailto:hlaval@avesnieres.fr"> h-laval@avesnieres.fr </a><br> </h2>
</div>
<!-- Début du menu -->
<div id="menu">
<ul>
<li> Accueil </li>
<!-- lien vers la page ville.html -->
<li> Ma ville/mon village </li>
<!-- lien vers la page passion.html -->
<li> Ma passion </li>
</ul>
</div>
<!-- Début de la présentation -->
<div id="presentation">
<h3> je me présente... </h3>
<p> Je m’appelle …. <br> J'habite Laval en Mayenne<br></p>
<p><img src="ma_photo.jpeg" alt="Ma photo"><br></p>
...
<p>.....<br></p>
<p> Voilà ! </p>
</div>
<!-- Début du pied de page -->
<div id="pied">
<center>
<figure><a href="...">
<img src="..." alt="Logo du lycée">
<figcaption> ... </figcaption>
</a></figure>
</center>
<h5 id="bas_de_page">Site créé en 2020<br>
En cours de NSI<br>
Première</h5>
<a href="#haut">Retour</a>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="fr">
<head>
<title> Passion </title>
<meta charset="utf-8"/>
<link href="style.css" rel="stylesheet" media="all" type="text/css">
</head>
<body>
<!-- Début de l'en-tête -->
<div id="en-tete">
<a href="#bas_de_page">info site</a>
<h1 id="haut"> Henry Laval </h1>
<h2><a href="mailto:hlaval@avesnieres.fr"> h-laval@avesnieres.fr </a><br> </h2>
</div>
<!-- Début du menu -->
<div id="menu">
<ul>
<li> Accueil </li>
<!-- lien vers la page ville.html -->
<li> Ma ville/mon village </li>
<!-- lien vers la page passion.html -->
<li> Ma passion </li>
</ul>
</div>
<!-- Début de la présentation -->
<div id="presentation">
<h1> Ma passion est ... </h1>
<h2> Les techniques </h2>
<p>...</p>
<h2> Principales disciplines </h2>
<p>...</p>
<h2> Principaux records du monde </h2>
<p>...</p>
<h2> Liens </h2>
<p>...</p>
</div>
<!-- Début du pied de page -->
<div id="pied">
<center>
<figure><a href="...">
<img src="..." alt="Logo du lycée">
<figcaption> ... </figcaption>
</a></figure>
</center>
<h5 id="bas_de_page">Site créé en 2020<br>
En cours de NSI<br>
Première</h5>
<a href="#haut">Retour</a>
</div>
</body>
</html>
Lisez le paragraphe Commandes CSS du milieu de la p. 70 au milieu de la p. 71
Modifiez les pages html en variant les présentations (centrée, alignée, gras italique, taille des textes différentes, couleurs différentes, ….)
Ajoutez aussi un code habillant une image à choisir (voir page 71) dans vos pages ville.html et/ou passion.html.
37) Recopiez ci-dessous le code utilisé (tout le bloc avec l’image et le texte saisi)
Votre code :
38) Par quel attribut peut-on créer un style de paragraphe avec un nouveau nom (pour ne pas appliquer le même style à tous les paragraphes par exemple) ?
Réponse :
39) Ecrivez une des lignes contenant l’attribut class que vous avez saisie dans votre fichier css.
Vos lignes :
Créez au moins un style de paragraphe comme indiqué page 70 par exemple pour que, lorsque la ligne « je m’appelle » est modifiée les autres paragraphes <p> ne le soient pas.
Voici le code pour pouvoir créer des tableaux si vous pensez que pour certaines parties de vos pages cela peut vous aider.
<table border="1" width="100%">
<tr>
<td width="50%">Ligne 1, colonne 1</td>
<td width="50%">Ligne 1, colonne 2</td>
</tr>
<tr>
<td width="50%">Ligne 2, colonne 1</td>
<td width="50%">Ligne 2, colonne 2</td>
</tr>
</table>
Prenez 30 minutes maximum pour modifier une des pages de votre minisite.
Lisez le paragraphe Web et programmation du milieu de la p. 71 à la p. 73
40) Citez deux langages qui permettent d’interagir avec le contenu d'une page web.
Réponse :
41) Sur quel langage de programmation s’appuie Javascript ?
Réponse :
42) Un fichier qui contient du code php aura quelle extension ?
Réponse :
43) Pourquoi l’utilisateur ne voit pas le code php quand il visualise la page dans un navigateur ?
Réponse :
44) Où doit-on insérer le code script dans une page html ?
Réponse :
Insérez le code suivant dans le fichier accueil.html (dans la partie vous avez donné en réponse à la question 44).
<script type="text/javascript">
function bonjour(){
alert('Bonjour à vous !');
}
</script>
45) Que se passe-t-il ?
Réponse :
Dans la balise <h1>, insérez le code suivant après le nom et le prénom.
<button onclick='bonjour()'>click</button>
La balise </h1> se trouvant juste après
46) Que se passe-t-il ?
Réponse :
47) Que se passe-t-il si on clique dessus ?
Réponse :
48) Que va faire ce script si un clic de l'utilisateur sur un bouton dans la page html active la fonction bonjour() ? (répondez avant de l’insérer dans votre page pour vérifier).
function confirmation() {
if (confirm('Bonjour, vous me connaissez ? (OK pour oui, Annuler pour non)')){
/* Si l'utilisateur clique sur 'OK' */
return true;
}else{
/* Si l'utilisateur clique sur 'Annuler' */
return false;
}
}
function bonjour() {
if (confirmation() == true) {
/* Si la fonction confirmation a renvoyé true */
noma = prompt("Quel est votre prénom ?", "");
alert("Bonjour " + noma + " !");
}else{
/* Si la fonction confirmation a renvoyé false */
alert("Bonjour inconnu (e) !");
}
}
Réponse :
Lisez l'introduction p. 219
49) Quel est le nom du premier réseau à transfert de paquets mis au point par une agence du département de la défense américain (opérationnel en 1969 mais dont la première démonstration officielle a eu lieu en 1972) ?
Réponse :
50) En quelle année est né Internet ?
Réponse :
Ne pas confondre :
Internet est le réseau informatique mondial accessible au public
Le World Wide Web (litt. la « toile (d’araignée) mondiale », abrégé www ou le Web) est un système hypertexte public fonctionnant sur Internet. Le Web est une application d’Internet distincte d’autres applications comme le courrier électronique, la messagerie instantanée et le partage de fichiers en pair à pair...
Lisez le paragraphe Repères p. 221
51) En quoi le langage PHP est-il intéressant ?
Réponse :
Ce langage sera (un peu) manipulé plus tard dans le TP.
Lisez le paragraphe Hypertexte du bas de la p. 221 au milieu de la p. 222
52) Que permet un document hypertexte ?
Réponse :
53) Que Signifie URL ?
Réponse :
54) Que permet une URL ?
Réponse :
55) Quel peut être un des inconvénients d’une hyperlien ?
Réponse :
56) Que signifie http dans une URL ?
Réponse :
Pour les questions 57 à 59 on considère l’URL : http://www.astrovirtuel.fr/nsi/premiere/premiere2019-2020/premiere2019-2020.htm
57) A quoi correspond /nsi/premiere/premiere2019-2020/ ?
Réponse :
58) A quoi correspond www.astrovirtuel.fr ?
Réponse :
59) A quoi correspond .fr?
Réponse :
Voici l'exemple de liens écrits dans le fichier trois_possibilites.html situé dans le dossier nsi d'un serveur distant.
nsi contient une arborescence dans laquelle on trouve deux dossiers (directories)
et quatre fichiers (files)
.
60) Dans un lien hypertexte, que permettent les « .. » comme dans ../images.index.html ?
Réponse :
61) Existe-t-il d'autres types de documents, en dehors des fichiers html, où on peut trouver des liens hypertextes permettant de se déplacer à l’intérieur du document courant ou vers un autre document ?
Réponse :
62) Remettez dans l’ordre les étapes suivantes :
Réponse :
1 - ...
2 - ...
3 - ...
4 - ...
5 - ...
6 - ...
7 - ...
8 - ...
9 - ...
10 - ...
11 - ...
Lisez le paragraphe Interactions avec HTML et JavaScript en bas de la p. 222
Cette partie a déjà été abordée plus haut dans cette séquence. Nous allons préciser certaines choses.
Lisez le paragraphe Javascript du bas de la p. 222 au milieu de la p. 225
63) Que faut-il si l’on veut écrire le code javascript dans le fichier script.js externe au fichier HTML ?
Réponse :
64) Que permet javascript ?
Réponse :
function rebours(x){
while (x>=0){
alert(x);
x--
}
}
<script langage="JavaScript" src="....."> </script>
65) Copiez la ligne finale modifiée dans la cellule ci-dessous :
Réponse :
<script> rebours(5)</script><br>
66) Que remarquez-vous ?
Réponse :
Lisez le paragraphe Evénements du milieu de la p. 225 au milieu de la p. 226
67) Qu’est-ce qu’un événement ?
Réponse :
<script> rebours(5) </script>
<body onLoad="rebours(5)">
68) Quelle est la différence entre :
Réponse :
Lisez le paragraphe Gestion d'un événement du milieu de la p. 226 au haut de la p. 230
function message(cause){
alert(cause);
}
<h1 onClick=message('mon\x20nom')> Henry Laval </h1>
<h2 onMouseover=message('mon\x20e-mail')> h-laval@monmel.fr </h2>
\
(un antislash).alert
dans JavaScript.
<h2 onMouseover=message('mon\x20e-mel')> h-laval@monmel.fr </h2>
c'est que toute la ligne contenant h-laval@monmel.fr est sensible au passage du pointeur dessus.
h-laval@monmel.fr
, on utilise une balise <span>...</span> qui permet de délimiter très précisément la zone où l'événement Mouseover peut être déclenché.<h1 onClick=message('mon\x20nom')>Henry Laval</h1>;
<h2> <span onMouseover=message('mon\x20e-mail')> h-laval@monmel.fr </span> </h2>
69) Que se passe-t-il ?
Réponse :
<img title="Photo" src="ma_photo1.jpeg" onMouseover="this.src='ma_photo2.jpeg'" onMouseout="this.src='ma_photo1.jpeg'" />
70) Que se passe-t-il ?
Réponse :
Lisez le paragraphe JavaScript avec HTML DOM du haut de la p. 230 au milieu de la p. 234
71) Que signifie DOM ?
Réponse :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>DOM</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 1.29" />
<script language="JavaScript">
function rechercheH1(){
var trouve;
trouve = document.all("titre1");
if (trouve == titre1){
alert("Element h1 trouvé");
}
}
function trouveTout(){
for (i=0; i<document.all.length; i++){
alert("Element trouvé : " + document.all(i).tagName);
}
}
</script>
</head>
<body onLoad="rechercheH1()">
<h1 id="titre1">Bienvenue</h1>
<p> Cliquer sur le bouton pour voir les éléments</p>
<button onClick="trouveTout()">Cliquer ici</button>
</body>
</html>
onLoad
.rechercheH1()
.rechercheH1()
est une fonction javascript qui a été écrite pour ouvrir une boite d'alerte si l'identifiant "titre1" est trouvé dans l'un des éléments du document.id="titre1"
alors une boite d'alerte avec le message "Elément h1 trouvé" est effectivement affichée.onClick
. Donc un bouton apparait sur la page et si on clique dessus, alors onlick
prend la valeur trouveTout()
.trouveTout()
contient une boucle for qui affiche une boite d'alerte pour chaque élément du document. Est ainsi affiché successivement le tagName
(en anglais, balise se dit tag) de tous les éléments présents dans ce document.
72) Donnez un exemple de ce que permet de faire le Document Object Model.
Réponse :
Lisez le paragraphe Requêtes HTTP vers le bas de la p. 234
73) Que se passe-t-il entre un client qui est par exemple un ordinateur personnel et un serveur qui est un gros ordinateur (dans le sens client vers serveur) ?
Réponse :
74) Avec quel protocole se fait la communication entre le client et le serveur ?
Réponse :
Lisez le paragraphe Le principe du client et du serveur du bas de la p. 234 au haut de la p. 237
"""
Programme server1.py en Python sur le serveur
"""
from socket import socket, AF_INET, SOCK_STREAM
s=socket(AF_INET, SOCK_STREAM)
s.bind(("", 13450)) # Le serveur est à l’écoute sur le port 13450.
s.listen(5)
test = True
while test :
connexion, adresse = s.accept()
print("connexion de : ", adresse)
req = connexion.recv(1024).decode()
if req!= "":
print("La requête reçue : ", req)
connexion.send(b"Donnees bien recues !")
if req == "Fin" :
test = False
connexion.close()
s.close()
runfile('/home/jdubois/Documents/spyder_raspberry/serveur1.py', wdir='/home/jdubois/Documents/spyder_raspberry')
"""
Programme en Python sur le client
"""
from socket import socket,AF_INET,SOCK_STREAM
hote = "localhost" # ou par exemple hote = "192.168.1.9" qui est l'adresse du serveur.
port = 13450
#-------
sc = socket(AF_INET, SOCK_STREAM)
sc.connect((hote, port))
print("connexion sur le port", port)
sc.send(b"Bonjour, je suis le client Toto")
print(sc.recv(1024).decode())
sc.close()
#-------
sc = socket(AF_INET, SOCK_STREAM)
sc.connect((hote, port))
print("Connexion sur le port", port)
sc.send(b"Fin")
print(sc.recv(1024).decode())
print("Fin")
sc.close()
socket
en écrivant la ligne de code :from socket import socket, AF_INET, SOCK_STREAM
Lisez le paragraphe Les requêtes de la p. 237 au bas de la p. 242
Déjà abordé dans la séquence sur les machines, les systèmes d’exploitation …
75) Que représente le protocole https ?
Réponse :
76) Une requête contenant une adresse web est envoyée avec le protocole DNS. Que permet-elle d'obtenir ?
Réponse :
77) Quels sont les deux types de sites que l’on peut avoir ?
Réponse :
78) Quelle est la différence entre ces deux sites ?
Réponse :
79) Comment un navigateur peut-il gagner du temps pour afficher une page ?
Réponse :
80) Quel est le type de requête envoyée par le client au serveur ?
Réponse :
"""
Programme server2.py en Python sur le serveur
"""
from socket import socket,AF_INET,SOCK_STREAM
reponse = b"""HTTP/1.1 200OK
host : mon site local
Content-Type : text/html \n
<!DOCTYPE html PUBLIC>
<html>
<head>
<title> Ma page </title>
</head>
<body>
<h1>Bonjour</h1>
<h2>Le test et concluant !</h2>
</body>
</html>"""
s=socket(AF_INET, SOCK_STREAM)
s.bind(("", 13450)) # Le serveur est à l’écoute sur le port 13450.
s.listen(5)
while True :
connexion, adresse = s.accept()
print("Connexion de : ", adresse)
req = connexion.recv(1024).decode()
if req!= "":
print(req)
connexion.send(reponse)
connexion.close()
print("Fin")
s.close()
81) Regardez dans la console de Spyder. Quel type de requête (GET ou POST) le serveur reçoit-il de la part du client ?
Réponse :
Lisez le paragraphe Formulaires dans une page Web du bas de la p. 242 au bas de la p. 245
82) Qu’est-ce qu’un formulaire « informatique » ?
Réponse :
83) Quelles balises utilise-t-on pour insérer un formulaire dans une page HTML ?
Réponse :
84) Quels sont les deux attributs importants de la balise <form> ? Dans votre réponse, vous préciserez ce que font ces deux attributs.
Réponse :
85) A quoi correspond la méthode method=get
dans un formulaire ?
Réponse :
86) A quoi correspond la méthode method=post
dans un formulaire ?
Réponse :
87) Quelle balise permet l’interactivité ?
Réponse :
88) Quel est l’attribut important de la balise <input> ?
Réponse :
89) Citez des exemple de mots utilisés pour l'attribut type
de la balise <input>. Au total, donnez 7 types différents qui sont donnés dans les exemples de code en haut de la p. 244, p. 246 et dans les explications en bas de la p. 243.
Réponse :
90) Pourquoi, si on veut envoyer un mot de passe (ou tout autre donnée sensible), il ne faut pas utiliser <form method="get"> ? (Remarque la seule façon d'envoyer des données sensibles en toute sécurité est d'utiliser le protocole HTTPS)
Réponse :
Le but de ce qui va suivre va être de créer une quatrième page sur votre minisite.
Cette page sera un formulaire.
Le contenu sera défini plus tard.
Nous allons utiliser le serveur php déjà installé à la séquence précédente. Nous utiliserons l’adresse du localhost 127.0.0.1
Documents/webs/minisite
en lui donnant le nom formulaire.html<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Contact</title>
</head>
<body>
<h1>Contact</h1>
Voici le code d’un formulaire.
<form name="form1" id="form1" method="get" action="http://127.0.0.1:13450">
<div>
<label for="nom">Nom :</label>
<input type="text" name="visit_nom" id="nom" autofocus/>
</div>
<div>
<label for="mail">e-mail :</label>
<input type="email" name="visit_mail" id="mail"/>
</div>
<p><input type="submit" value="envoyer"></p>
</form>
</body>
</html>
91) Quelles données envoyées par le client voyez-vous ?
Réponse :
92) Recopiez ci-dessous la ligne de la requête GET qui est arrivée sur le serveur (c'est à dire dans la console de Spyder) :
Réponse :
Ensuite, il faut configurer le site pour que ces données puissent être utilisées.
Nous allons voir dans les deux rubriques suivantes comment les récupérer avec un script JavaScript ou un fichier php.
Lisez le paragraphe Formulaire avec JavaScript du bas de la p. 245 au bas de la p. 246
93) Qu’y a-t-il de plus avec un formulaire en JavaScript ?
Réponse :
Voici le code de la page 246 avec une petite modification au niveau de la fonction envoi. Remplacez le code du fichier formulaire.html par celui-ci :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Formulaire avec javascript</title>
<script langage="JavaScript">
function envoi(){
if(confirm("confirmation de l'envoi ?")){
alert("bien envoyé "+formulaire.nom.value);
return true;
}
else{
return false;
}
}
function validation(){
if (formulaire.nom.value == ""){
alert("champ obligatoire");
formulaire.nom.focus();
return false;
}
}
function nouveau(){
formulaire.nom.focus();
}
</script>
</head>
<body>
<h1>Contact</h1>
<form name="formulaire" method="post" action="http://127.0.0.1:13450" onSubmit="return envoi()">
<p>Un formulaire avec Javascript</p>
<p>
<label for="nom">Nom</Label>
<input type="text" name="visit_nom" id="nom" autofocus/>
<input type="submit" value="Envoyer" onClick="return validation()">
<input type="reset" value="Annuler" onClick="return nouveau()">
</p>
</form>
</body>
</html>
94) Que se passe-t-il quand vous exécuter ce formulaire ? (Deux "réactions" possibles)
Réponse 1 :
Réponse 2 :
Prérequis : un serveur http et un serveur php doivent avoir été installés sur l'ordinateur local. Voir la procédure pour un Raspberry.
Lisez le paragraphe Formulaire avec PHP du bas de la p. 246 à la p. 249
95) Comment reconnaît-on le code php ?
Réponse :
Créez une page formulaire_page_reponse.html (à enregistrer sur le bureau) et copiez le code suivant :
<!DOCTYPE html>
<html>
<head>
<title> Formulaire </title>
<meta charset="utf-8">
</head>
<body>
<p> Petit formulaire pour vous visiteur de cette page </p>
<form method="get" action="page_rep1.php">
<p>
<label for="nom">Nom</label>
<input type="text" name="utilisateur" id="nom" autofocus/>
</p>
<p>
<label for="mail">e-mail</label>
<input type="email" name="adresse" id="mail"/>
</p>
<p>
<label for="passe">Mot de passe</label>
<input type="password" name="mdp" id="passe" required/>
</p>
<input type="submit" value="Envoyer"/>
</form>
</body>
</html>
Créer une page page_rep1.php (à enregistrer sur le bureau) et copier le code suivant :
<!DOCTYPE html>
<html>
<head>
<title> Formulaire </title>
<meta charset="utf-8">
</head>
</head>
<body>
<div>
<?php $ip=$_SERVER['REMOTE_ADDR'];
echo 'Votre adresse IP : '.$ip; ?>
<!-- En php, une variable est précédée du caractère $ -->
<h2>Réponses du serveur</h2>
<?php if (isset($_GET['utilisateur']) AND isset($_GET['adresse']) AND isset($_GET['mdp']))
{
$rep1=$_GET['utilisateur']; $rep2=$_GET['adresse']; $rep3=$_GET['mdp']; ?>
<p><?php echo $rep1.'votre email est '.$rep2;?> </p>
<p><?php echo 'et votre mot de passe est '.$rep3;?></p>
<?php }
else {echo 'il y a un problème !';?>
<script langage= "JavaScript">
alert("il y a un problème ? ");
</script>
<?php }?>
</div>
</body>
</html>
96) Que se passe-t-il quand le formulaire est validé ?
Réponse :
97) Que se passe-t-il maintenant ?
Réponse :
localhost/minisite/formulaire_page_reponse.html
98) Que se passe-t-il maintenant ?
Réponse :