WebSocket API & Protocole

Le Protocole WebSocket en bref

Présentation

WebSocket est un protocole en cours de standardisation à l'IETF (Internet Engineering Task Force), le dernier draft est disponible à cette adresse:
http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-06

Il a été proposé pour palier aux déficiences de HTTP, qui n'est plus adapté aux applications récentes car non orienté vers la communication temps réel.
WebSocket est donc présenté comme un protocole bidirectionnel et Full-Duplex, la voie montante et descendante peuvent être transmise simultanément.
Il est une couche au dessus de TCP qui est lui même bidirectionnel, on parle des WebSockets comme du "TCP For the Web".

Pour ce qui est du schéma de l'URL celui-ci ressemble à HTTP, ws://examples.com ou wss://examples.com (avec la surcouche TLS).

Enfin même si l'objectif est de remplacer HTTP, en tout cas pour les applications qui nécessitent une communication bidirectionnelle, WebSocket utilise ce dernier
pour la phase d'initialisation de la communication. Ceci dans l'objectif notamment d'assurer une compatibilité avec les infrastructures existantes (proxy, firewall...).

Cette phase d'initialisation se nomme le handshake, elle vous est présentée dans une prochaine partie.

Voici un schéma très simpe qui permet d'aborder l'établissement de la communication via WebSocket:

WebSocket