Désillusionné·s par le web moderne, par les grosses plateformes, les frameworks JS gigantesques et complexes, nous sommes beaucoup à aspirer à plus de communauté, plus d’indépendance, plus de simplicité. Puiser dans les pratiques, cultures et technologies du jeune web, alors encore relativement vierge des appétits marchands et des outils sur-ingénieuriés, est une source d’inspiration. L’une de ces pratiques, les webrings, suscite nostalgie et anemoia1.
Si vous êtes comme moi vous avez principalement entendu parler des webrings dans ce contexte. Vous vous êtes peut-être imaginé·e leur histoire comme étant celle d’artisan·es du web, d’une pratique grassroots loin de toute logique que l’on pourrait apparenter aux GAFAMS. C’est en partie en vrai mais la réalité est plus compliquée.
Je vous propose à travers cet article de retracer l’historique des webrings. Dans un [prochain article] nous regarderons en détail comment fonctionnait la technique derrière les webrings et ce que cela coûte d’en créer un en 2025.
Les prérequis
Avant que les webrings comme on se les représentent habituellement puissent naître il a fallu qu’une idée, EUROPa, rencontre une technologie, les scripts gateways2.
EUROPa
Le 22 décembre 1994 Denis Howe, créateur du Free On-Line Dictionnary of Computing3, lance EUROPa (Expanding Unidirectional Ring Of Pages). Le cercle prend la forme de plusieurs pages web, chacune pointant vers la prochaine. Certaines sections de la page sont identiques sur tous les sites (les instructions pour rejoindre le cercle par exemple) et d’autres sont modifiables par l’éditeurice du site (pour y mettre des liens qu’iel souhaite partager par exemple). Les instructions pour rejoindre le cercle telles qu’elles apparaissent en 1998 sont les suivantes :
To join in you need to be able to create your own Web page. Here’s what to do:
- Invent a new URL to use for your own EUROPa page, something like “http://my.host.net/europa.html”.
- Take a copy of the HTML source of this page using your browser’s “View Source” or “Save as HTML” function.
- Replace all the “Owner of this page” names, e-mail addresses, etc. as indicated by the comments in the HTML.
- Put something interesting in the “Other links” section.
- Install the page on your Web server with the URL you gave.
- E-mail the new URL to me, the owner of this page (below).
- I will send back my latest “Next EUROPa page” link if it has changed since you took your copy.
- Update the “Next page” link in your page if necessary.
- Wait until you receive the URL of another new EUROPa page.
- Check the new page is OK.
- Send the owner of the new page your latest “Next page” link if necessary (and keep a note of it for yourself).
- Update the “Next page” link on your page to point to the new URL you received.
It is important to follow these instructions in the order given to ensure that the ring remains a ring. You may join the ring at any point but you may only join once. To this end, you should check that any URL you receive is not already in the ring by following the links back round to your own page. You should keep a private note of old “Next page"s in case your current one dies, leaving a break in the ring.
EUROPa est de nature bien distincte de ce que l’on appelera ensuite les webrings. EUROPa est une idée prenant forme dans un protocole et non pas une technologie. Il en résulte que l’implémentation et la gestion sont totalement décentralisées, dans les mains des membres du cercle. N’importe qui peut ajouter une personne dans le cercle en l’insérant directement après soit. L’hébergement est entièrement décentralisé, l’information étant déssiminée dans chacun des sites des membres.
Cela a pour désavantage de rendre fastidieux la maintenance. Pour ne pas briser le cercle chaque membre doit jouer le jeu et le faire à la main ! Avec le temps le protocole changera un petit peu pour être plus intelligible, comme on peut le constater sur cette page archivée en 2000, mais les fondements resteront les mêmes.
La Common Gateway Interface (CGI)
Courant 1990/1991 Tim Berners-Lee écrit le premier serveur web, CERN httpd. Dès Novembre 1991 un mail atteste de l’existence de logiciels permettant de faire le pont entre le web et d’autres systèmes, ici avec WAIS. Nommé “gateways”, ces scripts sont exécutés sur le serveur à la réception de certaines requêtes HTTP. Quelques mois plus tard sera envoyé, sur la même liste de diffusion4, le code source d’un gateway permettant d’intéragir avec le SIG de l’université de Michigan. Fin 1992 Rob McCool5, alors développeur du serveur web NCSA HTTPd pour le compte du NCSA, enverra un mail au sujet de la standardisation des scripts gateway. Il y écrit, traduit de l’anglais :
On m’a informé que plusieurs auteurices6 de gateway retardent l’annonce ou la publication de leurs gateways de peur que l’interface change à nouveau et qu’ils ne fonctionnent plus.
[…]
J’aimerais ouvrir une discussion au sujet du contenu de l’interface de script. Ci-joint une liste de propositions que j’envisage d’implémenter dans l’interface finale. Suggestions et commentaires sont les bienvenus.
Les propositions portent notamment sur la manière de parser les paramètres dans l’URL7, le nom des variables d’environnement et leurs contenus exacts. Le travail engagé suite à ce message débouchera sur une spécification destinée à unifier toutes les interfaces pour les scripts gateway, la Common Gateway Interface (CGI). L’une des pages donnant des conseils sur la sécurité des scripts informe qu’il est dangereux d’utiliser des constructions shell de la sorte :
eval `echo $QUERY_STRING | awk 'BEGIN{RS="&"} {printf "QS_%s\n",$1}' `
et qu’il est dangereux d’utiliser les appels systèmes popen et system. On
sait donc qu’au moins trois langages étaient utilisés pour écrire des gateways :
C, perl et le shell/awk/etc. Par la suite de nombreuses librairies seront
développées en Perl pour faciliter l’écriture de scripts CGI8, les deux
alimentant mutuellement leurs popularités. Plus tard c’est PHP qui deviendra le
langage utilisant le plus la CGI.
Rapidement les scripts CGI feront un usage des capacités croissantes d’HTML et HTTP pour construire des applications telles que les premiers forums ou wiki.
L’histoire de la CGI a été couverte de manière presque identique mais plus précise en anglais par Richard MacManus dans l’article “1993: CGI Scripts and Early Server-Side Web Programming” : https://cybercultural.com/p/1993-cgi-scripts-and-early-server-side-web-programming/
Les webrings
D’un côté nous avons des cercles de pages maintenus à la main via mail, de l’autre un système permettant à des navigateurs web de déclencher l’exécution de code côté serveur. A l’été 1995 une personne nommée Jerry Hiero9 a l’idée de centraliser et automatiser le fonctionnement d’EUROPa avec des scripts. Sage Weil10, 17 ans, code la première implémentation11. Il développera une plateforme d’hébergement et de gestion de webring nommée webring.com. Le concept est simple. Un webring est déclaré dans un fichier texte avec tous les liens des membres dans l’ordre. Un script est écrit pour pouvoir rediriger vers le site précédent ou suivant un site donné dans le fichier texte. Les membres incluent dans leurs pages un bout d’HTML permettant d’appeler le script en question. Rapidement d’autres fonctionnalités seront ajoutées telles que la possibilité de sauter l’un des sites, vraisemblablement pour contourner un site qui ne serait plus en ligne12, évitant ainsi de rompre le cercle. Un problème qu’EUROPa ne pouvait pas résoudre du fait de sa nature “statique”.
Comprenant rapidement le potentiel de l’idée il créé une entreprise adossée au
service. A ce stade l’infrastructure est encore assez modeste. Elle tourne sur
un seul ordinateur, n’est pas monétisée et héberge quelques centaines ou milliers
de cercles. Le code est composé d’un script gateway en C, de plusieurs scripts
Perl manipulant la base de donnée des cercles et de templates HTML pour toute la
partie administration du site. La base de donnée est constituée de fichiers
textes. Chaque cercle est décrit dans un fichier de configuration et un fichier
contenant les membres du cercle, un par ligne, les différents champs séparés par
des |13. Plus de détails techniques seront donnés dans le [prochain
article]. Parallèlement d’autres services concurrents sont créés, notamment
ringsurf.com,
datant à minima du 12 juin 1998.
Que ce soit pour gagner un peu d’argent des annonceurs lui-même ou pour préparer la vente, Sage Weil implémente courant de l’été l’infrastructure pour permettre de montrer de la pub sur le site. Il modifie le schéma de la base de donnée et le code pour préparer la version 2.0.0 de webring.com. Plus tard dans l’année la startup Starseed Inc., également basée à Ashland, achète webring.com à Weil14.
Fin 1998 le site rapporte15 :
As a leading online navigation aid, WebRing is experiencing a growth rate of over 10% monthly. Daily page requests from visitors exceed 500,000; member sites total over 500,000; rings total over 40,000.
A l’époque les scripts CGI posent des problèmes de performance16. Chaque requête faite au serveur web pour parcourir le cercle ou pour en administrer un créé un nouveau processus sur le serveur. 500 000 requêtes par jour représente en moyenne entre cinq et six par seconde avec au moins un processus à créer à chaque fois. Malgré la relative simplicité de webring.com tel qu’implémenté par Weil, tôt ou tard les soucis de performance vont empêcher le service de croitre. Alors le co-fondateur de Starseed améliore le système pour pouvoir accueillir plus de cercles et plus de traffic et ainsi le préparer à la revente. Effet intéressant de son aspect décentralisé et protocolaire, la taille et popularité d’EUROPa ne dépendent elles que des capacités des sites des membres et ne requiert pas d’ajustement d’un service tiers.
La modification faite par Starseed porte ses fruits puisque fin 1998 GeoCities, un service d’hébergement de sites web gratuit, achète Starseed pour 34M$17. L’achat semble faire sens, de nombreux sites membres de cercles webring.com sont hébergés chez GeoCities. L’entreprise espère alors promouvoir l’utilisation des webrings pour augmenter le traffic entre ses sites. Les ingénieurs de Starseed se mettent à travailler à la migration de webring.com vers le système d’information de GeoCities.
Si le chiffre de 34M$ paraît élevé pour quelques scripts perl et quelques dizaines de millier de cercles c’est que nous sommes proche du pic de la bulle internet. L’utopisme et l’euphorie qui prend le marché pousse les gros acteurs existants ou en devenir à faire de nombreuses acquisitions. C’est ainsi que, le jour même où la passation entre Starseed et GeoCities se termine, Yahoo! annonce acheter GeoCities18.
Les webrings de webring.com ne sont pas la raison principale du rachat pour plusieurs raisons. Premièrement Yahoo! se diversifie beaucoup. La partie webrings de GeoCities est en concurrence interne avec de nombreux services et ne semble pas être le plus prometteur. Deuxièmement webring.com est difficile à monétiser19. Le service est destiné à mettre en relation directement des sites étrangers à webring.com. Même l’index des pages est habituellement hébergé par l’admin du cercle sur une page personnelle. Dans le meilleur des cas Yahoo! ne peut espérer montrer des pubs qu’aux administrateurices des cercles. Finalement le fond de commerce de Yahoo!, Yahoo! Search, est perçu comme allant rendre obsolète les webrings. Si l’on pense aujourd’hui les webrings comme une manière de faire communauté sur le web et de découvrir du chouette contenu par sérendipité, ils étaient à l’époque également utilisé pour trouver de l’information comme on le ferait aujourd’hui via un moteur de recherche. En témoigne la première phrase de la citation plus haut :
As a leading online navigation aid
Les moteurs de recherche s’améliorent alors rapidement. Les résultats sont de plus en plus pertinents et évitent d’avoir à parcourir des dizaines de sites de mauvaise qualité dans un cercle de la thématique qui nous intéresse.
Résultat de cette négligence, la mise à jour du 5 septembre 2000, intronisant “Yahoo! WebRing” comme un service Yahoo! à par entière est un cuisant échec. Parmi les raisons de cet échec on trouve :
- une mauvaise migration qui a permis à la première personne membre d’un cercle se connectant à la nouvelle interface d’en devenir l’admin. Faute de personnes capables et volontaires pour les admnistrer de nombreux webrings se sont trouvés figés pour l’éternité20.
- la nécessité de se créer un compte Yahoo! et de renseigner des données
personnelles2122. Il y a toujours eu des personnes sur le web pour qui
c’est quelque peu tabou, bien que les décennies qui suivent démontrent que
ce n’est pas une mauvaise idée commercialement. Cela dit il y avait de
nombreux webrings LGB23, y compris le tout premier webring sur
webring.com, celui de son créateur qui inclu dans ses sous-groupes :
soc.gay soc.charity soc.env soc.civilrights24. On peut facilement imaginer que les membres de ces cercles ne voulaient pas s’identifier auprès de Yahoo!, d’autant plus en 2000. - le fait que le système fonctionne généralement “mal”25.
- la perte en autonomie que représente la Server-Side Navigation Bar (SSNB), un bout de javascript remplaçant les morceaux d’HTML proposant les liens “suivant” et “précédant” du cercle. Ce système ne permettait pas, par exemple, aux admins des webrings de modifier l’apparence des liens
- l’absence, dans la SSNB, du lien vers la page de l’admin du cercle au profit d’un lien vers la page d’index Yahoo! du dit cercle26 dans l’espoir de générer plus de traffic vers les pages de Yahoo!.
L’évènement est tel que des pages à la mémoire des webrings tués par Yahoo! seront créées. Et, ironie du sort, des webrings dédiés sur Yahoo! Webrings.
Un certain nombre de webrings feront leur migration vers d’autres services, notamment ringsurf.com, le concurrent né dès 1998. D’autres migreront vers des webrings indépendants, rejoignant ainsi ceux qui n’avait jamais été créés sur webring.com, dont le second webring de webrings.com, ESLoop. Il est cependant probable que la plupart des webrings n’aient pas vraiment survécu aux changements incessants de propriétaires et de systèmes. La concurrence des moteurs de recherche faisant, la pratique devient de plus en plus niche. L’intérêt pour les webrings, mesuré approximativement par la popularité des recherches sur le sujet sur google.com, n’a fait que baisser depuis 2004.
Moins d’un an plus tard Yahoo! vend webring.com à l’un des ingénieurs travaillant dessus. Le service tente d’être rentable en proposant des fonctionnalités payantes, par exemple en limitant le nombre de membres par défaut27. A priori sans grand succès, le domaine abrite aujourd’hui un site étrange ne contenant qu’un seul article expliquant très rapidement l’histoire du site.
L’histoire des webrings ne se résume évidemment pas qu’à webring.com. De nombreux sites proposent d’héberger des webrings dont The Rail, né en 1996 et utilisant une autre métaphore ou Bomis qui, en plus d’héberger des webrings, hébergeait de la pornographie et wikipedia28. De nombreux services sont documentés sur brisray.com et la plupart sont notés comme morts. Ce site est par ailleurs une super ressource à propos de l’histoire des webrings, je vous invite à le consulter.
Malheureusement l’histoire des webrings indépendants et auto-hébergés est moins bien documentée que les aventures de webring.com. Si vous avez des informations ou anecdotes à leur propos je suis preneur ! Je les ajouterais à cet article. bisray.com a cependant une très longue liste de webrings actifs et fait lui même parti de nombreux webrings, démontrant ainsi le regain d’intérêt pour la pratique. La liste inclue la technologie sur laquelle repose le webring, un sujet qui sera évoqué dans [le prochain article].
Discussion
L’histoire des webrings, et en particulier celle de webring.com, m’a surpris de plusieurs façons.
- Le nom “webring” vient très probablement de webring.com et est quelque peu flou
EUROPa contenait déjà le terme “ring” mais semblait ne désigner que le cercle débuté par Denis Howe. En l’absence d’archive de cercles de type EUROPa autre que celui de Denis Howe il est impossible de dire si le mot webring a été inventé avant webring.com. Dans le doute je pense que l’on peut attribuer la parenté à Sage Weil ou l’une des personnes autour de lui courant 1995. Cela fait peut-être du mot “webring” une antonomase comme Kärcher, sopalin ou scotch.
Par ailleurs ce que l’on désigne par webring n’est pas parfaitement clair. Dans cet article je l’ai généralement utilisé pour désigner tout cercle de lien reliant des sites web fonctionnant avec un script CGI et une base de donnée centralisée, autrement dit reproduisant le fonctionement de webring.com. Cette définition exclue EUROPa bien que rétro-activement on aurait tendance à dire que c’était le premier webring. Elle inclue tous les cercles hébergés via d’autres services que webring.com bien que ce soit probablement le site ayant inventé le terme. Dans certaines des archives on constate que le terme plus générique de “ring” est parfois utilisé, peut-être pour se distinguer du service webring.com lorsqu’il était encore très populaire. Cependant “webring” semble être majoritairement utilisé comme je l’ai fait dans cet article.
- L’histoire des webrings est intrinsèquement liée à celle des plateformes commerciales
Si l’on ne compte pas EUROPa comme un webring, la naissance des webrings est la naissance de la plateforme webring.com. L’idée a tout de suite été pensée comme un service pouvant convenir à tout le monde, à un ensemble générique de “users” comme le dirait Shirky dans son article Situated Software.
Bien sûr on est initiallement loin du type de plateforme que l’on voit aujourd’hui. Tout tien sur un seul ordinateur géré par un ado américain. N’empêche que les germes sont là, en témoigne l’arrivée des pubs en 1997 et la vente qui s’en suit. La priorité de Starseed sera de faire “passer à l’échelle” le code et l’infrastructure dans le but assumé de préparer le service à la vente. La consécration de cette logique sera le rachat par Yahoo! bien que ce soit un effet de bord de sa volonté de mettre la main sur les site de GeoCities.
Nous n’avons pas de statistique sur le quantité de webrings indépendants mais je vais parier sur le fait que la très grande majorité des webrings était hébergés sur webring.com ou des services concurrents. La décrépitude de webring.com coïncide en parti avec la baisse en popularité des webrings de manière générale. Si l’on ne s’intéresse qu’au volume, la mort de l’importance des webrings a débuté avec la mort de sa plus importante plateforme.
- webring.com est peut-être l’un des premiers services web enshitifié
Les doléances des utilisateurices de webring.com à l’ère de Yahoo! ressemblent étrangement à ce dont se plaignent aujourd’hui les personnes utilisant des services web modernes se dégradant. Si vous avez lu tout l’article jusque là la description que Doctorrow fait du processus d’enshittification vous sera parlante (traduite de l’anglais) :
Voici comment les plateformes meurent: premièrement elles prennent soin de leurs utilisateurices29: puis elles les maltraitent pour avantager leurs partenaires commerciaux; finalement elles maltraitent ces partenaires pour s’accaparer toute la valeur produite. Puis elles meurent. J’appelle ceci l’emmerdification. Il semblerait que ce soit une conséquence inévitable de la facilité de modifier la répartition de la valeur d’une plateforme combinée à la nature d’un marché “à deux faces” où une plateforme est située entre acheteureuses et vendeureuses. Elle tient l’un en otage à l’autre, siphonnant une part grandissante de la valeur échangée entre elleux.
Dans le cas des webrings Yahoo! a tenté de faire croitre le marché, celui de la pub, afin d’augmenter la valeur qu’elle ponctionnait. Cependant, comme expliqué plus tôt, les webrings tels qu’ils fonctionnaient ne permettaient pas la croissance de ce marché. Cherchant à favoriser les annonceurs, la deuxième étape du processus décrit par Doctorow, Yahoo! a donc retiré de l’autonomie à ses utilisateurices les plus dévouées, les admins de cercles, et davantage centralisé le service. Le service s’est écroulé sans même atteindre la troisième phase.
Par ailleurs on notera l’importance du rôle de javascript dans le processus d’enshitiffication par sa capacité à transférer du pouvoir des utilisateurices vers l’hébergeur du service. Une tendance qui se perpétue jusqu’à aujourd’hui.
- Les webrings modernes sont spirituellement plus proches d’EUROPa que des premiers webrings.
Les valeurs habituellement évoquées par les acteurices de la renaissance des webrings.com, le sentiment de communauté, l’indépendance, la simplicité, la décentralisation, sont mieux incarnées dans EUROPa que les webrings, à la fois techniquement et organisationnellement.
EUROPa est de nature protocolaire, entièrement décentralisé, n’implique aucune infrastructure technologique supplémentaire que celles mobilisées pour servir les pages des membres indépendamment de l’existance du cercle ou pas. A contrario la plupart des webrings étaient hébergés sur des plateformes et soumis à leur bon fonctionnement, ce qui a directement contribué à la mort d’un grand nombre d’entre eux. L’implémentation d’un webring auto-hébergé, comme c’est généralement le cas aujourd’hui, est un compromis entre ces deux solutions. Si les webrings contemporains semblent tous reproduire le fonctionnement de webring.com, leurs philosophies semblent davantage se rapprocher de celle d’EUROPa.
-
“la nostalgie pour une époque inconnue” - https://fr.wiktionary.org/wiki/anemoia ↩
-
que l’on appelle aussi par abus de langage “scripts CGI” ou juste “CGI” d’après le nom de l’interface entre eux et les serveurs webs. ↩
-
Encore maintenu et alimenté aujourd’hui. Bizarrement n’a pas d’entrée pour “webring”. ↩
-
qui en passant est une vraie mine d’or. On y trouve par exemple possiblement la première mention écrite d’un service de cartographie via le web. ↩
-
Quelle classe ↩
-
Dans mon headcannon Rob McCool est évidemment super cool et se représente les personnes écrivant des scripts gateways comme pouvant être de n’importe quel genre. ↩
-
les
&var=valuequi nous paraissent évidents aujourd’hui par exemple. ↩ -
Jusqu’à être inclue dans le coeur du langage (puis retirée parce que jugée obsolète) : https://metacpan.org/dist/CGI ↩
-
l’histoire ne dit pas qui il est ↩
-
https://web.archive.org/web/20000815053629/http://builder.cnet.com/Business/Innovators97/ss18.html ↩
-
Un PSV (Pipe separated Values) ? ↩
-
https://web.archive.org/web/19990117012316/http://www.webring.com/what.html ↩
-
https://insufficientscotty.com/2012/03/14/whatever-happened-to-webrings/ ↩
-
je n’arrive plus à retrouver où j’ai lu ça mais promis je mens pas ↩
-
https://web.archive.org/web/20010414185810/http://members.iinet.net.au/~mongoose/aus2getherhist.html ↩
-
Et T mais ça n’apparaît pas dans le titre de la section : https://web.archive.org/web/20000815063552/http://www.webring.com/ringworld/soc/gay.html ↩
-
http://git.bebou.netlib.re/webring.com.1997/file/rings/d/default/config.html#l14 ↩
-
https://web.archive.org/web/20010424181225/http://www.schoolmarm.org/scream/ ↩
-
Doctorow est évidemment turbo-woke. ↩