Glossaire F5

WebSocket

WebSocket est l’un des protocoles de communication utilisés sur Internet. Il permet une communication bidirectionnelle entre les serveurs Web et les clients. Le protocole est défini par l'Internet Engineering Task Force (IETF) sous le nom de « RFC 6455 ».

Le Web a été initialement conçu pour prendre en charge l’hypertexte, mais il a depuis évolué pour permettre des applications Web plus dynamiques. Une technique couramment adoptée pour y parvenir est AJAX (Asynchronous JavaScript and XML), qui utilise XMLHttpRequest pour faciliter les échanges de données granulaires avec les serveurs Web au lieu des mises à jour au niveau de la page. Cela permet une expérience utilisateur plus réactive. Cependant, avec AJAX, tous les échanges de données doivent provenir du côté client, ce qui rend difficile pour le serveur Web de transmettre les données aux clients de manière proactive.

Pour pallier cette limitation, Comet a été développé comme une extension d'AJAX. Comet fonctionne en « créant intentionnellement des requêtes avec des réponses différées », en maintenant la connexion HTTP au serveur web ouverte afin que celui-ci puisse envoyer des réponses dès qu'il souhaite transmettre des informations. Cependant, Comet a un problème de consommation de ressources élevé.

WebSocket a été développé comme une amélioration de Comet et est disponible en HTML5. Il maintient une connexion ouverte entre le serveur et le client, permettant une communication bidirectionnelle continue à l'aide de cette connexion. Aujourd’hui, les principaux navigateurs prennent en charge WebSocket.

Une connexion WebSocket est établie via HTTP à l'aide du champ d'en-tête HTTP « Upgrade » pour mettre à niveau la connexion vers un WebSocket. Notez que si un site Web utilise un proxy HTTP qui ne prend pas en charge WebSocket, la connexion ou la communication peut échouer, des configurations appropriées sont donc requises.