Client HTML5 : Quelle différence entre Websockets et XHR ?


Websockets est la connexion permanente qui peut être utilisée pour recevoir/envoyer des données sans ordre séquentiel et sans en-tête HTTP.

XHR-polling crée une nouvelle demande avec en-tête HTTP et attend la réponse avec l'en-tête HTTP et également un ordre séquentiel.

Cela signifie que le flux de données XHR a toujours l'air de :

HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER
HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER
et ainsi de suite

Aussi avant que les données puissent être téléchargées, l'en-tête doit être demandée avec HTTP_HEADER, donc son nom : XHR-polling.

Le flux de données Websockets peut se présenter ainsi :

FRAME_DATA_SEND
FRAME_DATA_SEND
FRAME_DATA_RECEIVE
FRAME_DATA_SEND
FRAME_DATA_RECEIVE
FRAME_DATA_RECEIVE


Aussi il existe des données aléatoires d'émission/réception sans ordre séquentiel spécial et sans toutes les données d'en-tête HTTP.

Cela rend l'utilisation des proxys inverses impossible en raison de l'absence de Websockets en charge par les reverse proxy les plus connus, mais 50/50 du transport XHR peut fonctionner avec Apache reverse proxy.

Voir aussi : client HTML5 - Navigateurs pris en charge.