Websockets vs. Http/2 vs. SSE sammenlignet

Websockets vs. Http/2 vs. SSE sammenlignet
Det er tre primære teknologier eller funksjoner når det gjelder verden av data og kommunikasjonsprotokoller for serverklient: HTTP/2, SSE og WebSockets. Avhengig av ditt synspunkt og krav, kan en av disse teknologiene være konkurrenter eller allierte.

Denne opplæringen vil bryte ned hva disse teknologiene innebærer og hva hver og en av dem tilbyr. Dette vil hjelpe deg å forstå og ta et valg avhengig av funksjonene du leter etter.

MERK: Denne guiden er ikke en grunning på noen av teknologiene som er nevnt ovenfor. Det er ganske enkelt en oversikt over hva man kan tilby over den andre.

La oss komme i gang:

Websockets

WebSocket er en standardprotokoll som gir en vedvarende forbindelse mellom en server og en klient. Websockets er toveis. Dette betyr at en server og klient og sender og mottar data er i samme kanal. Det er en full-dupleks kommunikasjonsprotokoll implementert på TCP/IP-kontakten.

WebSockets hjelper til med å motvirke grensene for HTTP -protokollen.

For det første er HTTP -protokollen ikke toveis. Klienten ber om en spesifikk ressurs på serveren. Når serveren finner og sender ressursen til klienten, lukkes tilkoblingen. Det betyr på en veldig aktiv dataflyt som streamingtjeneste, det vil være for mange serverforespørsler.

I motsetning til HTTP, kan WebSockets opprettholde en forbindelse til enten klienten eller serveren avslutter den. Det fungerer ved først å lage et håndtrykk mellom klienten og serveren, etterfulgt av en oppgradering. Når den er etablert, er en strøm av data mellom serveren og klienten etablert.

Ovennevnte diagram illustrerer hvordan HTTP -protokoll fungerer sammenlignet med websockets.

MERK: Diagrammene ovenfor gir ikke en fullverdig arbeidskunnskap om verken HTTP- eller WebSocket-protokoller.

Http/2

HTTP/2 eller HTTP2 er den andre implementeringen av HTTP -nettverksprotokollen som brukes til å definere format og overføring av data. Hensikten med HTTP/2 er å forbedre ytelsen over HTTP ved å redusere latens, brukt ved å aktivere funksjoner som full forespørsel og respons, og minimere protokolloverhead via komprimering av overskriftsfiler.

HTTP/2 støttes i store nettlesere og brukes rundt på nettet.

Følgende er noen av fordelene som tilbys av HTTP/2:

  1. Bakoverkompatibel med HTTP/1, inkludert statuskoder, overskrifter og URI -er er reservert.
  2. Flere datastrømmer i en enkelt tilkobling via forespørsel multiplexing.
  3. Headerkomprimering, noe som forbedrer ytelsen betydelig.
  4. Oppgaveutførelse via binær protokoll i stedet for tekstkommandoer som forenkler kommandoapplikasjon.
  5. Server push som lar serveren sende tilleggsdata til den anmodende klienten selv om dataene ikke først er bedt om.
  6. Den fjerner funksjoner som domene sharding.

Ovennevnte er en grunnleggende oversikt over funksjonene i HTTP/2 -protokollen. Nedenfor er en enkel illustrasjon av HTTP -protokollen.

Kreditt: Mozilla Developer Network https: // utvikler.Mozilla.ORG/EN-US/DOCS/WEB/HTTP/OVERSIKT

Server-sente hendelser

Server-stent-arrangement (SSES) er en teknologi som lar klienten motta oppdateringer fra en HTTP-server. Selv om det alltid har vært mulig å skyve oppdateringer fra serveren til klienten, vil klienten måtte be om om det eksisterer noen oppdateringer på serveren. Ved hjelp av SSE -er er oppdateringer automatiske.

SSE -er implementeres ved hjelp av vanlige HTTP -datastrømmer. Derfor er SSE -er begrenset til klientens (nettleser) tilkoblingsbasseng på 6 samtidige HTTP -tilkoblinger til en server. De gir imidlertid ikke funksjonaliteten for å oppdage en droppet klient.

https: // html.spesifikasjon.hvawg.org/multipage/server-sent-events.HTML#server-sent-events

Du kan også finne ressurser for SSE -klient i koblingene nedenfor:

https: // github.com/mpetazzoni/sseclient

https: // github.com/bubbs/sseclient

Websockets vs. Http/2 vs. Sse

La oss nå komme til emnet og liste opp forskjellene mellom de diskuterte teknologiene.

Websocket Http/2 Sse
Full-dupleks Halv dupleks Full-dupleks
Toveis Samhandling fra en klient med en spesifikk HTTP -metode er nødvendig Ensrettet
Mindre overhead Lagt til overhead til SSL -håndtrykk
Service Push er en base implementering av protokollen Bare støttet i HTTP/2 Baseteknologien
Støttet av store nettlesere Støttet i alle nettlesere Ikke alle nettlesere støtter det.
1024 Parallelle tilkoblinger 6-8 parallelle tilkoblinger 6 parallelle tilkoblinger
Ikke-standard belastningsbalansering Standard belastningsbalansering Standard belastningsbalansering

Konklusjon

Vi har gått over teknologier som websockets, hvordan de fungerer og implementeringen deres. Denne opplæringen fungerer bare som et grunnlag for de nevnte teknologiene. Vurder eksterne ressurser for å lære mer.