HTML5 Client: Qual è la differenza tra Websockets e XHR?
Websockets è la connessione persistente che può essere utilizzata per ricevere/inviare dati senza un ordine sequenziale e senza intestazione http.
Xhr-polling crea una nuova richiesta con intestazione http e attende una risposta con intestazione http, anche in ordine sequenziale.
Facendo così, il flusso di dati XHR appare sempre in questo modo:
HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER e così via
anche prima che i dati possano essere scaricati, devono essere richiesti con HTTP_HEADER, quindi il suo nome: xhr-polling.
Il flusso di dati Websockets potrebbe apparire così:
FRAME_DATA_SEND FRAME_DATA_SEND FRAME_DATA_RECEIVE FRAME_DATA_SEND FRAME_DATA_RECEIVE FRAME_DATA_RECEIVE
Inoltre, si tratta di invio/ricezione di dati casuali senza un ordine sequenziale speciale e senza alcun dato dell'intestazione http.
Ciò rende l'uso con i reverse proxy impossibile a causa della mancanza di supporto per Websockets da parte della maggior parte dei reverse proxy conosciuti; ma metà del trasporto xhr potrebbe funzionare con il reverse proxy Apache.
Vedi anche: Client HTML5: Browser supportati