Les applications à faible latence nécessitent généralement un moyen de communication plus rapide que ce que HTTP peut fournir. Par exemple, les jeux en ligne multijoueurs ou les applications de chat où des communications interactives en temps réel sont nécessaires pour offrir la bonne expérience utilisateur. WebSockets est un protocole de communication en temps réel qui permet une connexion ouverte, continue et bidirectionnelle entre un client et un serveur. Cela permet d’envoyer des données à un client (c’est-à-dire un navigateur), même sans que le client ait à en faire la demande. Avec le protocole HTTP, le serveur ne répond que si le client envoie une requête.
Les institutions financières sont un autre cas d’utilisation pour WebSockets. Récemment, nous avons travaillé avec une grande banque nord-américaine utilisant le protocole WebSocket pour établir une connexion ouverte pour leur serveur d’origine afin d’envoyer des notifications en temps réel chaque fois que les transactions passent sans que le client interroge pour eux.
Comment fonctionne le protocole WebSocket ?
Les connexions WebSocket démarrent comme des connexions HTTP régulières. Pour établir une connexion WebSocket, le client et le serveur passent du protocole HTTP au protocole WebSocket lors de leur établissement de liaison initial (ce commutateur de protocole est appelé établissement de liaison WebSocket). Pour lancer cette mise à niveau, le client envoie une requête au serveur à l’aide des en-têtes suivants :
-
Connexion : mise à niveau – indique que le client souhaite modifier le protocole
-
Mise à niveau : WebSocket – indique que le protocole demandé est « WebSocket »
Si le serveur comprend le protocole WebSocket et accepte le commutateur, il renvoie un code de réponse spécial : 101 (protocoles de commutation) avec les deux mêmes en-têtes. À ce stade, la connexion HTTP est remplacée par la connexion WebSocket sur la même connexion TCP/IP sous-jacente. Une fois établies, les trames de données WebSocket peuvent être envoyées entre le client et le serveur en mode duplex intégral jusqu’à ce qu’un côté ferme la connexion.
Les principaux avantages de WebSockets sur HTTP comprennent:
-
Connexion persistante : le client n’a pas besoin de redémarrer fréquemment les connexions pour rechercher de nouvelles données.
-
Latence plus faible : les WebSockets utilisent une surcharge minimale. Comme il y a une connexion continue, la surcharge normale associée aux requêtes HTTP, telles que les en-têtes et autres informations, n’a plus besoin d’être envoyée, ce qui réduit la latence.
-
Communication duplex intégral : les WebSockets offrent des communications bidirectionnelles entre le serveur et le client afin que les deux parties puissent communiquer et échanger des données en même temps. Edgecast, aujourd’hui Edgio, est heureux d’offrir un support pour le protocole WebSocket à travers notre réseau mondial de distribution. Alors que nous entrons dans l’ère de l’IoT et de l’informatique de périphérie, le protocole WebSocket profitera aux entreprises souhaitant proposer des applications à faible latence à la périphérie.