Client HTML5 : Quelle est la différence entre Websockets et XHR
Les Websockets sont la connexion persistante 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 et attend la réponse avec l’en-tête HTTP, dans l’ordre séquentiel.
En procédant ainsi, le flux de données XHR ressemble toujours à ceci :
HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER
HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER
etc …
Avant que les données ne puissent être téléchargées, elles doivent être demandées avec HTTP_HEADER, d’où le nom : XHR-polling.
Le flux de données Websockets peut ressembler à ceci :
FRAME_DATA_SEND
FRAME_DATA_SEND
FRAME_DATA_RECEIVE
FRAME_DATA_SEND
FRAME_DATA_RECEIVE
FRAME_DATA_RECEIVE
Il s’agit également d’envoi/réception de données aléatoires sans ordre séquentiel spécial et sans aucune donnée d’en-tête HTTP.
Cela rend l’utilisation avec des reverse proxys impossible en raison du manque de prise en charge des Websockets par la plupart des reverse proxys connus ; mais la moitié du transport XHR peut fonctionner avec le revrese proxy Apache.
À voir également : Client HTML5 : Navigateurs pris en charge.