Vocabulaire "Web"
Je suis en train de réfléchir à ce que tu m'as dit jusque-là et il y a une chose que l'on a pas encore vue. À la page Vocabulaire "Hacker", tu m'as dit que les hackers sont à l'origine d'internet et du World Wide Web. Mais je n'ai pas encore bien compris la différence…
Effectivement, c'est parce que l'on a parlé que d'internet. Nous allons donc parler du World Wide Web qui est une application que je qualifie de “Système de Publication par Internet”. Le Web n'étant qu'une application de ce type parmi d'autres.
Pour bien se figurer la situation, il faut s'imaginer que jusque-là, les connexions ARPAnet et internet, ne servent qu'à s'envoyer des courriels. C'est très réducteur comme représentation, mais cela permet de se faire une idée. Il faut aussi se souvenir qu'à l'époque, il n'y a que les militaires, les scientifiques et quelques geeks qui utilisaient ces réseaux.
Alors que les messages de type courriels sevraient à envoyer des informations à une ou plusieurs personnes qui les reçoivent directement, un “Système de Publication par Internet” propose l'inverse. Il s'agit de mettre des documents à disposition sur un serveur pour que les gens intéressés puissent directement venir les chercher.
Faisons un peu d'histoire. Dans les années 1980, ARPAnet (militaire) est de plus en plus utilisé par les scientifiques. En 1983, l'internet (civil) fait ses premiers pas et prend très rapidement de l'ampleur. Ainsi, ARPAnet cèdera sa place et disparaitra officiellement en 1990 pour être définitivement remplacé par l'internet.
En 1989, Tim Berners-Lee qui travaille au CERN, près de Genève, propose de créer un système hypertexte distribué sur les réseaux informatiques pour que les scientifiques puissent partager les informations à travers le monde. Mais qu'est-ce que cela veut dire ? Ce terme barbare “hypertexte” n'est, en fait, pas si compliqué à comprendre. Aujourd'hui on parle de “liens”. Ce sont donc des “liens hypertextes”. Concrètement, il s'agit simplement d'un mot, ou d'un ensemble de mots, cliquable dans un texte et qui permet d'amener le lecteur directement sur la ressource pour la consulter. C'est une chose qui est impossible dans un livre physique, mais parfaitement réalisable avec l'informatique. Lorsque tu cliques sur un lien, tu fais simplement appel à une autre page. C'est cette idée-là qu'a eu Tim Berners-Lee. En 1990, Robert Cailliau qui est totalement convaincu par cette idée le rejoint sur ce projet.
Dans les grandes lignes, Tim Berners-Lee et Robert Cailliau vont créer essentiellement 4 choses :
- un serveur Web : CERN httpd (là ou seront stockées les pages) ;
- un navigateur Web : WorldWideWeb (le logiciel permettant d'afficher les pages) ;
- un langage de balisage : HTML (un code qui sera interprété par le navigateur pour faire apparaitre une mise en forme à celui qui consulte la page) ;
- un protocole de communication : HTTP en relation avec le protocole TCP/IP (un système d'adresses pour trouver la page voulue).
Notons que le tout premier site Web publié le 20 décembre 1990 par Tim Berners-Lee lui-même est toujours présent et consultable !
Le premier site Web, le site “World Wide Web” :
- consultable en mode graphique - https://info.cern.ch/hypertext/WWW/TheProject.html ;
- consultable en mode “ligne de commande” - https://line-mode.cern.ch/www/hypertext/WWW/TheProject.html.
Oulà, il faudra peut-être expliquer un peu ces quelques points, parce que je n'ai pas tout compris !
Oui, on va faire un tour de ces termes, mais tu verras que bien que ce soit des termes barbares qui semblent faire référence à des choses très compliquées, en réalité, c'est loin d'être le cas !
Protocole : Ce mot compliqué est quelque chose d'assez simple à comprendre. Je pense que tu sais à quoi fait référence un protocole diplomatique, par exemple lorsqu'un président d'un pays étranger fait une visite officielle chez nous. Je ne connais pas le protocole réel mais ont peut imaginer quelque chose comme ça :
- l'avion vient stationner à l'endroit prévu ;
- on positionne l'escalier à la porte de l'avion ;
- on déroule le tapis rouge ;
- l'orchestre ou la fanfare, les hôtes officiels et la garde militaire se positionnent ;
- on ouvre la porte de l'avion ;
- l'officiel invité se présente à la porte de l'avion ;
- l'orchestre entame l'hymne national du pays de l'invité ;
- l'officiel invité descend les marches et vient saluer les hôtes dans un certain ordre ;
- la garde militaire se met au garde à vous ;
- l'invité, accompagné des hôtes officiels, parade sur le tapis rouge, devant les militaires ;
- etc…
Voilà, c'est ça un protocole. C'est simplement une liste ordonnée de choses. Parfois, les protocoles sont très très simples. par exemple, le protocole HTTP 0.9 :
- connexion du client HTTP (= établir la connexion) ;
- envoi d'une requête de méthode
GET
(= envoyer la demande au serveur) ; - réponse du serveur HTTP (= recevoir la page demandée) ;
- le serveur ferme la connexion pour signaler la fin de la réponse (= clôturer la connexion).
Tout cela est purement technique et il n'est absolument d'aucune nécessité de l'apprendre. Par contre, il est bon de savoir ce que c'est et à quoi cela se rapporte quand on parle de “protocole”. Plus simplement, on peut dire que c'est juste un processus technique.
HTTP, qui signifie HyperText Transfer Protocol, est simplement le protocole qui défini la méthode utilisée pour communiquer via le système hypertexte. HTTPS c'est la même chose, mais qui ajoute une méthode de sécurisation en chiffrant les données communiquées.
Le terme de “protocole” n'est donc pas quelque chose de si exotique que cela pouvait être dans ton esprit avant ces explications.
Effectivement, ce terme qui semble bien compliqué ne l'est finalement pas du tout.
Pourrait-on aussi comparer cela à un protocole d'admission dans un hôpital ?
Oui, c'est la même chose. C'est une suite ordonnée d'étapes à suivre pour déterminer le type de suivi et de soin à donner au patient.
Il faut maintenant expliquer le HTML. Comme nous l'avons vu dans les pages précédentes consacrées à la messagerie, ce sont des fichiers texte donc contenant du texte brut qui voyagent. Pour le Web c'est exactement la même chose. Je me répète mais cette notion de texte brut se retrouve partout en informatique. C'est pour cela qu'elle est si importante à comprendre.
Bien, mais il est nécessaire, à partir de ce texte brut, que le navigateur Web puisse reconnaître ces fameux liens hypertextes qui sont la base de l'idée de Tim Berners-Lee. Ainsi, Tim va créer un code qui indiquera au navigateur Web où commence et où se termine le lien dans le texte. Il va donc créer des étiquettes qui seront reconnaissables dans le texte brut. Nous appelons ces étiquettes : des “balises”. L'idée est de mettre une étiquette pour dire où est le début du lien et une autre étiquette pour indiquer où est la fin du lien. La portion de texte, qui doit servir de lien, est ainsi encadrée entre ces deux étiquettes (ou balises).
Il décide que l'on reconnaîtra ces étiquettes en les encadrant par des chevrons : < et >. Pour que ce soit simple et rapide, puisque la fonction première est de faire des liens, il attribuera la lettre “a” pour cette première balise. Nous avons donc notre première étiquette, notre première balise qui est : <a>. Il faut maintenant l'étiquette qui signifiera la fin du lien. Tim fera simplement débuter l'étiquette de la balise de fin par un “slash”. notre balise de fin est donc : </a>. Ainsi, dans notre texte brut, notre lien sera noté :
<a>texte_du_lien</a>
Bon, il nous manque encore un détail. Il faut encore désigner la cible de notre lien ! Il est donc nécessaire d'insérer un paramètre (que nous appelons : un “attribut”) dans notre balise. ce sera le paramètre href=
pour “hypertexte référence”. Ainsi, le navigateur a toutes les informations nécessaires pour notre lien. Cela donnera par exemple (en mettant les balises en évidence) :
<a href=“https://www.perdu.com”>Page de perdu.com</a>
Ce petit code affichera ceci dans le navigateur Web :
Ce système, qui est un langage, se nomme “HTML” pour “HyperText Markup Language” que l'on peut traduire par “langage de balisage d'hypertexte”. Encore une fois, c'est de l'information générale pour comprendre les principes. Il n'est pas nécessaire d'apprendre ça par cœur.
En y réfléchissant, je ne vois pas comment faire autrement, à partir d'un texte brut pour obtenir ce genre de résultat…
Si je comprends bien, quand le navigateur Web va lire ces étiquettes, il saura qu'il faut appliquer, à l'affichage, la fonction souhaitée ?
C'est exactement ça. On dit que le navigateur interprète ce langage.
Au début, Tim Berners-Lee, en plus de cette balise de liens hypertextes (<a>) qui était déjà une révolution en soit, crée quelques autres balises pour des petites mises en forme pour faire des titres ou créer des listes par exemple. Les possibilités de mise en forme étaient donc très limitées, mais très simples à mettre en œuvre. Par contre, il ne pouvait pas afficher d'images et il n'y avait pas de formulaire pour interagir avec l'internaute.
Vers 1992, Tim Berners-Lee souhaite léguer son invention (spécifications et code sources) au domaine public. Robert Cailliau l’aide à obtenir l’accord du CERN. Ainsi, le 30 avril 1993, le CERN versera tout ce qui concerne le Web dans le domaine public. Le don de cet outil à l'humanité tout entière est typique de cette volonté de partage des connaissances des hackers. C'est aussi grâce à cela que le Web s'imposera face aux applications concurrentes similaires au Web comme Gopher qui est resté un système propriétaire. D'ailleurs, en mars 1993, l'université du Minnesota, le propriétaire de Gopher, décide de faire payer le service par des redevances. ce sera l'un des éléments qui causera sa perte. Dans le même genre, nous pouvons encore citer WAIS comme système concurrent.
Ce sera le navigateur Web NCSA Mosaic qui popularisera vraiment le Web, vers 1993 ~ 1994, avec la possibilité d'intégrer directement des images dans les pages Web avec la balise <img> ainsi que la possibilité de créer des formulaires pour interagir avec l'internaute. Cette avancée sonnera la fin de Gopher. Ce ne sera qu'en l'an 2000 que l'université du Minnesota finira par libérer Gopher en le plaçant sous la licence GNU GPL, mais cela fait déjà des années que plus personne ne s'y intéresse.
C'est triste…
Si je résume bien, il y a comme une effervescence entre 1990 et 1995 pour développer ce que tu qualifies de “Système de Publication par Internet”. Le World Wide Web (que l'on nomme “Web” pour faire simple) n'étant que l'un d'entre eux. Ce sont visiblement que dans de grandes institutions de recherche et dans les universités que cela se passe. Si c'est le Web qui s'est finalement imposé c'est qu'il était libre et qu'il a permis des avancées comme l'intégration des images dans les pages et des échanges avec les visiteurs des sites grâce aux formulaires.
Aussi, si je prends un peu de recul avec ce que tu m'as appris jusque-là, Tim Berners-Lee et Robert Cailliau sont des hackers. Et maintenant, je comprends cette distinction entre “internet” et “Web” :
- Internet est juste une tuyauterie.
- Le Web est un système, parmi d'autres, de publication de documents qui utilise internet.
Je comprends donc, l'abus de langage que tu me signalais à la page Vocabulaire "Internet" à propos de l'expression “site internet” parce qu'un site n'est pas “internet”. Un site peut être un site Web ou un site Gopher ou d'une autre application que je ne connais pas ou qui n'existe pas encore.
Oui, c'est très bien résumé.
D'ailleurs, il existe effectivement une autre application, depuis 2019, qui s'appelle Gemini qui a été conçu pour répondre aux dérives du Web, des dérives dont Tim Berners-Lee lui-même s'en désole. Le but de Gemini n'est pas de remplacer le Web, ni Gopher, mais de proposer une alternative à mi-chemin entre la simplicité de Gopher et la complexité du Web, car comme dans le domaine spatial, le Programme Gemini a servi d’étape entre le Programme Mercury et le Programme Apollo. Aussi, les pages Gemini sont appelées des “capsules”.
- Page Web du projet Gemini : https://geminiprotocol.net.
- Capsule Gemini du projet Gemini : gemini://geminiprotocol.net.
Pour avoir accès à ce deuxième lien, il faut avoir un navigateur Gemini ou que le protocole Gemini soit implanté dans ton navigateur Web usuel (possiblement avec une extension). Une liste de logiciels client (navigateur) pour Gemini est à disposition ici : https://geminiprotocol.net/software/.
WAW, incroyable !
Si je trouve un peu de temps, j'irai peut-être y faire un tour par curiosité. Mais je suis ravi d'apprendre tout cela, car je n'en savais absolument rien !
En tout cas, c'est fascinant de découvrir ce monde que je ne pouvais même pas imaginer !