Questo tutorial scomponderà ciò che queste tecnologie comportano e ciò che ognuno di loro offre. Questo ti aiuterà a capire e fare una scelta a seconda delle funzionalità che stai cercando.
NOTA: Questa guida non è un primer su nessuna delle tecnologie sopra menzionate. È semplicemente una panoramica di ciò che si può offrire sull'altro.
Iniziamo:
Websockets
WebSocket è un protocollo standard che fornisce una connessione persistente tra un server e un client. I websocket sono bidirezionali. Ciò significa che un server e un client e inviare e ricevere dati sono nello stesso canale. È un protocollo di comunicazione a tutto duplex implementato sul socket TCP/IP.
I websocket aiutano a contrastare i limiti del protocollo HTTP.
Innanzitutto, il protocollo HTTP non è bidirezionale. Il client richiede una risorsa specifica sul server. Una volta che il server trova e invia la risorsa al client, la connessione si chiude. Ciò significa su un flusso di dati molto attivo come il servizio di streaming, ci saranno troppe richieste di server.
A differenza di HTTP, WebSockets può mantenere una connessione fino a quando il client o il server non la terminano. Funziona prima creando una stretta di mano tra il client e il server, seguita da un'intestazione di aggiornamento. Una volta stabilito, viene stabilito un flusso di dati tra il server e il client.
Il diagramma sopra illustra come funziona il protocollo HTTP rispetto ai websocket.
NOTA: I diagrammi sopra non forniscono una conoscenza operativa a tutti gli effetti di protocolli HTTP o WebSocket.
Http/2
HTTP/2 o HTTP2 è la seconda implementazione del protocollo di rete HTTP utilizzato per definire il formato e la trasmissione dei dati. Lo scopo di HTTP/2 è quello di migliorare le prestazioni su HTTP riducendo la latenza, applicato abilitando funzionalità come richiesta completa e risposta e minimizzando gli sovraccarichi del protocollo tramite la compressione dei file di intestazione.
HTTP/2 è supportato nei principali browser e utilizzato in tutto il Web.
Di seguito sono riportati alcuni dei vantaggi offerti da http/2:
Quanto sopra è una panoramica di base delle caratteristiche del protocollo HTTP/2. Di seguito è una semplice illustrazione del protocollo HTTP.
Credito: Mozilla Developer Network https: // sviluppatore.Mozilla.org/en-us/docs/web/http/panoramica
Eventi SENT SENT
L'evento Server-Sent (SSES) è una tecnologia che consente al client di ricevere aggiornamenti da un server HTTP. Sebbene sia sempre stato possibile spingere gli aggiornamenti dal server al client, il client dovrebbe richiedere se esistono aggiornamenti sul server. Utilizzando SSE, gli aggiornamenti sono automatici.
Le SSE sono implementate utilizzando flussi di dati HTTP normali. Pertanto, le SSE sono limitate al pool di connessioni del client (browser) di 6 connessioni HTTP simultanee a un server. Tuttavia, non forniscono la funzionalità per rilevare un client abbandonato.
https: // html.spec.Whatwg.Org/Multipage/Server-Sent-Event.HTML#Server-Sent-Event
Puoi anche trovare risorse per il client SSE nei link forniti di seguito:
https: // github.com/mpetazzoni/sseclient
https: // github.com/btubbs/sseclient
Websockets vs. Http/2 vs. SSE
Ora andiamo all'argomento ed elenchiamo le differenze tra le tecnologie discusse.
WebSocket | Http/2 | SSE |
---|---|---|
Full-duplex | Mezzo duplex | Full-duplex |
Bidirezionale | È richiesta l'interazione da un client con uno specifico metodo HTTP | Unidirezionale |
Meno sopra la testa | Aggiunto sovraccarico a stretta di mano SSL | |
Il servizio è un'implementazione di base del protocollo | Supportato solo in HTTP/2 | La tecnologia di base |
Supportato dai principali browser | Supportato in tutti i browser | Non tutti i browser lo supportano. |
1024 Collegamenti paralleli | 6-8 Collegamenti paralleli | 6 connessioni parallele |
Bilanciamento del carico non standard | Bilanciamento del carico standard | Bilanciamento del carico standard |
Conclusione
Abbiamo superato tecnologie come WebSockets, come funzionano e la loro implementazione. Questo tutorial funge solo da base per le tecnologie menzionate. Considera le risorse esterne per saperne di più.