# HTML-over-WebSockets

> [en] But this wasn’t terribly easy for many developers to grok at first. I sure didn’t. And the benefits weren’t exactly clear either. After years (decades, even) of wrapping our heads around the HTTP request cycle, to which all server-handled features must conform, ==adopting this WebSocket tech layer required a lot of head scratching==. As with many clever new technologies or protocols, we needed a higher-level abstraction that provided something really effective for getting a new feature in front of a user, fast.
>
> <cite>*[The Future of Web Software Is HTML-over-WebSockets](https://alistapart.com/article/the-future-of-web-software-is-html-over-websockets/)* ([cache](/david/cache/2021/a722bf15647dfe923d3c28b2e229098c/))</cite>

En ce moment, ça me gratte justement bien la tête. Je me retrouve [davantage dans cette approche](https://benhoyt.com/writings/the-small-web-is-beautiful/) ([cache](/david/cache/2021/862d065d924906f327f8a95e23659295/)) et j’ai presque du plaisir à utiliser [Stimulus](https://stimulus.hotwire.dev/), ça semble être le niveau de structuration et de non-abstraction dont j’ai besoin. J’ai aussi essayé [Turbo](https://turbo.hotwire.dev/) (Frames) mais je n’ai pas été assez loin pour voir les avantages décrits dans l’article (et c’est trop jeune pour mon niveau de confiance) : j’ai fini par recoder juste ce qu’il me fallait avec Stimulus.

J’apprécie le fait que ces ré-explorations donnent lieux à de nouvelles initiatives comme [Django-Unicorn](https://www.django-unicorn.com/) ou [Sockpuppet](https://sockpuppet.argpar.se/) pour ne citer que les déclinaisons dans l’écosystème Django. J’ai l’impression que c’est le compromis acceptable pour le vieux développeur que je suis : de la réactivité au niveau de l’interface pour les utilisateur·ices, de la logique et de la stabilité côté développement pour ma sénilité d’esprit.

Attention si vous partez sur des WebSockets, j’ai [récemment appris](https://httptoolkit.tech/blog/http-wtf/) ([cache](/david/cache/2021/cbd2101777421fa7549472859210a69c/)) que les restrictions de type <abbr title="Cross-Origin Resource Sharing">CORS</abbr> ne sont pas du tout respectées.

Note : je suis surpris qu’il n’y ait pas encore un projet intitulé **RESTream** dans le domaine 🙃🚎.