1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
5 <html xmlns="http://www.w3.org/1999/xhtml" >
7 <title>Web et HTML</title>
9 <meta http-equiv="Content-Type"
10 content="text/html; charset=utf-8" />
11 <meta name="copyright"
12 content="Copyright © 2013 Kim Nguyễn" />
15 <script src="../jquery-1.9.1.min.js" type="text/javascript" ></script>
16 <!-- Load the library -->
17 <script src="../simpleWebSlides.js" type="text/javascript" ></script>
19 <link rel="stylesheet" href="../simpleWebSlides.css" type="text/css" media="all" />
20 <!-- Load a custom Theme, the class-element marks this style-sheet
21 a "theme" that can be swtiched dynamicaly -->
22 <link class="sws-theme" rel="stylesheet" title="U-Psud style" href="../themes/uPsud.css" type="text/css" />
24 <!-- Customize some templates and initialize -->
26 <script type="text/javascript">
27 SWS.Config['sws-slide-change'] = SWS.Effects.slideChangeFadeOutIn;
28 SWS.Config['sws-object-deactivate'] = SWS.Effects.objectDeactivateFadeOut;
29 SWS.Config['sws-object-activate'] = SWS.Effects.objectActivateFadeIn;
31 //Ensures that we load SWS at the very end, after MathJax has
34 $(window).load(SWS.Presentation.init);
38 <a class="sws-previous" href="prog_internet_03.xhtml" />
39 <div class="sws-slide sws-cover sws-option-nofooter">
40 <h1>Programmation Internet</h1>
42 <a href="mailto:kn@lri.fr">kn@lri.fr</a><br/>
43 <a href="http://www.lri.fr/~kn/">http://www.lri.fr/~kn</a>
46 <div class="sws-slide" >
49 <li> Systèmes d'exploitation ✔</li>
50 <li> Réseaux et Internet ✔ </li>
53 <li class="hl">3.1 Internet et ses services</li>
54 <li>3.2 Fonctionnement du Web</li>
55 <li>3.3 Adressage des documents Web</li>
56 <li>3.4 Le protocole HTTP</li>
57 <li>3.5 HTML, le format des documents</li>
62 <h1>Internet et ses services </h1>
63 <div class="sws-slide">
64 <h1> Bref historique d'Internet (1/2)</h1>
67 <td style="width:6.5em;">1959-1968</td> <td>ARPA
68 (<i>Advanced Research Project Agency</i>) crée un réseau
69 de quelques machines capable de résister à une attaque.</td>
72 <td>1969</td> <td>ARPANET. Interconnexion des ordinateurs
73 centraux des grandes universités et institutions
74 américaines. Première utilisation du concept de paquet d'information.</td>
78 <td>Interconnexion avec la Norvège et le Royaume-Uni.
83 <td> Passage au protocole TCP/IP. Naissance de l'Internet actuel.</td>
87 <div class="sws-slide">
88 <h1> Bref historique d'Internet (2/2)</h1>
91 <td style="width:6.7em;">1986</td> <td>« Autoroutes de
92 l'information ». Des super-ordinateurs et les premières
93 connexions à fibres optiques sont utilisées pour accélérer
94 le débit d'Internet.</td>
97 <td>1987-1992</td> <td>Apparition des premiers fournisseurs
98 d'accès. Les entreprises se connectent.</td>
102 <td>Avènement du Web. Démocratisation du haut-débit (vers
103 2000 pour la France).
107 <td>2000-présent</td>
108 <td> Explosion des services en ligne, arrivée des réseaux
109 sociaux, internet mobile, <i>Cloud</i> (stockage et calcul
110 mutualisés accessible depuis internet).</td>
115 <div class="sws-slide">
118 <li> Ensemble de logiciels et protocoles basés sur <em>TCP/IP</em>
120 <li> Modèle Client/Serveur</li>
121 <li> Un serveur fournit un service:
124 <li>transfert de fichier (ftp)</li>
125 <li>connexion à distance (ssh)</li>
129 <li> Plusieurs services peuvent être actifs sur la même
130 machine (serveur). Un <em>port (identifiant numérique)</em>
131 est associé à chaque service. Sur Internet, un service est
134 <li>L'adresse IP de la machine sur lequel il fonctionne</li>
135 <li>Le numéro de port sur lequel le programme attend les
141 <div class="sws-slide">
142 <h1> Exemples de services </h1>
143 <table class="simple" style="width:100%">
144 <tr><th style="width:10%">Service</th>
145 <th style="width:40%">Protocole</th>
146 <th style="width:5%">Port</th>
147 <th style="width:45%;">Description</th>
150 <td>ftp</td> <td >File Transfer Protocol</td> <td>
151 20,21 </td> <td>Transfert de fichiers</td> </tr>
152 <tr> <td>telnet</td> <td>Network Virtual
153 Terminal</td> <td>23</td> <td>Shell à distance</td></tr>
154 <tr> <td>ssh</td> <td>Secure Shell</td> <td>22</td><td>Shell à
155 distance crypté</td></tr>
156 <tr> <td>mail</td><td>Simple Mail Transfer
157 Protocol</td> <td>25</td> <td>Envoi de mail</td></tr>
158 <tr><td>pop</td> <td>Post Office
159 Protocol</td> <td>110</td><td>Récupération de mail</td></tr>
160 <tr><td>imap</td> <td>Internet Message Access
161 Protocol</td> <td>143</td><td>Synchronisation de mails</td></tr>
162 <tr><td>nslookup</td> <td>Domain Name
163 System</td> <td>42</td> <td>Serveur de noms</td></tr>
164 <tr ><td><em>http</em></td> <td>Hyper Text Transfer Protocole</td><td>80</td><td>Web</td></tr>
168 <div class="sws-slide">
169 <h1> World Wide Web (1/2)</h1>
171 <li>Service de distribution de page <em>hypertexte</em></li>
172 <li>Une page <em>hypertexte</em> contient des références
173 immédiatement accessibles à d'autres pages (pointeurs
174 ou <em>liens hypertextes</em>)</li>
175 <li>Les pages sont décrites dans le
176 langage <em>HTML</em> (HyperText Markup Language) </li>
177 <li>Architecture client/serveur:
179 <li>Les pages sont stockées sur le serveur</li>
180 <li>Les pages sont envoyées au client (navigateur Web) qui
181 en assure le rendu</li>
184 <li>Utilise le protocole <em>HTTP</em> pour les échanges entre
185 le client et le serveur</li>
189 <div class="sws-slide">
190 <h1> World Wide Web (2/2)</h1>
193 <tr><td>URL</td> <td>localisation d'une page Web (« adresse de
194 la page »)</td> </tr>
195 <tr><td>HTTP</td> <td>protocole de communication entre un
196 client et un serveur Web</td> </tr>
197 <tr><td>HTML</td> <td>langage de description des pages
200 <p>Évolutions récentes (Web 2.0, internet mobile, <i>Cloud</i>, …)</p>
202 <li>Standardisation du contenu multimédia (images, vidéos et
203 sons en <i>streaming</i>)</li>
204 <li>Contenu interactif avancé (stockage de fichier coté
205 client, rendu 3D, …)</li>
206 <li>Uniformisation de nombreuses extensions <i>ad-hoc</i>: HTML5</li>
211 <div class="sws-slide" >
214 <li class="done" > Systèmes d'exploitation</li>
215 <li class="done" > Réseaux et Internet </li>
218 <li class="done">3.1 Internet et ses services</li>
219 <li class="hl" >3.2 Fonctionnement du Web</li>
220 <li class="">3.3 Adressage des documents Web </li>
221 <li>3.4 Le protocole HTTP</li>
222 <li>3.5 HTML, le format des documents</li>
227 <h1> Fonctionnement du Web </h1>
228 <div class="sws-slide">
229 <h1>Fonctionnement du Web</h1>
230 <div style="text-align:center;">
231 <img style="width:90%;height:50%;" src="cours_4.svg"
232 type="image/svg+xml" />
237 <div class="sws-slide">
239 <p>Le navigateur :</p>
241 <li>Analyse l'URL demandée</li>
242 <li>Obtient l'adresse IP auprès du serveur DNS</li>
243 <li>Établit une connexion (potentiellement sécurisée) avec le serveur</li>
244 <li>Envoie une <em>requête HTTP</em> au serveur</li>
245 <li>Récupère la page envoyée par le serveur dans
246 sa <em>réponse</em></li>
247 <li>Analyse la page et récupère les éléments référencés :
249 <li>Effectue le traitement du code client</li>
250 <li>Met en forme le contenu et l'affiche dans la fenêtre</li>
254 <div class="sws-slide">
255 <h1>Côté serveur</h1>
257 <li>Un <i>listener</i> (<i>thread</i> particulier) attend les
258 connexions sur un port par défaut (80 dans le cas de HTTP)</li>
259 <li>À chaque nouvelle connexion, le <i>listener</i> crée
260 un <i>thread</i> de traitement et se remet en attente
262 <li>Le <i>thread</i> de traitement vérifie la validité de la
265 <li>le document demandé existe ?
267 <li>le client est autorisé à accéder au document ?
272 <li>Le <i>thread</i> de traitement répond à la requête :
274 <li>Exécution de code côté serveur, récupération de
275 données dans une BD, …
277 <li>Envoi de la page au client
284 <div class="sws-slide" >
287 <li class="done" > Systèmes d'exploitation</li>
288 <li class="done" > Réseaux et Internet </li>
291 <li class="done">3.1 Internet et ses services</li>
292 <li class="done" >3.2 Fonctionnement du Web</li>
293 <li class="hl">3.3 Adressage des documents Web </li>
294 <li>3.4 Le protocole HTTP</li>
295 <li>3.5 HTML, le format des documents</li>
300 <h1> Adressage des documents Web </h1>
301 <div class="sws-slide">
302 <h1>Adressage des documents Web (1/3)</h1>
304 <tr><td>URL</td><td> <i>Uniform Resource Locator</i>
305 identifie un document sur internet</td></tr>
307 <p>Une URL se décompose en 3 partie</p>
308 <ul><li><em>protocole</em> (comment ?)</li>
309 <li><span style="color:orange;">adresse</span> (où ?)</li>
310 <li><span style="color:blue;">document</span> (quoi ?)</li>
312 <p>Syntaxe (simplifiée) :</p>
313 <code> <em>protocole</em>://<span style="color:orange">adresse</span>/<span style="color:blue;">document</span></code>
315 <code> <em>http</em>://<span style="color:orange">www.lri.fr</span>/<span style="color:blue;">~kn/teach_fr.html</span></code>
318 <div class="sws-slide">
319 <h1>Adressage des documents Web (2/3)</h1>
320 <p>On peut aussi préciser <span style="color:purple;">un numéro
321 de port</span>, des <span style="color:black;">paramètres</span>
322 et un <span style="color:red;">emplacement</span> :
324 <code> <em>protocole</em>://<span style="color:orange">adresse</span>:<span style="color:purple">port</span>/<span style="color:blue;">document</span>?<span style="color:black;">p1=v1</span>&<span style="color:black;">p2=v2</span>#<span style="color:red">empl</span></code>
325 <p class="sws-pause" >Exemple :</p>
326 <code> <a style="color:gray" href="http://www.youtube.com:80/results?search_query=tbbt#search-results"><em>http</em>://<span style="color:orange">www.youtube.com</span>:<span style="color:purple">80</span>/<span style="color:blue;">results</span>?<span style="color:black;">search_query=tbbt</span>#<span style="color:red">search-results</span></a></code>
327 <p>Le serveur utilise les paramètres passés par le client dans
328 l'URL pour <i>calculer</i> le contenu de la page (changer la
329 chaîne « <code>tbbt</code> » ci-dessus et essayer)</p>
331 <div class="sws-slide">
332 <h1>Adressage des documents Web (3/3)</h1>
334 La <em>racine</em> d'un site Web
335 (ex: <em><code>http://www.lri.fr/</code></em>) correspond
336 à un répertoire sur le disque du serveur
337 (ex: <em><code>/var/www</code></em>). Le fichier</p>
338 <code> http://www.lri.fr/index.html</code>
339 <p>se trouve à l'emplacement</p>
340 <code> /var/www/index.html</code>
341 <p>Le serveur Web peut aussi effectuer des <em>réécritures
342 d'adresses</em> :</p>
343 <code> http://www.lri.fr/~kn/index.html</code>
345 <code> /home/kn/public_html/index.html</code>
348 <h1>Le protocole HTTP</h1>
349 <div class="sws-slide" >
352 <li class="done" > Systèmes d'exploitation</li>
353 <li class="done" > Réseaux et Internet </li>
356 <li class="done">3.1 Internet et ses services</li>
357 <li class="done" >3.2 Fonctionnement du Web</li>
358 <li class="done">3.3 Adressage des documents Web </li>
359 <li class="hl">3.4 Le protocole HTTP</li>
360 <li>3.5 HTML, le format des documents</li>
366 <div class="sws-slide">
367 <h1>Caractéristiques du protocole HTTP</h1>
369 <li>Sans connexion permanente:
371 <li>Le client se connecte au serveur, envoie sa requête,
373 <li>Le serveur se connecte au client, envoie sa réponse,
377 <li>Indépendant du contenu : permet d'envoyer des documents
378 (hyper) texte, du son, des images, …</li>
379 <li>Sans <em>état</em>: chaque paire requête/réponse est
380 indépendante (le serveur ne maintient pas d'information sur le
381 client entre les requêtes)</li>
382 <li>Protocole en mode <em>texte</em></li>
385 <div class="sws-slide">
386 <h1>Format des messages HTTP</h1>
387 <p>Les messages ont la forme suivante</p>
388 <ul><li>Ligne initiale CR LF</li>
389 <li>zéro ou plusieurs lignes d'option CR LF</li>
391 <li>Corp du message (document envoyé, paramètres de la
394 <ul><li><em>Requête</em> la première ligne contient un nom
395 de <em>méthode</em> (GET, POST, HEAD, …), le paramètre de la
396 méthode et la version du protocole</li>
397 <li><em>Réponse</em> la version du protocole, le code de la
398 réponse (200, 404, 403, …) et un message informatif
402 <div class="sws-slide">
405 <h1>HTML, le format des documents</h1>
406 <div class="sws-slide" >
409 <li class="done" > Systèmes d'exploitation</li>
410 <li class="done" > Réseaux et Internet </li>
413 <li class="done">3.1 Internet et ses services</li>
414 <li class="done" >3.2 Fonctionnement du Web</li>
415 <li class="done">3.3 Adressage des documents Web </li>
416 <li class="done">3.4 Le protocole HTTP</li>
417 <li class="hl">3.5 HTML, le format des documents</li>
422 <div class="sws-slide">
425 <em>HyperText Markup Language</em> : langage de mise en forme
426 de documents hypertextes (texte + liens vers d'autres
427 documents). Développé au CERN en 1989.<br/>
428 <em>1991</em> : premier navigateur en mode texte<br/>
429 <em>1993</em> : premier navigateur graphique (mosaic)
430 développé au NCSA (National Center for Supercomputing
434 <div class="sws-slide">
435 <h1>Document HTML</h1>
436 <ul><li> est un document <em>semi-structuré</em></li>
437 <li> dont la structure est donnée par
438 des <em>balises</em></li>
441 <table class="btable simple" style="width:90%;margin-left:5%">
443 <tr><th style="width:65%;">Exemple</th> <th>Rendu par défaut</th></tr>
445 <tr><td ><tt><![CDATA[Un texte <b>en gras</b> ]]></tt></td><td>Un
446 texte <b>en gras</b></td></tr>
447 <tr><td ><code><![CDATA[<a href="http://www.u-psud.fr">Un lien</a> ]]></code></td>
448 <td><a style="color:blue;text-decoration:underline;"
449 href="http://www.u-psud.fr">Un lien</a></td></tr>
450 <tr><td><code><![CDATA[<ul>
451 <li>Premièrement</li>
452 <li>Deuxièmement</li>
453 </ul> ]]></code></td> <td><ul>
454 <li>Premièrement</li>
455 <li>Deuxièmement</li>
460 <p>On dit que <em><tt><![CDATA[<toto>]]></tt></em> est une balise <em>
461 ouvrante</em> et <em><tt><![CDATA[</toto>]]></tt></em> une
462 balise <em>fermante</em>. On peut
463 écrire <em><tt><![CDATA[<toto/>]]></tt></em> comme raccourci pour
464 <tt><![CDATA[<toto></toto>]]></tt>.
467 <div class="sws-slide">
468 <h1>Historique du langage HTML</h1>
470 <tr><td style="width:3em;">1973</td> <td>GML, Generalised Markup Language développé chez
471 IBM. Introduction de la notion de balise.</td></tr>
472 <tr><td>1980</td><td> SGML, Standardised GML, adopté par l'ISO</td></tr>
473 <tr><td>1989</td><td> HTML, basé sur SGML. Plusieurs entreprises (microsoft,
474 netscape, ... ) interprètent le standard de manière
476 <tr><td>1996</td> <td>XML, eXtensible Markup Language norme pour les
477 documents semi-structurés (SGML simplifié)</td></tr>
478 <tr><td>2000</td><td> XHTML, version de HTML suivant les conventions
480 <tr><td>2008</td><td> Première proposition pour le nouveau standard,
482 <tr><td>2014</td><td>Standardisation de HTML5</td></tr>
486 <div class="sws-slide">
487 <h1>XHTML <i>vs</i> HTML</h1>
488 <p>On utilise XHTML dans le cours. Différences avec HTML:</p>
491 Les balises sont <em>bien parenthésées</em>
492 (<tt><![CDATA[<a> <c> </c> ]]> <span style="color:red"></b></span></tt> est interdit)
494 <li>Les balises sont en minuscules</li>
496 <p>Les avantages sont les suivants</p>
497 <ul><li>HTML autorise les mélanges majuscule/minuscule, de ne
498 pas fermer certaines balise … Les navigateurs corrigent ces
499 erreurs de manières <em>différentes</em></li>
500 <li>Le document est <em>structuré</em> comme un programme
501 informatique (les balises ouvrantes/fermantes correspondent à
502 { et }). Plus simple à débugger.</li>
505 <div class="sws-slide">
506 <h1>Rôle d'(X)HTML</h1>
507 <p>Séparer la <em>structure</em> du document de
508 son <em>rendu</em>. La structure donne une <em>sémantique</em> au
511 <li>ceci est un titre</li>
512 <li>ceci est un paragraphe</li>
513 <li>ceci est un ensemble de caractères importants</li>
515 <p>Cela permet au navigateur d'assurer un rendu en fonction de la
516 sémantique. Il existe différents types de rendus:</p>
518 <li>graphique interactif (Chrome, Firefox, Internet Explorer,
520 <li>texte interactif (Lynx, navigateur en mode texte)</li>
521 <li>graphique statique (par ex: sur livre électronique)</li>
522 <li>rendu sur papier</li>
523 <li>graphique pour petit écran (terminal mobile)</li>
526 <div class="sws-slide">
527 <h1>Exemple de document</h1>
528 <p style="text-align:center;font-size:smaller;">(liste des balises
529 données sur la feuille de TD 4!)</p>
530 <div style="margin-left:10%;">
531 <code style="font-size:smaller;"><![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
532 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
533 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
535 <title>Un titre</title>
536 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
539 <h1>Titre de section</h1>
540 <p> premier paragraphe de texte. On met
541 un <a href="http://www.lri.fr">lien</a> ici.
543 <!-- on peut aussi mettre des commentaires -->