NFA016: Introduction 22/01/2015 18:26
NFA016 : Introduction
O. Pons, S. Rosmorduc
Conservatoire National des Arts & Métiers
Pour naviguer sur le Web, il faut :
1. Une connexion au réseau
Réseau
Connexion physique (câbles,sans fils, …) à des machines
Protocoles de communication
Plusieurs niveau (couche) :
Internet protocole IP
Transmission Control Protocol TCP
…
HyperText Transfer Protocol HTTP
…
Fournisseur d'accès (FAI) (Free,SFR …)
2. Un navigateur Web
(Browser) graphique ou texte
Naviguer: dialoguer avec un serveur web
Uniform Resource Locator (adresse web)
http :// [Link] / …/repertoire/… / [Link]
↑ ↑ ↑ ↑
protocole adresse du serveur chemin vers le fichier/ page demandée
Page web affichée par un navigateur graphique
[Link] Page 1 sur 13
NFA016: Introduction 22/01/2015 18:26
Page web affichée par un téléphone mobile
[Link] Page 2 sur 13
NFA016: Introduction 22/01/2015 18:26
Page web affichée par un navigateur en mode texte
Page web reçue par le navigateur
<html>
<head>
<title>developpement web</title>
</head>
<body>
<h1>Bienvenue au cours Developpement Web</h1>
<img src="[Link]" alt="Une belle image de nénuphars"/>
<p>
Ce cours a pour objectif de dresser un tableau complet de
l'architecture
du <a href="[Link] et des technologies
concernées dans la construction d'un site.
</p>
[Link] Page 3 sur 13
NFA016: Introduction 22/01/2015 18:26
<h2>horaires et lieu</h2>
<p>
Le cours a lieu a saint Denis salle 415 , le lundi de 18h15 Ã 21H15.
</p>
</body>
</html>
La page HTML
Un fichier de texte en langage HTML (code source)
HTML langage de balises =⇒ structuration
Interprétée par le navigateur
• utilise la structure pour l'affichage
Contient des liens vers d'autres ressources
• autres pages, images, son, vidéo …
écrite avec un éditeur de texte
notepad, textedit, emacs …
pas Word, ni Open Office !!!
La page HTML (source)
[Link] Page 4 sur 13
NFA016: Introduction 22/01/2015 18:26
Langage HTML: ensemble de balises
élément HTML : balise ouvrante + contenu + balise fermante
La page HTML (emboîtement de balises)
La page HTML (vue comme un arbre)
[Link] Page 5 sur 13
NFA016: Introduction 22/01/2015 18:26
Structuration vs présentation
Structuration : HTML
mais comment présenter?
Couleur du fond ?
Taille, couleur de H1,
…
au choix du navigateur
Présentation : CSS (cascading style sheet) 2
body {background-color:white;}
h1 {color:red;font-size:xx-large;}
Feuille de style: fichier texte en langage CSS (extension css)
HTML et CSS
[Link] Page 6 sur 13
NFA016: Introduction 22/01/2015 18:26
Le fichier CSS
[Link] Page 7 sur 13
NFA016: Introduction 22/01/2015 18:26
HTML et CSS (résultat)
Fichier CSS transmis au navigateur après la page web.
interprété pour afficher:
[Link] Page 8 sur 13
NFA016: Introduction 22/01/2015 18:26
Intérêt des feuilles de style externes
Uniformité du style du site entier
Changement d'apparence facile.
Adaptabilité : différentes feuilles de styles alternatives
• écran, impression, braille …
En résumé
HTML et CSS
fichiers textes, écrits une fois pour toutes
statiques : stockées sur le serveur (ou en locale)
Hypertexte : navigation de page en page.
Pages dynamiques: appel de scripts coté serveur
Insuffisance des pages statique
Construire les pages au moment de la demande, lire/stoker des informations sur le serveur, …
Exemple : Un blog
La page contient:
1. Un article
2. Une liste de commentaire (peut être vide)
3. Une zone pour écrire un nouveau commentaire
[Link] Page 9 sur 13
NFA016: Introduction 22/01/2015 18:26
4. Un bouton pour envoyer votre commentaire
Scénario utilisateur :
1. lire l'article et les commentaires,
2. ajouter un commentaire
3. lire l'article et la nouvelle liste de commentaire,
4. …
A chaque lecture, la page fournie est potentiellement différente
Impossible à faire avec HTML + CSS !!!!!!
Solution
Le serveur doit stocker (fichier, BD ) la liste des textes ecrits.
Consultation de la page
N'est pas un lien vers une page HTML ( statique)
Est un lien vers quelque chose qui construit la page html des textes
a partir de l'ensemble des textes stockés au moment de la demande ( dynamique)
Est un lien vers un programme qui construit la page HTML en fonction des textes stockés sur le serveur.
Programme cote serveur
programme ≠ HTML
programme = cgi-bin, PHP …
programme = stocké et exécuté côté serveur
En résumé
Dynamisme coté Navigateur
Depuis la page HTML, appeler des programme qui s'exécutent coté client (Navigateur)
[Link] Page 10 sur 13
NFA016: Introduction 22/01/2015 18:26
Javascript : langage de programmation interprété par le navigateur coté client
Applications Flash, Silverlight/Moonlight …
Applet Java (historique)
Propiétés des scripts coté client
Accès (lecture et écriture) au contenu de la page qui les appelle.
Pas accès aux données stockées coté serveur (peut les demander via ajax)
Restrictions de sécurité ( pas accéder (par défaut) aux fichiers de la machine locale, au hardward, …
Utilisés
pour réagir à des évènements utilisateurs : click ou passage sur une zone de la page …,
quand la réaction demandée ne necessite rien de ce qui est stocké sur le serveur.
Exemples : une calculette, un soduku, vérifications de base du remplissage d'un formulaire …
Appel de script Javascript
Convertisseur Francs euros
[Link] Page 11 sur 13
NFA016: Introduction 22/01/2015 18:26
Convertisseur Francs/Euros
Francs
Euros
convertir
Convertisseur Francs euros : source HTML
<!DOCTYPE HTML>
<html>
<head>
<title>Convertisseur Francs/Euros</title>
<meta charset="utf-8" />
<script type="text/javascript" src="[Link]"></script>
</head>
<body>
<h1>Convertisseur Francs/Euros</h1>
<p>
<label for="fr">Francs</label>
<input type="text" id="fr" />
</p>
<p>
<label for="eu">Euros</label>
<input type="text" id="eu" />
</p>
<input type="button" value="convertir" onclick="cfe()" />
</body>
</html>
Convertisseur Francs euros : source JS
/* une fonction de conversion francs euros*/
function cfe()
{
const tdc=6.55957; /* taux de change */
var fr=[Link]("fr");var sfr=parseFloat([Link]); /* recupere la somme saisie en franc *
var eu=[Link]("eu");var seu=parseFloat([Link]); /* recupere la somme saisie en euro */
if (!isNaN(sfr)){
[Link] Page 12 sur 13
NFA016: Introduction 22/01/2015 18:26
/* si fr est bien un nombre */
[Link]=sfr/tdc;
}else
{
if (!isNaN(seu)){
/* si eu est bien un nombre */
[Link]=seu*tdc;
}
else {alert("entrez au moins une somme" );}
}
}
Web 2.O, Ajax, …
Faire des requêtes et modifier le contenu d'un document sans avoir recharger une page entière.
Communication de javascript avec les serveurs
Plan du cours
Introduction (c'est fait)
Structuration: HTML
Principes de base
Compléments HTML:div, span, id, class ...
Présentation: CSS
Principes de CSS: sélecteur, propriétés simples
Compléments CSS: mécanisme de sélection complet, placement ...
Formulaire et protocoles
Éléments de formulaire
Balise <Form> et protocole
Comportement, dynamisme cote client : JavaScript
Introduction
javascript et page HTML
langage de base: variable, type, structures de contrôle, fonctions, ...
Javascript et le traitement de formulaires, InnerHTML
DOM
Les objets
Découverte de l'api HTML 5 et des api assimilées: Canvas, SVG, local storage , ...
...
Quelque spécificité des téléphones mobiles, tablettes tactiles, ...
Points épineux : sécurité, accessibilité …
Examen
[Link] Page 13 sur 13