Médiathèmes no10
2008
Une collection publiée par l'Association des bibliothécaires de France |
Des protocoles et des formats
par Dominique Lahary
Le Web 2.0 ne naît pas de rien. Il est le produit d'une histoire, certes brève (une quarantaine d'années), mais intense. Elle est faite du mutations sociales et culturelles, mais aussi de protocoles. C'est une histoire de protocoles et de formats. Racontons-là.
Au commencement n'était pas le web, mais Internet.
C'est en 1969 que de Département de la Défense des États-Unis mit en œuvre le réseau Arpanet qui permettait à des ordinateurs distants d'être tous reliés entre eux de telle façon qu'une attaque sur une partie du réseau ne l'empêche pas de fonctionner.
Ce réseau fut ensuite utilisé par les universités américaines, les grandes administrations, les musées et les bibliothèques, puis finit par s'étendre à l'échelle internationale sous le nom d'Internet.
Les échanges au sein d'Internet fonctionnent selon le système de la commutation par paquets : un message émis par un ordinateur est découpé en paquets portant l'adresse de l'expéditeur et celle du destinataire, ainsi que les informations nécessaire pour la mise en ordre des paquets à l'arrivée. Chaque paquet chemine indépendamment en employant des voies disponibles entre des ordinateurs relais appelés routeurs. A l'arrivée, le message est reconstitué par la remise en ordre des paquets.
Un tel système ne fonctionne que si les ordinateurs connectés au réseau disposent chacun d'une adresse les désignant de façon non ambiguë : c'est l'adresse IP (Internet protocol), composée d'une suite de nombres séparés par des points. La version actuellement la plus utilisée est la quatrième, dite Ipv4, qui comprend quatre nombres compris entre 0 et 255. Comme elle arrive à saturation, comme un système d'immatriculation d'automobiles ou de numérotation téléphonique, elle est en train d'être supplantée par la version 6 dite Ipv6 longue de 16 octets au lieu de 4 et qui permet de formuler... 667 millions de milliards d'adresses par millimètre carré de surface terrestre !
Le dialogue de machine à machine est défini par un ensemble de règles appelé protocole. En réalité, il n'y a pas un protocole mais tout une pile qu'on peut ainsi schématiser :
5 Application FTP, Telnet, courrier (SMTP, POP), HTTP, streaming (RTSP...), pear to pear (BigTorrent, GNUtella...) 4 Transport TCP 3 Réseau IP 2 Liaison Ethernet, Token Ring... 1 Physique RTC, ADSL... Sur Internet :
- Les couches 1 et 2 représentent la liaison matérielle, par exemple le RTC (réseau téléphonique commuté) ou l'ADSL (Asynchronous Digital Subscriber Line) et le type de réseau (comme Ethernet ou Token Ring)..
- La couche 3 est occupée par IP (Internet Protocol), qui gère la recherche du meilleur chemin pour envoyer les données à destination.
- La couche 4 est occupée par TCP (Transmission Control Protocol) qui gère la connexion entre les ordinateurs. On désigne généralement ensemble ces deux protocoles sous la dénomination CP/IP, qui constitue le protocole de base d'Internet.
- La couche 5 dépend du type d'usage d'Internet. Jusqu'à la fin des années 1980, il s'est agi essentiellement de :
- FTP (File Transfer Protocol) pour l'envoi d'un fichier vers un autre ordinateur,
- Telnet (TErminal NETwork) pour agir à distance sur un autre ordinateur,
- SMTP (Simple Mail Transfer Protocole) pour envoyer un message et POP (Post Office Protocole) pour rapatrier des messages sur un ordinateur distant.
Jusqu'au début des années 1990, travailler sur Internet nécessitait de manipuler un certain nombre de codes qu'on inscrivait sur des écrans en deux couleurs (par exemple noir et blanc). Ceux qui ont connu le Minitel auront une idée de l'esthétique de ce premier Internet, mais non de son langage, compris des seuls initiés.
L'informatique avait fait entre temps connu une double mue grâce à deux innovations essentielles :
- Les interfaces graphiques renvoyèrent à la Préhistoire de l'informatique les interfaces en mode caractère jusque là prédominantes et qui reposaient sur une ligne de commande où l'homme devait taper en langage codé. Désormais l'écran affichait des pixels, c'est-à-dire de l'image, et l'utilisateur agissait par un dispositif de pointage (la souris, le tapis, la boule...) dans un environnement reposant sur la notion de fenêtre. C'est la firme Apple qui avec MacIntosh imposa l'interface graphique avant que Microsoft ne rejoigne progressivement ce mouvement avec les versions successives de Windows
li> L'architecture client-serveur repose sur le dialogue entre ordinateurs : les clients, qui envoient des requêtes, les reçoivent et les traitent, et les serveurs, qui attendent les requêtes et y répondent. Mais cette description physique il faut ajouter une description logique : on distingue des logiciels clients et des logiciels serveur. Le dialogue entre clients et serveurs ne peut exister que si le client et le serveur utilisent le même ensemble de protocoles.
C'est en 1989 et 1990 que se produisit à Genève, au Cern (Centre européen de recherche nucélaire), un événement qui allait bouleverser le monde : l'invention du World Wide Web (aujourd'hui désigné sous la forme abrégée de " web ") par l'Anglais Tim Berners Lee et le Français Robert Cailliau. On devrait leur élever des statues, au moins virtuelles !
Leur idée fut simple : créer des pages lisibles sur un écran graphique et reliables entre elles par des liens hypertextes. On naviguerait ainsi d'une page à l'autre, celles-ci pouvant se trouver à de grandes distances. D'abord conçu par Tim Berners-Lee pour le réseau interne du Cern, ce système fut appliqué à cet Internet déjà vieux de 20 ans mais qui allait alors connaître une destinée aussi imprévisible qu'extraordinaire.
Quatre pré-requis étaient nécessaires pour mettre en œuvre cette géniale invention : l'architecture client-serveur, un protocole, un système d'adresses et un langage.
- L'architecture client-serveur permet de distinguer :
- les navigateurs, logiciels clients dont le métier est d'envoyer une requête afin de rapatrier une page ou de faire une recherche sur une base de données. Le premier navigateur s'appelait tout simplement WorldWideWeb. Mosaic puis Nestcape, navigateurs en mode graphique, se répandirent avant qu'on assiste une suprématie d'Internet explorer, de la firme Microsoft, bientôt battue en brèche par le logiciel libre Firefox.
- Les logiciels serveur du web sont tout simplement appelés... serveurs web. Le plus répandu dans le monde est le logiciel libre Apache. Leur métier est de recevoir les requêtes des navigateurs et d'y répondre en puissant dans des données avec lesquelles ils sont interfacés.
- Le protocole, c'est HTTP (HyperText Transfer Protocole). Il est extrêmement simple car il prévoit pour l'essentiel une ou plusieurs requêtes du client et la ou les réponses du serveur. Il prévoit huit types de requêtes, appelées méthodes, dont les principales sont GET (demander une ressource à un serveur web) et POST (envoyer des informations à un serveur web). Nous y reviendrons.
- Le système d'adresses, c'est :
- une syntaxe régissant le libellé des URL (United Resource Locator) : protocole, nom de domaine, éventuellement chemin d'accès dans l'arborescence des répertoires et nom de fichier ou libellé d'une requête ;
URL d'une page d'accueil
URL d'une page désignée par son nom de fichier (ancien site de l'ABF)- une gestion des correspondances entre l'adresse " en clair " (de type www.abf.asso.fr) et l'adresse IP, grâce aux serveurs DNS (Domain Name Serveur).
- Le langage, c'est HTML (Hyper Text Mark-up Langage). Il ne vient pas du néant. Il s'agit d'une simplification de SGML (Standard Generalized Mark-up Langage), utilisé dans certains secteurs industriels à partir des années 1980 et reposant sur le principe des balises (en anglais mark-up). Une balise entrante et une balise fermante encadrent du texte ou une image.
Exemple : <p>Ceci est un paragraphe</p>
HTML permet de donner forme au texte et aux éléments graphiques figurant sur une page, mais son intérêt essentiel est de gérer des liens qui sont de deux sortes :
- Les liens hypertextes cliquables sur un élément appelé ancre.
Exemple : <a href="http://www.abf.asso.fr">ABF</a>, " href " signifiant hypertext reference. Ce codage rend l'expression " ABF " cliquable et permet de se connecter au site del'ABF.- Les liens non cliquables permettant l'apparition directe sur la page d'un élément présent sur un autre site.
Exemple : <img src="http://www.abf.asso.fr/logo-abf.jpg"> pour faire apparaître le logo de l'ABF.
Le dialogue entre le navigateur et le serveur webC'est l'invention du web qui a en quelques années répandu l'usage d'Internet dans le monde entier et auprès de toutes les catégories d'usagers : le monde scientifique et de l'éducation, les entreprises, les administrations, le grand public. C'est elle qui a permis que les services non web d'Internet se répandent parallèlement, à commencer par la messagerie. En même temps, le web est devenu une plate-forme pour ces services.
Le web est à l'origine, et est encore en grande partie, fait de pages statiques qu'on ne peut mettre à jour qu'en les remplaçant. On peut bien sûr les écrire en HTML " dans le texte ", mais une première génération de logiciels de création de sites web est apparue : les éditeurs HTML, qui permettaient d'écrire des pages presque aussi facilement qu'on écrit un courrier avec un traitement de texte. On les chargeait ensuite sur son site grâce au protocole FTP.
Mais le web a aussi bientôt servi à interroger des bases de données, par exemple des catalogues de bibliothèques. Au début des années 1990, on ne pouvait le faire que par le protocole Telnet qui permettait de simuler un terminal en mode graphique.
Puis on a inventé l'interfaçage web des bases de données :
- le navigateur envoie une requête ;
- l'interface web la reçoit, la traduit dans un langage compréhensible par la base de données et la lui envoie ;
- cet interface reçoit la réponse de la base de données et l'enveloppe dans une page web générée à la volée, que le serveur web envoie au navigateur ;
- l'usager prend connaissance de la réponse grâce à une page web qui a été générée pour lui.
Schéma d'interrogation d'une base de données par le webCe principe a permis de développer toutes sortes de services sur Internet : acheter des marchandises en ligne, recherche un horaire de chemin de fer, utiliser une plate-forme de e-administration, interroger un catalogue de bibliothèque et bien sûr un moteur de recherche.
On a vu que le protocole http permettait, grâce à sa méthode POST, d'envoyer des données vers un serveur. Les pages ou portions de pages comportant des champs de saisie sont appelés des formulaires, usage prévu par le langage HTML. Il arrive souvent que la requête génère un URL qui peut être sauvegardée dans ses favoris. On le reconnaît en ce qu'il comporte souvent un point d'interrogation :
URL d'une requête dans le moteur de recherche ExaleadLa messagerie fait partie des applications gérables à partir de formulaire. Quand on utilise un logiciel spécialisé de messagerie tel qu'Outlook ou Lotus Notes, on se sert d'un client qui émet selon le protocole SMTP et reçoit selon le protocole POP des données qui arrive sur so disque dur. Mais quand on fait de la messagerie sur le web, on utilise tout simplement la méthode POST du protocole HTTP.
Mais revenons aux sites web proprement dit. Le système des pages statiques posait un problème : si on voulait conserver un environnement constant pour des raisons d'image et de navigation ou le faire évoluer en fonction des besoins, il fallait corriger une à une chacune des pages ! Pour résoudre ce problème, on a d'abord eu recours au système des frames (cadres) qui permettait de gérer différentes portions d'un écran dans des fichiers différents. On pouvait ainsi gérer chacune d'elle séparément.
Le premier site de l'ABF comportait deux frames, celui de gauche comportant le menu.Mais ce système avait le grand désavantage de perturber le principe de l'hypertexte. Un lien vers un fichier ne permettait souvent d'afficher qu'une portion du site dont on perdait l'environnement global. Et quand on repérait une page intéressante sur le site, on ne pouvait pas, sans une manipulation connue des plus expert, la sauvegarder dans ses favoris ; on ne sauvegardait d'une page d'accueil.
Un nouveau mode de gestion de site est alors apparu : les CMS (Content Management Systems), qui battirent en brèche les éditeurs HTML. Le protocole FTP ne sert plus qu'à charger des images fixes ou animées ou des documents joints. Tout se passe en ligne, sur le web, grâce au système des formulaires et donc à la méthode POST du protocole HTTP. L'administrateur construit un squelette, et les gestionnaires du sites n'ont plus qu'à créer des rubriques, sous rubriques et article générant autant de pages.
Les sites ainsi gérés sont dits dynamiques. Quand on clique sur un élément d'un menu ou un mot clé, on génère une requête qui provoque l'envoi d'une page web créée à la volée. Une base de données, souvent gérées avec le SGBD (système de gestion de base de données) MySQL, contient les informations qui permettront de générer les pages.
Une partie de ses sites sont gérés grâce au langage PHP (Personnal Home Page). Quant aux logiciels de CMS, il en existe bien sûr un grand nombre, mais l'un des plus répandu en France est un logiciel libre : SPIP (Système de publication pour l'internet partagé).
Ecran de gestion sous Spip du site de l'Interassociation archives-bibliothèques-documentationOn reconnaît les URL d'un site géré avec un CMS ; hormis les pages d'accueil, car ils se terminent non par un nom de fichier mais par une requête, comportant souvent un point d'interrogation :
URL d'une page du site ABFUne bonne partie des sites gérés avec un CMS offrent deux possibilités :
- ils permettent d'accorder aux internautes le droit de poster des commentaires, toujours grâce aux formulaires et donc à la méthode POST du protocole HTTP ;
- ils émettent des flux RSS.
Les logiciels permettant de créer des blogs ou des wikis sont des CMS. Toujours avec la méthode POST d'HTTP !
Voilà où nous en sommes de cette histoire. Mais il fait signaler qu'entre temps se sont développé :
- le langage XML (eXtended Mark-up Language), plus simple que SGML mais plus complexe qu'HTML, et qui permet de décrire des données mais aussi des messages véhiculés par les protocoles ;
- toutes sortes de formats de son et d'images, fixées ou animées, sonorisées ou non ;
- des protocoles de diffusion en continu (en anglais streaming comme RTSP (Real Time Streaming Protocol) qui permettent de lire un flux audio ou vidéo et reposent sur TCP/IP mais n'ont rien à voir avec http ;
- des protocoles pour la communication directe entre ordinateur, appelée pair à pair (en anglais Peer to Peer) comme BigTorrent ou GNUtella.
C'est cette série de protocoles et de formats qui a rendu possible le Web 2.0. Vraiment, quelle histoire !
[Le passage suivant n'a pas été publié]
En voici, par ordre d'apparition dans ce récit, les ingrédients. Les reconnaîtrez-vous ?
Web
Internet
commutation par paquets
routeur
adresse IP
Ipv4
Ipv6
protocole
RT
ADSL
IP
TC
TCP/IP
FTP
Telnet
SMTPPOP
interfaces graphiques
mode caractère
client-serveur
clients
serveurs
World Wide Web
liens hypertextes
navigateurs
serveurs web
HTTP
GET
POST
URL
DNS
HTML
SGMLpages statiques
éditeurs HTML
à la volée
formulaires
CMS
sites dynamiques
PHP
SPIP
blogs
wikis
XML
streaming
RTSP
Peer to Peer
BigTorrent
GNUtella.