Panorama des technologies d`Internet et du Web

publicité
MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Panorama des technologies d’Internet et du Web Module 2 : Les technologies fondatrices du Web Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 1 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Internet a été conçu comme une infrastructure de communication très généraliste qui permet de faire abstraction de la réalité physique des connections et qui expose comme modèle de communication un canal bidirectionnel fiable, pouvant être utilisé pour bâtir des applications de plus haut niveau. Parmi ces applications, le Web tient une place tout à fait particulière et cette vidéo y sera consacrée. Mais avant de s’y plonger, il nous faut faire un détour par une autre technologie, le DNS ou Domain Name System. Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 2 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Nous l’avons vu, sur Internet, les ordinateurs sont identifiés par leur adresse IP. Pour autant, lorsque nous utilisons Internet, que ce soit par exemple à travers le Web ou le courrier électronique, nous n’utilisons pas ces adresses IP mais des adresses de la forme www.google.com ou [email protected]. www.google.com ou paris.fr sont ce qu’on appelle des noms de domaine et sont gérés par le Système de Noms de Domaine, en anglais Domain Name System, DNS. Le rôle des machines qui constituent ce système est de rendre Internet plus simple, en permettant d’utiliser des adresses plus facilement mémorisables que 74.125.195.104 ou [email protected]. Lorsque ce système est employé, les navigateurs Web ou les logiciels de messagerie vont automatiquement traduire ces noms de domaine en adresses IP. Plus précisément, ces traductions vont être effectuées par des serveurs de noms de domaine auquel navigateurs Web ou les logiciels de messagerie font appel. Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 3 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Les choses se passent de la manière suivante : Lorsque qu’un utilisateur tape www.google.fr dans la barre d’adresse de son navigateur, celui-­‐ci va ouvrir une connexion TCP avec un serveur DNS dont il connaît l’adresse IP (c’est configurable au niveau du système d’exploitation, que ce soit Windows, Mac, Linux ou autre) Il va alors demander à ce serveur DNS l’adresse IP correspondant au nom de domaine de la page demandée par l’utilisateur. Il se peut que le serveur DNS ne connaisse pas cette adresse IP et ait à faire appel à d’autres serveurs DNS pour pouvoir répondre. Mais ce mécanisme dépasse le cadre de ce cours. Le serveur DNS va donc renvoyer à l’ordinateur de l’utilisateur l’adresse IP demandée. Grâce à cette information, ce dernier va alors pouvoir ouvrir une seconde connexion TCP, cette fois ci avec l’ordinateur correspondant au nom de domaine de la page demandée par l’utilisateur (on appelle cet ordinateur un serveur Web) afin de lui demander la page en question qui lui sera alors renvoyée. Grâce à ce mécanisme, nous pouvons consulter des pages web ou envoyer des emails sans avoir à mémoriser les adresses IP correspondantes. Il y a un aspect intéressant à noter dans cet exemple. A chacune des deux étapes, l’ordinateur de l’utilisateur se trouve dans une position où il à besoin d’une information qu’il va récupérer auprès d’un autre ordinateur, à chaque fois appelé serveur. La première fois, il demande une adresse IP au serveur DNS, la seconde une page web au serveur Web. Ce type d’interaction correspond à ce que l’on appelle le modèle client-­‐serveur et est très fréquent non seulement sur Internet, mais dans l’informatique en général. Ici, c’est l’ordinateur de l’utilisateur qui est client. Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 4 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Dans le schéma général, le client demande des informations au serveur par le biais de requêtes auxquelles le serveur donne des réponses. Il y une ambiguïté sur les termes client et serveur dont il faut être conscient et qu’il faut garder dans un coin de sa tête. Ce ne sont pas tant des ordinateurs qui communiquent que des programmes exécutés sur ces ordinateurs. Les mots client et serveur peuvent donc désigner tant ces programmes que les ordinateurs qui les exécutent. La plupart du temps, cette ambiguïté n’est pas problématique mais il arrive qu’elle puisse être troublante, par exemple lorsque que le programme client et le programme serveur sont exécutés sur le même ordinateur, ce qui peut arriver notamment dans les périodes de développement. Maintenant que nous avons vu le système DNS et le modèle client-­‐serveur, nous pouvons à présent nous tourner vers l’objet principal de cette vidéo, le Web. Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 5 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Le Web a été conçu au départ, au début des années 90, comme un réseau de documents, et ce web initial a rétrospectivement été baptisé Web 1.0, par opposition à ses évolutions ultérieures nommée Web 2.0, voire Web3.0 qui rendent cette définition un peu restrictive. Mais focalisons-­‐nous pour le moment sur cette conception initiale, ce Web 1.0. Une définition un peu plus précise de ce web documentaire serait de dire que le web est un système hypertexte, c’est-­‐à-­‐dire un ensemble de documents reliés entre eux par des hyperliens, appelés également liens hypertextes ou, plus simplement, liens. Ces liens, unidirectionnels, partent d’un élément du document source (comme un mot, un groupe de mots ou une image) et pointent vers un document cible ou un point particulier d’un document cible. Le document cible peut être le même que le document source. On parle alors de lien interne au document. Ces liens permettent à l’utilisateur du système de naviguer de document en document. Pour rendre cela possible, le Web repose sur trois technologies essentielles: Les URL, qui permettent de nommer et localiser les documents Le protocole HTTP, qui permet à un navigateur de demander à un serveur Web de lui fournir le document, la page web, correspondant à une URL donnée Et enfin le langage HTML qui permet de décrire ces documents et donc de les faire transiter sur Internet. Afin de comprendre comment fonctionne le web, nous allons à présent passer ces 3 technologies en revue. Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 6 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Prenons l’exemple d’un utilisateur qui consulte une page web. Cette page comporte un lien, il clique dessus. Pour que la nouvelle page s’affiche dans son navigateur, le tout premier prérequis est de savoir quelle est la page à la afficher et où elle se trouve. Cela se fait grâce à son adresse, c’est-­‐à-­‐dire son URL. Par exemple, http://fr.wikipedia.org/wiki/World_Wide_Web. Cette adresse, cette URL, se décompose en plusieurs éléments : * http:// constitue le protocole par lequel le document sera récupéré. Ici, http, le protocole du web, nous indique que c’est bel et bien une page web qui est désignée par le lien hypertexte. * fr.wikipedia.org est le nom de domaine du serveur Web ou se trouve la page. Il devra être traduit en adresse IP. * wiki est le chemin. Derrière cette notion de chemin se trouve l’idée que les pages web sont classées hiérarchiquement sur le serveur web, de la même manière que sur un disque dur, les fichiers sont rangés dans des dossiers. * Enfin, World_Wide_Web est le nom de la page. Aux premières heures du web, le chemin et le nom de la page correspondaient réellement à la localisation d’un fichier sur le disque dur du serveur web. Si cela peut encore être le cas aujourd’hui, c’est cependant assez rare. Les technologies à l’œuvre sur les serveurs web font que les pages envoyées ne sont des pas des fichiers préexistants, mais sont construites dynamiquement, à la volée. Le chemin et le nom de la page jouent donc plus des rôles de paramètres qui vont être utilisé par le serveur web pour construire la page. Il y a une autre manière de passer des paramètres, plus explicitement, dans une URL. Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 7 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Dans l’URL http://www.google.com/search?q=web, le ? indique que ce qui suit, ici q=web, est une chaine de paramètres. Ici, le paramètre q a pour valeur web. Ce paramètre indique au serveur de Google que l’utilisateur à souhaité faire une recherche sur le mot « web ». D’autres éléments peuvent venir compléter une URL, mais cela dépasse le cadre de ce cours. Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 8 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Reprenons notre exemple où un utilisateur clique sur un lien dont l’URL est http://fr.wikipedia.org/wiki/World_Wide_Web. Grâce au nom de domaine indiqué dans cette URL, le navigateur sait quel serveur Web contacter pour obtenir cette page. Le protocole HTTP, pour Hypertext Transfer Protocol, va régir la manière dont le navigateur et le serveur web vont interagir à travers une connexion TCP. Ce protocole permet au client, au navigateur donc, d’empaqueter des commandes dans ses requêtes au serveur. Dans notre exemple, la commande sera « GET wiki/World_Wide_Web » pour « Donne-­‐moi la page dont le chemin et le nom sont wiki/World_Wide_Web ». LA commande GET n’est qu’une des nombreuses commandes offertes par le protocole HTTP. C’est l’une des plus fréquentes, avec la commande POST. Cette dernière permet d’envoyer au serveur des informations qui modifieront le contenu du site, par exemple des informations saisies par l’utilisateur dans un formulaire. La réponse du serveur indique en premier lieu s’il y a pu satisfaire la requête du client. Ce n’est pas toujours le cas et cette réponse peut donc être un message d’erreur. Par exemple, l’erreur la plus courante, qui porte le numéro 404, indique que le serveur ne connaît pas la page demandée. Mais si la requête a pu être satisfaite, la réponse du serveur comprend la page en question. Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 9 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Le langage HTML, pour HyperText Markup Language, est le langage qui permet de représenter les pages Web. C’est le formalisme dans lequel les pages web transitent du serveur au navigateur. Historiquement, c’est le langage dans lequel les gens écrivaient les pages qu’ils souhaitaient publier sur le Web. Mais, désormais, l’immense majorité des pages à présent sur web sont générées automatiquement par les serveurs à la réception des requêtes. N’en reste pas moins que ce qui est généré par ces serveurs est du HTML. Ce langage permet de décrire les différents éléments d’une page web, comme les zones de textes, les images ou les formulaires et la manière dont ils s’agencent. Le navigateur qui reçoit une page d’un serveur doit interpréter ce langage pour la présenter à l’écran. HTML est un langage à balises. Cela signifie qu’une page en HTML est un texte ponctué de mots spéciaux, les balises, délimité par des chevrons. Ces balises fonctionnent par paires, comme des parenthèses. Les deux balises d’une même paire portent le même nom. La première est la balise ouvrante, la seconde, qui comporte de plus une barre oblique entre le chevron de gauche et le nom, est la balise fermante. Le langage HTML définit un ensemble de telles balises, contraint la manière dont elles peuvent, ou non, s’imbriquer les unes dans les autres et précise la signification de chacune d’entre elles. Autrement dit, il décrit comme les navigateurs doivent interpréter ces textes. Prises ensemble, les trois technologies que nous venons de voir, les URL, le protocole HTTP et le langage HTML fondent le Web. La première permet de localiser les pages web, la seconde établit la manière de les faire transiter sur Internet et la dernière définit la structure et le contenu des documents qui transitent effectivement sur Internet. Toutefois, le Web d’aujourd’hui dépasse la vision que nous venons d‘en dresser en ne nous focalisant que sur ces trois technologies. Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 10 MOOC Architecture de l’information https://www.france-­‐universite-­‐numerique-­‐mooc.fr/courses/ENSDeLyon/14002/session01/about Crédits Jean-­‐Philippe Magué, ENS de LyonAffiliation, 5 mai 2015 CC-­‐BY-­‐SA (https://creativecommons.org/licenses/by-­‐sa/3.0/fr) 11 
Téléchargement