Salut,
Je suis tombé, un peu par hasard, sur un terme qui m’a intrigué, le "small internet" qui était accompagné de liens "gemini". Je n’avais alors jamais entendu parlé ni de l’un ni de l’autre.
Fort de ma curiosité, j’ai entreprit de me renseigner un peu, alors je me suis équipé de ce qu’il me fallait et j’ai navigué. Puisque c’est resté un peu flou j’ai voulu me le faire expliquer, et c’est finalement ce "talk" qui m’a éclairé sur ce dont il s’agit.
J’ai trouvé le sujet très intéressant et j’avais envie de le partager pour ceux qui n’avait pas encore eu l’occasion de croiser ces termes.
Je vous recommande bien sûr de regarder la vidéo. Aussi, puisqu’elle est en anglais et dure quand même un moment, je vais parler un peu ici des points qui ont répondu à mes questions.
Qu'est-ce que le *petit internet* ?
En réalité ce terme n’est pas encore clairement défini. Il correspond à un mouvement de contre-courant par rapport aux dérives du web actuel, en redonnant du contrôle aux internautes.
Le petit internet peut prendre plusieurs formes en plus des différentes définitions que l’on veut bien lui donner. Pour certains le petit internet est le fediverse, pour d’autre il s’agit d’IRC, ou des mailing lists, ou encore de gopher …
James Tomasino discerne cependant quelques points communs dans tout le contenu que l’on appelle petit internet :
- C’est orienté vers les individus
- ça évite un contrôle centralisé voire appartenant à une société
- C’est sincère, ça a un sens personnel
- C’est limité intentionnellement
- C’est participatif
- ça ne piste pas l’utilisateur dans la mesure du possible
- C’est généralement non commercial
Il s’agit donc plutôt d’une philosophie, dans laquelle on peut trouver des choses intéressantes, dont certaines dont vous avez probablement déjà entendu parlé comme Mastodon ou PeerTube. Mais ce n’est pas ce qui m’a interpellé ici. Ce qui l’a fait, c’est l’autre focus de la présentation, les protocoles Gopher et Gemini.
Un web alternatif
Cette partie va être un peu technique donc il se peut que vous ayez besoin de notions de réseau pour suivre. Je vais tâcher cependant de la conclure en expliquant l’enjeu plus simplement.
James Tomasino pointe ici une partie de ce petit internet qui présente des pages web qui ne se naviguent pas de la façon habituelle.
En effet, lorsque votre navigateur vous affiche une page, il télécharge ce qui la compose depuis un serveur en utilisant un protocole de communication. Le fonctionnement du web tel qu’on le connait utilise le protocole http(s) pour transférer un contenu html, qui va se lier à des composants de rendu css, d’interactivité javascript, et de médias (images, vidéos, sons …), eux aussi donc transférés au travers ce protocole.
La proposition ici est de faire appel à des protocoles alternatifs.
Gopher
Il existe en fait une alternative à http qui existe depuis les débuts du web. Gopher est un protocole qui permet de communiquer certains types d’entrées, principalement du texte et des liens. Lorsque le navigateur interroge un endpoint gopher, il reçoit une suite de ligne (un texte) dont la première lettre indique la nature de celle-ci (la ligne est-elle un lien ou du texte). Et c’est tout.
C’est cette simplicité qui lui a value une niche d’utilisateur, gardant ce protocole en vie toute ces années. Cependant, gopher n’a pas le recul que l’on peut avoir maintenant sur les problématiques du web et n’a pas pu évolué suffisamment enfermé dans sa niche.
Gemini
La raison pour laquelle il y a un nouveau souffle de ce côté, et pourquoi il y a eu ce talk relativement récemment, c’est la naissance d’un nouveau protocole Gemini, qui s’inspire de la simplicité de gopher et vient corriger ses lacunes. Ainsi, Gemini va apporter du chiffrement (TLS, le même que https), supprimer la limite de taille de ligne (nombre de colonne), supporter plus de media en supportant les types MIME, et permettre une rédaction plus intuitive.
Lorsque l’on navigue avec gemini, chaque endpoint correspond à un media ou un GemText (qui est considéré comme un média mime text/gemini). C’est le seul échange qui s’effectue, il n’y a pas d’autre ressource partagée que celle demandée.
Le GemText est un langage de markup, il renseigne le contenu de la page. De manière similaire au markdown on peut structurer son texte avec des titres, des listes, ou des textes préformatés, et on peut indiquer des liens. Il n’y a par contre aucun balisage inline (pas de gras, italic etc…).
Aussi, le client peut communiquer au serveur un certificat l’authentifiant, cela peut permettre la création d’un compte sur le serveur, comme dans le jeu AstroBotany gemini://astrobotany.mozz.us/
. Le certificat appartient au client, il lui est donc possible de gérer à volonté ses identités numériques.
Comment on y accède ?
Puisqu’il s’agit de protocoles de communication totalement différents, il faut un navigateur qui les prennent en charge. De part leur simplicité, il existe déjà plusieurs implémentations de leurs navigateurs.
Vous pouvez utiliser Kristall dans un environnement graphique ou bien Bombadillo dans un terminal par exemple.
On peut trouver une liste des logiciels sur le site de Gemini.
C’est vachement restrictif ton truc, à quoi ça sert ?
C’est vrai ! Il faut bien se rendre compte que ce n’est pas destiné à remplacer http totalement. Il s’agit plutôt de gérer les sites dont le contenu est principalement textuel. Mais ça représente beaucoup de cas : les sites d’articles journalistiques, wikipedia (il existe d’ailleurs un mirroir gopher gopher://gopherpedia.com:70
), les blogs personnels, ce forum, les microblogs (X), les docs de code …
On pourrait se dire qu’il nous suffit de dire à notre navigateur de n’afficher que le contenu html et ignorer le css et le javascript, mais dans les faits les sites ont tellement été conçus avec ces technologies que les enlever côté client les rends inexploitable. Il suffit de faire l’expérience de Lynx pour s’en convaincre (à comparer avec l’expérience de Bombadillo).
Toutes ces restrictions nous assurent que le serveur ne s’occupe que de délivrer le contenu. Aussi avec ces garanties, cela permet d’avoir des navigateurs beaucoup moins complexe, utilisant ainsi moins de ressources et avec une exécution plus rapide.
Je vous laisse à cette porte d’entrée car je ne me suis moi-même pas aventuré beaucoup plus loin. J’espère que vous trouverez ça aussi intéressant que moi et que vous prendrez plaisir à l’explorer.