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 un 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 ne puissent être téléchargées, l'en-tête doit être demandé avec HTTP_HEADER, d'où 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
Il existe aussi des données aléatoires d'émission/réception sans ordre séquentiel spécial et sans aucune donnée d'en-tête HTTP.
Cela rend l'utilisation des reverse proxys impossible en raison de l'absence de Websockets pris en charge par les reverse proxys les plus connus, mais la moitié du transport XHR peut fonctionner avec Apache reverse proxy.
Voir également: Client HTML5: Navigateurs supportés