Communiquer avec le serveur depuis un navigateur Web : XHR, SSE et WebSockets

112
18
avr.
2021
Internet

Dans cette dépêche, nous allons faire un tour d’horizon de différentes manières de communiquer avec un serveur depuis une application Web, avec un petit peu d’histoire, avant de rentrer plus profondément dans le fonctionnement des WebSockets, que nous allons démystifier. Nous digresserons ensuite à propos de la gestion (problématique) des requêtes longues et de HTTP 2 avec Apache, et nous discuterons d’une manière de limiter la casse. La dépêche contient quelques morceaux raisonnables mais l’absurdité est latente.

Supposons que nous ayons une application Web qui a besoin de recevoir des évènements du serveur pour voir si quelque chose s’est passé. À tout hasard, un jeu de société en ligne. Ce jeu a besoin d’envoyer les coups des joueurs et joueuses, et de recevoir les coups des autres.

Le serveur ne peut pas contacter le navigateur. Celui-ci est peut-être derrière un pare-feu, et de toute façon il n’y a pas de méthode pour cela. Le modèle du web, c’est une requête HTTP de la part du navigateur, et le serveur sert cette requête. Et puis, à la base, une requête = un chargement de page.

Mais des techniques sont apparues pour abuser de ce modèle, puis les standards se sont mis à intégrer des méthodes pour mener ces abus en toute sérénité.

Journal OUI-Léger : une extension Firefox pour rendre le site oui.sncf plus léger

Posté par  . Licence CC By‑SA.
91
9
juil.
2019

Je prends régulièrement les trains de la SNCF, la Société Nationale des Chemins de fer Français. Cela m’amène à acheter des billets sur le site OUI.sncf (anciennement voyage-sncf.com).

Ça fait longtemps que je suis gêné par la lourdeur du site. La page d’accueil met bien 10 secondes à se charger, et le processus complet d’achat de billet prend plusieurs minutes sur un ordinateur classique, et ne parlons même pas de la situation sur le téléphone. Le site consomme également énormément (…)

Journal Réception d'un MMS difficile

Posté par  . Licence CC By‑SA.
74
4
oct.
2020

Incipit

Un alignement de planètes quelconques (ou un alignement quelconque de planètes, comme vous préférez) a rendu impossible une réception de MMS sur le téléphone que j'utilise, un vieil appareil bas de gamme sur Android 6 abandonné par la personne à qui il appartient (c'est pour donner le contexte, rendre les choses concrètes et augmenter le nombre de mots, mais ça n'a pas du tout d'intérêt pour la suite).

En général ça fonctionne, mais là, non : je reçois un (…)

Journal Simuler un clic avec libevdev et uinput

Posté par  . Licence CC By‑SA.
70
2
sept.
2021

Préambule

Samedi 7 août, 14h UTC+2 : une pluie de tous les enfers se déchaîne. Il pleut tout l’après-midi, mais c’est la tempête surtout pendant une demi heure. Le sol est inondé. Les gens courent, l’imper sur lequel je comptais jette l’éponge, mon téléphone pas étanche dans la poche de l’imper pas étanche est mouillé et c’est le drame : il ne s’allume plus.

Dimanche 8 août. Le téléphone refonctionne (son module wifi et Bluetooth démarre bien quand bon lui (…)

Journal Fusionner deux profils signal-desktop pour retrouver ses conversations

Posté par  . Licence CC By‑SA.
54
18
avr.
2022

Me revoilà pour un journal un peu technique. On part à l’aventure et on va notamment parler de Signal, de SQL, SQLite, de son extension fts5 (vite fait) et de SQLCipher (variante de SQLite capable de chiffrer les bases de données, découverte à l’occasion), et de fusion de deux bases de données Signal pour reconstruire un historique complet et « réparer » un profil Signal un peu moisi.

Généralités sur Signal

Signal est une application de messagerie instantanée chiffrée de (…)

Journal Sur l'intérêt des systèmes de protections des courriers électroniques (DKIM, SPF et DMARC)

Posté par  . Licence CC By‑SA.
Étiquettes :
52
6
jan.
2019

J’héberge mon propre courrier électronique. Le faire correctement n’est pas une chose triviale à faire et on est amené à apprendre l’existence de plusieurs mécanismes. Ce matin, j’ai reçu un courriel de non-livraison étrange de la part de Gmail et c’est l’occasion de parler de ces mécanismes, puis on décortiquera ce courriel étrange.

SPF, DKIM, et DMARC

Ces trois technologies servent à lutter contre le courrier indésirable.

SPF : Sender Policy Framework

SPF prend la forme d’un enregistrement DNS sur (…)

Journal MPRIS-Sync : Regardez des films ensemble par internet

Posté par  . Licence CC By‑SA.
47
5
juil.
2020

J’ai voulu regarder une série avec ma sœur, parce que c’est quand même bien sympa de s’entendre mutuellement rire pendant les épisodes.

Sauf que problème, on n’habite pas dans la même ville. Comment alors regarder en même temps, facilement, une série ensemble, sans trop de décalage avec possibilité de repasser une scène qui nous a particulièrement amusé ?

Je n’ai pas trouvé de solution libre permettant de diffuser facilement, sans gros décalage, depuis un ordinateur vers un autre ordinateur sur (…)

Journal Envoyer un SMS rapidement depuis le terminal

Posté par  . Licence CC By‑SA.
44
2
juil.
2019

Je continue à me servir des journaux LinuxFR comme sauvegarde pour mes scripts shells pourris.

J’utilise KDE Connect pour relier mon téléphone à mon ordinateur. Ça permet plein de choses, y compris répondre rapidement aux textos reçus. Par contre, impossible de commencer un texto depuis l’interface graphique. L’outil en ligne de commande, en revanche, le permet.

Voici un script qui permet d’envoyer un texto rapidement depuis la ligne de commande. Le script invoque votre éditeur de texte préféré (indiqué dans (…)

Journal Le DRM Widevine L3 cracké

Posté par  . Licence CC By‑SA.
43
20
jan.
2019

Je n’ai pas encore vu de journal ou de dépêche à ce sujet, alors je me lance. C’est un peu décousu, je rapporte ça pèle-mêle.

Widevine est un DRM (Digital Rights Management, ou moins officiel mais plus exact Digital Restriction Management) assez répandu, géré par Google, une grosse multinationale qui touche pas mal de domaines dans les nouvelles technologies et au‐delà.

Le but d’un tel composant est de limiter le « piratage », en restreignant les personnes (…)

Journal Sauvegarde des SMS, MMS et du journal d'appels sous Android

Posté par  . Licence CC By‑SA.
Étiquettes :
37
25
juil.
2018

Introduction

Manifestement, j’ai un caractère un peu archiviste et ça me pousse à vouloir garder toutes mes communications. Mon téléphone actuel tourne sur Android et pour mes communications électroniques, j’utilise essentiellement les textos et les mails. Et je n’aime pas de perdre trois jours de textos, même si finalement ça représente 4 pauvres messages pas importants. Je me suis déjà retrouvé à rechercher une information dans un texto d’il y a un an. Aussi, regarder les anciens messages peut être (…)

Journal Btrfs restore à la rescousse

Posté par  .
Étiquettes :
35
15
sept.
2018

Introduction

Btrfs, c'est un système de fichiers qui me laisse l'impression de rester éternellement jeune (« modern », dirait sa documentation officielle). Et qui paraît également beaucoup plus intéressant que la musique forte des voisins qui accompagne la rédaction de ce présent journal.

Introduit en 2009 dans le noyau Linux 2.6.29, stable depuis 2013 avec le noyau 3.10, il présente des fonctionnalités sympas comme les sous-volumes et les instantanées (snapshots), la compression transparente, le RAID et le redimensionnement à chaud (…)

Journal Trivabble s'offre un nom de domaine

Posté par  . Licence CC By‑SA.
Étiquettes :
30
12
mar.
2021

Pour celles et ceux qui ne connaissent pas, Trivabble est un jeu libre en réseau où il faut aligner des mots en lignes ou en colonnes sur une grille dont certaines cases sont spéciales et faire un max de points possible. Vous connaissez probablement le principe. Rythme effréné et doses d’adrénaline garanties. Bref, ça a été présenté ici dans cette dépêche et dans les articles qui ont suivi.

Préambule

Que ne serait un bon journal sans son intro totalement (…)

Journal Entêtes gé(n)ants, restez en haut de la page !

Posté par  . Licence CC By‑SA.
29
6
déc.
2015

Vous en avez peut-être assez de cette nouvelle mode qui consiste à faire des entêtes énormes qui surgissent quand vous être en train de lire une page web et que vous la faîtes défiler vers le haut, ou alors qui restent carrément visibles et prennent une certaine place, voire une place certaine, en haut de votre écran, avec, bien entendu, une ombre qui donne l'impression à votre cerveau que l'entête est au dessus du contenu que vous souhaitez lire. Peut-être (…)