Salta al contenuto

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