HTML HTTP Cgi Ajax Javascript
HTML HTTP Cgi Ajax Javascript
HTML HTTP Cgi Ajax Javascript
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 1 / 117 Jean-Marc PUJOS
LE WEB - Introduction (1)
début fin
Note de bas
de page
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 2 / 117 Jean-Marc PUJOS
LE WEB - Introduction (2)
Entrée Tables Annexe
Entrée
Entrée
Chapitres Glossaire
Index
A A-Z Dictionnaire
Entrée B
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 3 / 117 Jean-Marc PUJOS
LE WEB - Introduction (3)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 4 / 117 Jean-Marc PUJOS
LE WEB - Introduction (4)
Fhb fgx
Fhb fgx
Stockage et représentation
Fdjhjch dffg bfg hb gb d
gv
Fhb fgx
des connaissances :
vdgvg fgbvhb
gjfykjfjèyjh
vxhncj,htxf jhchn
dv gvdcv
sdf
sdffdcbw
réseaux sémantiques, graphes
image
Fhb fgx
conceptuels,....
Fhb fgx
Hypertexte :
liens entre concepts
Fhb fgx Fhb fgx
Toile d'araignée mondiale :
Fhb fgx
World Wide Web
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 5 / 117 Jean-Marc PUJOS
LE WEB - Architecture client-serveur
Fdjhjch dffg bfg hb gb d
gv
vdgvg fgbvhb
gjfykjfjèyjh
vxhncj,htxf jhchn
dv gvdcv fdcbw
sdf
sdf
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 6 / 117 Jean-Marc PUJOS
LE WEB - Les standards
• D'autres standards :
SGML (XML) , Acrobat (Adobe), VRML (3D)
et MIME (Multipurpose Internet Mail Extension)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 7 / 117 Jean-Marc PUJOS
LE WEB - Le protocole HTTP
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 8 / 117 Jean-Marc PUJOS
LE WEB – MIME (1)
• Permet de coder à l’intérieur d’un message plusieurs types de
données à caractère multimédia (graphique, voix, etc …)
• Pour la description du type d’objet transféré et son traitement à
la réception
• Nombre limité de média : types divisé en sous types
ex : video/mpeg, video/quicktime
• Coté serveur : objet relié à un type/sous-type MIME : c’ est
l’extension du nom de fichier qui définit l’étiquette
• Coté client : le type MIME récupéré est comparé avec la liste des
types MIME connus du client:
• certains sont traités directement ex: text/html,
• d’autres par des logiciels plug-in ,
• d’autres par des applications externes,
• enfin, le client peut simplement sauvegarder sur le disque l’objet.
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 9 / 117 Jean-Marc PUJOS
LE WEB – MIME (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 10 / 117 Jean-Marc PUJOS
LE WEB - HTTP/1.0 - les bases
serveur WEB
serveur WEB serveur WEB
lien Hypertexte
lien Hypertexte
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 11 / 117 Jean-Marc PUJOS
LE WEB - HTTP/1.0 - schéma de base
Fermeture de la connexion
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 12 / 117 Jean-Marc PUJOS
LE WEB - HTTP/1.1 - Introduction
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 13 / 117 Jean-Marc PUJOS
LE WEB - HTTP/1.1 - Définitions (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 14 / 117 Jean-Marc PUJOS
LE WEB - HTTP/1.1 - Définitions (2)
requête
connexion modèle http/1.0
réponse
user agent serveur d'origine
requête
connexion connexion connexion connexion
réponse
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 15 / 117 Jean-Marc PUJOS
LE WEB - HTTP/1.1 - Définitions (3)
serveur
user agent d'origine
CACHE
requête
connexion connexion
1 2 3
réponse
relais
modèle http/1.1
(avec cache)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 16 / 117 Jean-Marc PUJOS
Le Serveur WEB
Pages
Internet html
http
statique
DEMON
httpd
CLIENT
navigateur
En fait :
Le navigateur effectue une requête HTTP (envoi d’entêtes HTTP)
Le serveur traite la requête puis envoie une réponse HTTP
(envoi des entêtes HTTP de réponses)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 17 / 117 Jean-Marc PUJOS
LE WEB - Les méthodes
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 18 / 117 Jean-Marc PUJOS
LE WEB - HTTP/1.1 – Les entêtes
Une requête HTTP est un ensemble de lignes envoyé au serveur par le navigateur.
Elle comprend :
Une ligne de requête: c'est une ligne précisant le type de document demandé, la méthode qui
doit être appliquée, et la version du protocole utilisée. La ligne comprend trois éléments devant
être séparés par un espace :
La méthode, L'URL et La version du protocole utilisé par le client
Les champs d'en-tête de la requête: il s'agit d'un ensemble de lignes facultatives permettant de
donner des informations supplémentaires sur la requête et/ou le client (Navigateur, système
d'exploitation, ...). Chacune de ces lignes est composée d'un nom qualifiant le type d'en-tête,
suivi de deux points (:) et de la valeur de l'en-tête
GET http://www.cnam.fr
http://www.cnam.fr HTTP/1.1
Accept : text/html
If-
If-Modified-
Modified-Since : Saturday, 15-
15-January-
January-2004 14:37:11 GMT
User-
User-Agent : Mozilla/4.0
Mozilla/4.0 (compatible; MSIE 5.0; Windows XP)
Le corps de la requête: c'est un ensemble de lignes optionnelles devant être séparées
des lignes précédentes par une ligne vide et permettant par exemple un envoi de
données par une commande POST lors de l'envoi de données au serveur par un
formulaire
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 19 / 117 Jean-Marc PUJOS
LE WEB - L’entête HTTP - Client
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 20 / 117 Jean-Marc PUJOS
LE WEB - L’entête HTTP - Serveur
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 21 / 117 Jean-Marc PUJOS
LE WEB - HTTP - les réponses (1)
Une réponse HTTP est un ensemble de lignes envoyées au navigateur par le
serveur. Elle comprend :
• Une ligne de statut: c'est une ligne précisant la version du protocole utilisé et l'état du
traitement de la requête à l'aide d'un code et d'un texte explicatif. La ligne comprend trois
éléments devant être séparés par un espace :
La version du protocole utilisé
Le code de statut
La signification du code HTTP/1.1 200 OK
Date : Sat,
Sat, 15 Jan 2004 14:37:12 GMT
Server : Microsoft-
Microsoft-IIS/2.0
IIS/2.0
Content-
Content-Type : text/HTML
Content-
Content-Length : 1245
Last-
Last-Modified : Fri, 14 Jan 2000 08:25:13 GMT
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 22 / 117 Jean-Marc PUJOS
LE WEB - HTTP - les réponses (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 23 / 117 Jean-Marc PUJOS
LE WEB - Une transaction HTTP
Requête du client :
get /machin/default.html HTTP/1.1
host: lion.cnam.fr
accept: image/gif,image/x-xbitmap,image/jpeg,*/*
user-agent: Mozilla/3.01Gold(WinNT;I)"
connection:Keep-Alive
Réponse du serveur :
HTTP/1.1 200 OK
Date: Mon, 14 Feb 2001 11:08:41 GMT
Server: Apache/1.3.6 (Unix) (Red Hat/Linux) PHP/3.0.8
Last-Modified:Wed,12 Feb 2001 23:34:45 GMT
Accept-Ranges: bytes
Content-lenght:12789
Content-type:text/html
<html>
…………..
</html>
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 24 / 117 Jean-Marc PUJOS
LE WEB - HTTP - Les caches
• point important (performances ,saturation réseau)
• nécessité de mécanismes plus complets
• transparence sémantique des caches :
• le client doit recevoir la même chose que si il avait eu accès
directement au serveur d'origine
• d'où de nouvelles en-têtes pour la validation, la notion d'expiration
(date de péremption..)
• but du caching : diminuer le trafic
• en éliminant l'envoi de requêtes par des relais (mécanisme
d'expiration)
• en éliminant le besoin d'envoyer la réponse complète (mécanisme
de validation)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 25 / 117 Jean-Marc PUJOS
LE WEB - HTTP - L'expiration (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 26 / 117 Jean-Marc PUJOS
LE WEB - HTTP - L'expiration (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 27 / 117 Jean-Marc PUJOS
LE WEB – Les CGI
Le mécanisme de communication
L’encodage des données
Un exemple de programme CGI
La description des variables
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 28 / 117 Jean-Marc PUJOS
Le Web - Common Gateway Interface
autres
ressources
http programmes gateway
CGI
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 29 / 117 Jean-Marc PUJOS
CGI - Interactivité WWW : CGI
SERVEUR
CLIENT I
Get ou post
n
browser t DEMON dynamique
e httpd Script cgi
r Pages
n html
e statique
t
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 30 / 117 Jean-Marc PUJOS
CGI - Démarche d’un formulaire CGI
• GET :
• le au client envoie serveur les données du formulaire avec l'URL,
encodées dans une chaîne. Le serveur reconnaît l'URL comme un
appel à un programme du fait du répertoire indiqué (cgi-bin par
exemple)
• le programme gateway reçoit les données encodées du formulaire
par la variable d'environnement QUERY_STRING.
• POST :
• le client envoie au serveur les données encodées du formulaire dans
un message body, avec sa requête.
• le serveur les transmet au programme gateway sur l'entrée
standard de celui-ci, (sans EOF).
CONTENT_LENGHT donne la taille des données à lire
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 32 / 117 Jean-Marc PUJOS
CGI - L’encodage des données (1)
• GET : l'appui sur SUBMIT envoie au serveur une URL définie par
action?name1=value1&.....&namen=valuen
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 33 / 117 Jean-Marc PUJOS
CGI - L’encodage des données (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 34 / 117 Jean-Marc PUJOS
CGI - Exemple d’encodage (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 35 / 117 Jean-Marc PUJOS
CGI - Exemple d’encodage (2)
<FORM METHOD="POST" ACTION="http://cocker.cnam.fr/cgi-bin/post-query"
ENCTYPE="x-www-form-encoded">
<P>Aidez nous en remplissant le questionnaire ci -dessous</P>
<P>Votre societe <INPUT NAME="org" TYPE="text" SIZE="48"></P>
<P>Domaine informatique? <INPUT NAME="informatiq" TYPE="checkbox" VALUE="on">
Nombre d' employes<INPUT NAME="emplois" TYPE="text" SIZE="6"></P>
<P>Navigateur utilise</P>
<UL>
<LI>Internet Explorer <INPUT NAME="browsers" TYPE="checkbox" VALUE="explorer">
<LI>Mosaic <INPUT NAME="browsers" TYPE="checkbox" VALUE="mosaic">
<LI>Netscape Communicator<INPUT NAME="browsers" TYPE="checkbox" VALUE="navigator">
<LI>Autres <INPUT NAME="autres" SIZE="40" TYPE="text">
</UL>
<P>votre nom <INPUT NAME="contact" SIZE="42" TYPE="text"></P>
<P>merci de votre collaboration.</P>
<P><INPUT TYPE="submit" VALUE="Envoi"><INPUT TYPE="reset" VALUE="RAZ">
</FORM>
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 36 / 117 Jean-Marc PUJOS
CGI - Exemple d’encodage (3)
POST /cgi-bin/post-query HTTP1.1
Accept=www/source
Accept:text/html
Accept:image/jpeg.....
liste des types acceptés par le client
User-Agent: Netscape...
From ....
Content-Type:application/x-www-form-urlencoded
content-length:n (nombre d’octets du message)
**********ligne blanche**************************
org=Conservatoire+National+des+Arts+et+Métiers
&informatiq=on
&emplois=1400
&browsers=explorer
&browsers=navigator
&autres=win+machin%2C+wintruc
&contact=Dupond@cnam.fr
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 37 / 117 Jean-Marc PUJOS
CGI - Les variables CGI (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 38 / 117 Jean-Marc PUJOS
CGI - Les variables CGI (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 39 / 117 Jean-Marc PUJOS
CGI - Les variables CGI (3)
et surtout :
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 40 / 117 Jean-Marc PUJOS
CGI - En conclusion
début de l’interaction....
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 41 / 117 Jean-Marc PUJOS
LE WEB2 – Problématique
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 42 / 117 Jean-Marc PUJOS
LE WEB2 – Introduction à AJAX (1)
En effet, le modèle web traditionnel est basé sur une suite de requêtes et de réponses
successives, c'est-à-dire une navigation séquentielle de page web en page web. AJAX permet
de ne modifier que la partie de la page web qui nécessite d'être mise à jour en créant une
requête HTTP locale et en modifiant tout ou partie de la page web en fonction de la requête
HTTP récupérée.
AJAX est basé sur l'objet XMLHttpRequest qui permet de faire une requête via Javascript à
un serveur HTTP. Le but est donc, comme dans le "Web 1.0", de faire une requête au serveur
et d'en attendre le retour. Cependant, dans notre cas, le navigateur du client n'est pas
nécessairement rafraîchi et tout est transparent pour l'utilisateur.
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 43 / 117 Jean-Marc PUJOS
LE WEB2 – Introduction à AJAX (2)
Navigateur Client
Navigateur Client
Interface utilisateur
Interface utilisateur Appel Javascript
Données HTML+CSS
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 44 / 117 Jean-Marc PUJOS
LE WEB2 – Introduction à AJAX (3)
Modèle d’application Web classique (synchrone)
Client
Interface utilisateur du navigateur
Activité de l’utilisateur
Entrée Affichage Entrée Affichage Entrée Affichage Entrée
Moteur Ajax
Traitement du client
AJAX n'est pas un nom ou une marque déposée, c'est un acronyme inventé. Il permet de faire interagir le
client encore plus que ne le permettent jusqu'ici les pages Web (même avec flash et/ou Javascript)
le principe étant d'être en constante interaction avec l'utilisateur et de communiquer avec le serveur et les
bases de données de manière transparente (sans recharger la page)
le serveur renvoie une page xml de structure connue par le 'moteur' AJAX , ce dernier utilise le contenu
XML pour restructurer une zone ou la totalité de l'interface du client, et ceci, sans rechargement de page.
ce principe permet une grande rapidité (pas de rechargements d'images, headers, etc...) et une grande
fluidité (pas de saccades ou de chargements progressifs, tout dépend de la machine du client)
donc le 'moteur' AJAX est en fait un ensemble de fonctions Javascript basées sur la prise en charge des
chaînes, et des balises, ainsi que sur les interactions serveur/client java par le biais de la classe
XMLHttpRequest
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 46 / 117 Jean-Marc PUJOS
LE WEB2 – Les limites d’AJAX
♦ Un débogage cauchemardesque.
Il existe très peu d'outils de test et d'aide à la conception. Pour créer une interface
riche, il faut connaître sur le bout des doigts les différences entre les navigateurs et
tester sur chaque plate-forme pour s'assurer que le résultat soit correct.
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 47 / 117 Jean-Marc PUJOS
LES TECHNOLOGIES DU WEB
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 48 / 117 Jean-Marc PUJOS
2ème Partie : Présentation de HTML
Introduction à HTML
Les règles générales
Présentation du Titre
Description du Document
Etude des Tables et des formulaires
Présentation des feuilles de styles
Présentation de XHTML
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 49 / 117 Jean-Marc PUJOS
HTML - Introduction
Inventé par Tim Berners-Lee (CERN)
• SGML: 4 éléments
déclaration SGML (définit les caractères et délimiteurs)
DTD : Document Type Définition : syntaxe de construction des marques
Spécification : sémantique des marques
Instance du document
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 50 / 117 Jean-Marc PUJOS
HTML - Règles générales (1)
élément HTML
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 51 / 117 Jean-Marc PUJOS
HTML - Règles générales (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 53 / 117 Jean-Marc PUJOS
HTML - HEAD (1)
<head>
obligatoire, définit le titre du document
<title> tiens du html</title > -titre dans la fenêtre browser, -nom dans la
liste des signets (bookmark)
pour utilisation
langage de script par défaut
voir HTML 4.0
feuille de style par défaut
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 54 / 117 Jean-Marc PUJOS
HTML - HEAD (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 55 / 117 Jean-Marc PUJOS
HTML - Le document (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 56 / 117 Jean-Marc PUJOS
HTML - Le document (2)
Exemple :
<! DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.0 Final/EN">
<html>
<head>
<title> Exemple de tag body </title>
<body bgcolor=#00FFFF link=#000080 vlink=#800080
alink=#FF0000 text=#808080>
texte quelconque
</body>
</html>
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 57 / 117 Jean-Marc PUJOS
HTML - Le document (3)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 58 / 117 Jean-Marc PUJOS
HTML - Le niveau TEXT
Marquages spéciaux :
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 59 / 117 Jean-Marc PUJOS
<table cellspacing="2" cellpadding="0" border="4" width="450"
height="61">
<tr>
<th valign="bottom" width="116" height"30">en tête 1
</th>
<th width="137" height"50">en tête 2 (centree par defaut) et en
HTML gras</th>
<th align="right" width="144">titre de cellule cadrée a
La table droite</th>
</tr>
(1) <tr>
<td nowrap height="17">contenu d'une cellule avec NOWRAP</td>
<td width="173" height"20">contenu sans l'attribut NOWRAP</td>
<td></td>
</tr>
<tr>
<td height"17"> </td>
<td></td>
<td bgcolor="#D7FB23">couleur de fond</td>
</tr>
</table>
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 60 / 117 Jean-Marc PUJOS
HTML - La table (2)
attributs de tABLE :
ALIGN (Hor. de la table),
WIDTH et HEIGHT ,BORDER (par défaut pas de bordure),
CELLSPACING : esp entre cellules en pixels,
CELL SPADING :esp. entre contenu et bordure
attributs de CAPTION : légende ALIGN:TOP/BOTTOM
attributs de TR : rangée de la table contient des TH titre et TD data, avec ALIGN (left, center,right) et
VALIGN (top,middle,bottom)
attributs de TH (titre de cellule )et de TD (cellule de données):
NOWRAP: ne pas casser les mots ROWSPAN: nombres de lignes(1)
COLSPAN: nombre de colonnes(1) et ALIGN,VALIGN,WIDTH ,HEIGTH
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 61 / 117 Jean-Marc PUJOS
HTML - Les formulaires (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 62 / 117 Jean-Marc PUJOS
HTML - Les formulaires (2)
<p> <h2 align="center">ENQUETE UTILISATEURS</h2></p>
<form action="/cgi-bin/cgiprog" method= "POST">
<pre> exemple de boutons radio
<input type="RADIO" name="SECTEUR1" value="CNAM" checked> Personnel
<input type="RADIO" name="SECTEUR2" value= "ELEVES"> auditeur CNAM
<input type="RADIO" name="SECTEUR3" value= "NQP"> autres.
<p> saisie de texte
Vos Nom et prénom : <input type="TEXT" name="NOM1" size="20"></p>
<p> Votre adresse électronique : < input type="TEXT" name="ADR1" size="30"></p>
<p>exemple de checkbox
Je suis brun/brune<input type=" CHECKBOX " name="BRUN" value="brun">,
grand/petit< input type=" CHECKBOX " name="GRAND" value="grand">,
en bonne santé< input type=" CHECKBOX " name="SANTE" value="en bonne
santé">
tag select: Votre opinion <select name="OPINION1">
<option value="tresbien">Très satisfait
<option value="bien" SELECTED>Satisfait
<option value="bof">Indifférent
<option value="beurk">C'est nul !!
</select>
textarea<p> Vos commentaires <textarea name="COM1" rows="3"
cols="40"></textarea></p><p> <input type="SUBMIT" value="Envoyer"> <input
type="RESET" value="Annuler"></p> </pre> </form>
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 63 / 117 Jean-Marc PUJOS
HTML - Les formulaires (3)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 64 / 117 Jean-Marc PUJOS
HTML - Les types d'ancres
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 65 / 117 Jean-Marc PUJOS
HTML - Les images cliquables
L'attribut USEMAP="nom de la carte" est positionné dans IMG et la carte est ensuite décrite dans
MAP.
L'élément MAP : attribut NAME="nom de la carte" et les descriptions des attributs AERA décrivant les zones
sensibles: AERA:
4 formes ( SHAPE )de zones sensibles :
SHAPE=RECT,CIRCLE,POLY,DEFAULT (rectangle, cercle, polygone, et le reste qui n'a pas été
spécifié précédemment)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 66 / 117 Jean-Marc PUJOS
HTML - Les feuilles de styles
Idée de base:
WEB STYLE SHEETS
séparer la présentation d’un document du document lui-même, sans
sacrifier l’indépendance inter-plateformes
− CSS Cascading Style Sheet 1 (né en 1994, recommandation
W3C en 96 et CSS Cascading Style Sheet 2 (fin 1998)
Ensemble de règles de style indiquant à un browser comment
présenter un document:
− une règle:
s'applique à un selector (élément HTML comme BODY, P, EM,ou class
selector ou ID selector...)
syntaxe: selector (propriété1:val1;....;propriétén:valn)
− exemple:
<head>
<title> CSS Exemple</title>
<style>
H1 (font-size:large;color:red)
H2, H3 (font-size:14pt;font-style:oblique)
</style>
........
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 67 / 117 Jean-Marc PUJOS
HTML - CSS : les styles & cascades
• style interne
• par les attributs des éléments HTML(ex: BODY)
• dans le document :dans HEAD par
<style>
<!--
La ou les feuilles de style
-->
</style>
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 68 / 117 Jean-Marc PUJOS
HTML - CSS : Class Selector
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 69 / 117 Jean-Marc PUJOS
HTML - CSS : Héritages
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 70 / 117 Jean-Marc PUJOS
HTML - CSS : Les propriétés (1)
• Font:
- font-family:nom de famille de fonte ou nom générique
- ex: font-family: “Times New Roman”, serif, monospace)
- font-style:normal, italique, oblique
- font-weight:bold,normal, bolder, lighter...
- font-size : en absolu: 14pt, en % : 90%(base de la taille du parent),..
• Color
- background-color, background-image, background-attachement,
background-repeat, background-position
- color
• Texte
- text-align, text-indent, word-spacing, letter-spacing, text-align, text-
transform(min,MAJ), text-decoration, width, height, line-height,
white-space....
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 71 / 117 Jean-Marc PUJOS
HTML - CSS : Les propriétés (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 72 / 117 Jean-Marc PUJOS
HTML - CSS : En complément
On peut positionner des blocs de contenu grâce à CSS:
Exemple :
<style type =‘ text/css ’>
.pub{position:absolute;top:80px;left:50px; color:yellow;font-size:x-large;font-wight:bold}
</style>
− Dans le body:
<span style=‘position:absolute;top:80px;left:100px; idth:128px;height:200px’>
<img src=‘image.gif ’>
</span>
<span style=‘position:absolute;top:120px;left:160px’>
Mon texte sur l’image
</span>
Permettra de positionner du texte sur l’image au pixel prés, mais les layers permettent aussi cela.
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 73 / 117 Jean-Marc PUJOS
HTML - CSS : En résumé
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 74 / 117 Jean-Marc PUJOS
XHTML - Introduction (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 75 / 117 Jean-Marc PUJOS
XHTML - Introduction (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 76 / 117 Jean-Marc PUJOS
XHTML - Eléments clés
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 77 / 117 Jean-Marc PUJOS
XHTML - Les règles
− Balises obligatoires :
Les éléments <head> et <body> ne peuvent être omis.
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 78 / 117 Jean-Marc PUJOS
XHTML - HTML XHTML
HTML XHTML
<TD BGCOLOR=″#ffcc33″> <td bgcolor=″#ffcc33″>
<p>en<b>gras !</p></b> <p>en<b>gras !</b></p>
Premier paragraphe<p> <p>Premier paragraphe</p>
<hr> <hr />
<br> <br />
<input … > <input … />
<img src=″valid.gif″> <img src=″valid.gif″ />
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 79 / 117 Jean-Marc PUJOS
XHTML - Structure du document
<!DOCTYPE html PUBLIC ″-//W3C//DTD XHTML 1.0 Transitional//EN″
″DTD/xhtml11-transitional.dtd″>
<html>
<head>
<title>Document minimal</title>
<link rel=″stylesheet″ href=″/style.css″ type=″text/css″ />
</head>
<body>
<p> <a href=″http://validator.w3.org/check/refer″>valide</a> </p>
<dd> les éléments de la liste sont ordonnés, c’est à dire par numéros :
<ol>
<li>le premier </li>
<li>le second </li>
</ol>
</dd>
</body>
</html>
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 80 / 117 Jean-Marc PUJOS
LES TECHNOLOGIES DU WEB
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 81 / 117 Jean-Marc PUJOS
3ème Partie : Présentation de JAVASCRIPT
Le mécanisme de communication
L’encodage des données
Un exemple
La description des variables
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 82 / 117 Jean-Marc PUJOS
JAVACRIPT - Interactivité
Interpreteur SERVEUR
javascript
Traitement interne
I
Get ou post
n
browser t
DEMON dynamique
e Script cgi
httpd Pages
r
html +
n statique JAVA
CLIENT e SCRIPT
t
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 83 / 117 Jean-Marc PUJOS
JAVACRIPT - Un client actif
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 84 / 117 Jean-Marc PUJOS
JAVACRIPT - Introduction
• javascript ≠ Java
• java: véritable langage de programmation, compilé, code protégé,typage
fort, objet (classes, instances, héritage)
• javascript: facile à utiliser, typage faible, intégré dans html,interprété basé
sur les objets html
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 85 / 117 Jean-Marc PUJOS
JAVACRIPT - Implémentation du code (1)
Exemples d’insertion de Javascript
• un document devient réactif à un événement
<SCRIPT LANGUAGE="JavaScript"> si à cet événement est associée une fonction
// Définit une fonction clickmulot() javascript
</SCRIPT> • un événement est déclaré dans un
…… formulaire ou sur un lien hypertexte.
……
• Exemple :
……
<FORM>
……
<input type=“button” value =“exemple test”
…… onClick=“alert(‘ouah!’)”>
........ </FORM>
<FORM ...> <INPUT
TYPE="button"
un click souris sur le bouton provoque l'exécution du
onClick="clickmulot(this)" ...>
handler onClick , ici l’affichage d’une fenêtre pop-up
... alert de contenu ouah!
</FORM> (alert : fonction existant dans javascript)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 86 / 117 Jean-Marc PUJOS
JAVACRIPT - Implémentation du code (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 87 / 117 Jean-Marc PUJOS
JAVACRIPT - Les événements (1)
• Souris
• Click (handler: onClick)
• sur un bouton de form (radio, checkbox, button, submit, reset)
• un lien
• MouseOver (onMouseOver) sur un lien
• MouseOut (onMouseOut) sur un lien ou area d’image cliquable
• MouseDown (onMouseDown) et MouseUp (onMouseUp) bouton appuyé
(relaché) sur un document bouton ou lien
• MouseMove (on MouseMove) : mouvement de souris
• DblClick (onDblClick)
• Clavier
• KeyPress (onKeyPress) l’utilisateur a appuyé sur une touche
• KeyDown (onKeyDown) l’utilisateur enfonce une touche
• KeyUp (onKeyUp ) relâchement sur une touche dans un document, image, liens
ou textarea
• Change (onChange) changement de la valeur d’un élément type text, textarea et
select list de form
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 88 / 117 Jean-Marc PUJOS
JAVACRIPT - Les événements (2)
• Focus
• Focus (onFocus) l’utilisateur donne le focus input dans une fenêtre ou un
élément de formulaire
• Blur (onBlur) l’utilisateur enlève le focus input dans une fenêtre ou un élément
de formulaire
• Formulaires
• Select (onSelect) sélection d’un élément de formulaire (type text et textarea)
• Submit (onSubmit) et Reset (onReset) soumission (ou annulation) des données
d’un formulaire
• Document
• Load (onLoad) et Unload (onUnload) : chargement et sortie de page
• Resize (onResize) et Move (onMove) d’une fenêtre
• Abort (onAbort) arrêt du chargement d’une image
• Error (onError) de chargement d’image ou document
• DragDrop (onDragDrop) l’utilisateur fait glisser un objet (ex:fichier) dans la
fenêtre du browser
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 89 / 117 Jean-Marc PUJOS
Les objets et les handlers <input type=Text ou =Password>
onBlur onFocus
<FORM>
onChange onSelect
onSubmit
onKeyDown onKeyPress
onReset
onKeyUp
<frame> ou
<input type=checkbox,radio,
window <IMG> button,submit,select >
onerror onAbort
onClick onDblClick
onError
<BODY> onMouseDown onMouseUp
onLoad
< textarea >
document
onBlur onFocus
onBlur <A> <AREA>
onChange onSelect
onDragDrop onClick onKeyDown onKeyPress
onFocus onDblClick onKeyUp
onLoad onMouseUp
onMove onMouseDown < select>
onResize onMouseOver onBlur onFocus
onUnload onMouseOut onChange
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 90 / 117 Jean-Marc PUJOS
JAVACRIPT - Exemples (1)
le code :
<A HREF="#fin" onClick="alert('onClick sur le lien')">onClick
</A>l'utilisateur clique sur une zone hypertexte.<BR>
[<I>cliquez sur onClick</I>]
donne:
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 91 / 117 Jean-Marc PUJOS
JAVACRIPT - Exemples (2)
le code:
<FORM><INPUT VALUE=onFocus onFocus="alert('onFocus
sur la zone')">l'utilisateur clique sur une zone.<BR>
[<I>cliquez sur onFocus</I>] </FORM>
donne:
on focus l'utilisateur clique sur une zone.
[cliquez sur onFocus]
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 92 / 117 Jean-Marc PUJOS
JAVACRIPT - Basé sur des objets
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 93 / 117 Jean-Marc PUJOS
JAVACRIPT - Les objets du navigateur (1)
• avec en général
• un nom (attribut NAME)
• des propriétés
• qui ont une valeur (VALUE)
• accessibles par des tableaux (array)
• des méthodes
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 94 / 117 Jean-Marc PUJOS
Textarea JAVACRIPT
Layer Text
La hiérarchie des
objets du navigateur
FileUpLoad
Link
Window
Password
Image
Hidden
Frame
Area Submit
Navigator
Document
Anchor Reset
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 95 / 117 Jean-Marc PUJOS
JAVACRIPT - Les objets du navigateur (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 96 / 117 Jean-Marc PUJOS
JAVACRIPT - Exemples d’objets
Soit le code : <HTML> <HEAD> <TITLE>exemple d’objets</TITLE>
<SCRIPT>.......</SCRIPT> </HEAD>
<BODY>
<FORM NAME="maforme "ACTION=npq.cgi" METHOD="get">
<INPUT TYPE="text" NAME="texte1" VALUE="blablabla" SIZE=20>
<INPUT TYPE="text" NAME="texte2" VALUE="machina" SIZE=20>
......
</FORM> </BODY></HTML>
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 97 / 117 Jean-Marc PUJOS
JAVACRIPT - L’objet de base WINDOW (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 98 / 117 Jean-Marc PUJOS
JAVACRIPT - L’objet de base WINDOW (2)
Javascript permet enfin de manipuler les fenêtres
• ouverture de fenêtre : méthode open
window.open(“docu.hml”) ou
window.open(“http://lion.cnam.fr”,”fenaffiche”);
« fenaffiche » sera le nom de TARGET utilisable par une autre fenêtre
<FRAMESET ROWS="60%,40%">
<FRAMESET COLS="30%,70%">
<FRAME SRC="fen1.html"NAME=“fenetre1”>
<FRAME SRC="fen2.html" NAME=“fenetre2”>
</FRAMESET>
<FRAME SRC="fen3.html" NAME=“fenetre3”> </FRAMESET>
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 99 / 117 Jean-Marc PUJOS
JAVACRIPT - L’objet de base WINDOW (3)
fenetre1=top.frames[0]
Ceci correspond à:
fenetre2=top.frames[1]
fenetre3=top.frames[2]
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 101 / 117 Jean-Marc PUJOS
JAVACRIPT - L’objet de base DOCUMENT
cookie : mécanisme pour stocker des données persistantes sur le client (fichier
cookies.txt)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 102 / 117 Jean-Marc PUJOS
JAVACRIPT - L’objet de base FORM
• Les objets form d’un document sont stockés dans un tableau forms (à
partir de forms[0])
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 103 / 117 Jean-Marc PUJOS
JAVACRIPT - Objets de base
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 104 / 117 Jean-Marc PUJOS
Window ou frame .document .forms[i] ou nomforme
alert (chaine)
blur() Clear()
focus() close()
close() open(typemime)
open (url, nomfen,caracteristiques) write(chaine)
prompt(chaine, defaut) writeln(chaine)
setTimeout(exp, ms) captureEvent(evt1|…|evtn)
ClearTimeout(id) releaseEvent(evt1|…|evtn)
.layers[i] ou nomcouche
setInterval(exp,ms)
clearInterval(id) .history moveBy(x,y)
moveTo(x,y)
moveBy(x,y) Back() moveToAbsolute
moveTo(x,y) forward() resizeBy(l,h)
resizeBy(larg,haut) go(entier) resizeTo(l,h)
resizeTo(larg,haut) moveAbove(layer)
resizeBy(x,y) .location moveBelow(layer)
scrollBy(x,y) et scrollTo(x,y) Reload() load(URL,l)
captureEvent(evt1|…|evtn) replace(URL) captureEvent(evt1|…|evtn)
releaseEvent(evt1|…|evtn) releaseEvent(evt1|…|evtn)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 105 / 117 Jean-Marc PUJOS
Forms[i] ou nomforme Elements[i] ou nomelement
Submit()
reset() INPUT type text et password
blur()
focus()
select()
textarea
blur()
focus()
select()
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 106 / 117 Jean-Marc PUJOS
JAVACRIPT - Les tableaux d'objets du navigateur
anchors les tags <A> du document ayant un NAME, dans l' ordre
applets les tags <APPLET> dans l'ordre (du source)
embeds les tags <EMBED> dans l'ordre (du source)
forms les tags <FORM> dans l'ordre (du source)
document images les tags <IMG> dans l'ordre (du source)
(pas celles créées par image)
links les tags <AERA HREF=....>,<A HREF=....> et
les objets créés par link , dans l'ordre (du source)
Function arguments les arguments d'une fonction
Form elements les éléments (objets checkbox,radio et text dans l'ordre (du source)
select options les tags <OPTIONS> dans l'objet Select dans l'ordre
window frames les tags <FRAME> d'une fenêtre contenant un
FRAMESET dans l'ordre du source
navigator mimeTypes tous les MIME types supportés par le browser
de façon interne, via helpers ou par plugins
plugins les plugins installés sur le browser client, dans leur ordre
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 107 / 117 Jean-Marc PUJOS
JAVACRIPT - Fonctions et objets prédéfinis
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 108 / 117 Jean-Marc PUJOS
JAVACRIPT - Les fonctions (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 109 / 117 Jean-Marc PUJOS
JAVACRIPT - Les fonctions (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 110 / 117 Jean-Marc PUJOS
JAVACRIPT - Les fonctions (3)
Les fonctions prédéfinies:
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 111 / 117 Jean-Marc PUJOS
JAVACRIPT - Les objets de l’utilisateur (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 112 / 117 Jean-Marc PUJOS
JAVACRIPT - Les objets de l’utilisateur (2)
Création d’un objet par une fonction constructor function qui définit les noms et
propriétés:
exemple: function constructor:
fonction stagiaire (nom,prenom,age) {
this.nom=nom;
this.prenom=prenom;
this.age=age; this:objet courant
}
on créera une instance de l’objet par :
stagiaire1=new stagiaire (“dupond”,”charles”,24) où l’objet stagiaire1 a les
propriétés: stagiaire1.nom,stagiaire1.prenom et stagiaire1.age.
On peut créer d’autres instances par un autre new qui crééra un autre objet:
stagiaire2=new stagiaire (“martin”,”louis”,19)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 113 / 117 Jean-Marc PUJOS
JAVACRIPT - Les objets de l’utilisateur (3)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 114 / 117 Jean-Marc PUJOS
JAVACRIPT – Compléments (1)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 115 / 117 Jean-Marc PUJOS
JAVACRIPT - Compléments (2)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 116 / 117 Jean-Marc PUJOS
JAVACRIPT - Compléments (3)
© CNAM - Interaction Homme-Machine Les technologies du Web Diapositive 117 / 117 Jean-Marc PUJOS