HTTP og WebSocket er begge kommunikasjonsprotokoller som brukes i klient-server-kommunikasjon.
HTTP-protokoll: HTTP er enveis hvor klienten sender forespørselen og serveren sender svaret. La oss ta et eksempel når en bruker sender en forespørsel til serveren denne forespørselen går i form av HTTP eller HTTPS, etter å ha mottatt en forespørselsserver send svaret til klienten, er hver forespørsel knyttet til et tilsvarende svar, etter å ha sendt svaret tilkoblingen blir stengt, hver HTTP- eller HTTPS-forespørsel etablerer den nye tilkoblingen til serveren hver gang, og etter å ha fått svaret blir tilkoblingen avsluttet av seg selv.
HTTP er en statsløs protokoll som kjører på toppen av TCP, som er en tilkoblingsorientert protokoll, den garanterer levering av datapakkeoverføring ved hjelp av treveis handshaking-metodene og sender de tapte pakkene på nytt.
HTTP kan kjøre på toppen av enhver pålitelig tilkoblingsorientert protokoll som TCP, SCTP. Når en klient sender en HTTP-forespørsel til serveren, er en TCP-forbindelse åpen mellom klienten og serveren og etter å ha fått svaret blir TCP-forbindelsen avsluttet, åpner hver HTTP-forespørsel en egen TCP-forbindelse til serveren, for f.eks. hvis klienten sender 10 forespørsler til serveren vil de 10 separate TCP-tilkoblingene åpnes. og lukkes etter å ha fått responsen/tilbakeslag.
HTTP-meldingsinformasjon kodet i ASCII, hver HTTP-forespørselsmelding består av HTTP-protokollversjon (HTTP/1.1, HTTP/2), HTTP-metoder (GET/POST, etc.), HTTP-hoder (innholdstype, innholdslengde), vertsinformasjon osv. . og brødteksten som inneholder selve meldingen som blir overført til serveren. HTTP-header varierte fra 200 byte til 2 KB i størrelse, den vanlige størrelsen på HTTP-header er 700-800 byte. Når en nettapplikasjon bruker flere informasjonskapsler og andre verktøy på klientsiden som utvider lagringsfunksjonene til agenten, reduseres HTTP-headerens nyttelast.

WebSocket: WebSocket er toveis, en full-dupleks protokoll som brukes i samme scenario for klient-server kommunikasjon, i motsetning til HTTP starter den fra ws:// eller wss:// . Det er en stateful protokoll, som betyr at forbindelsen mellom klient og server vil holde seg i live til den blir avsluttet av en av partene (klient eller server). Etter å ha lukket tilkoblingen av en av klienten og serveren, avsluttes tilkoblingen fra begge ender.
kali linux terminal
La oss ta et eksempel på klient-server-kommunikasjon, det er klienten som er en nettleser og en server, hver gang vi starter forbindelsen mellom klient og server, gjorde klient-serveren håndtrykket og bestemmer seg for å opprette en ny tilkobling og denne tilkoblingen vil holde seg i live til de blir avsluttet av noen av dem. Når forbindelsen er etablert og i live, foregår kommunikasjonen ved hjelp av samme forbindelseskanal til den avsluttes.
Dette er hvordan etter klient-server-handshaking, klient-serveren bestemmer seg for en ny tilkobling for å holde den i live, denne nye tilkoblingen vil bli kjent som WebSocket. Når etableringen av kommunikasjonsforbindelsen og forbindelsen er åpnet, vil meldingsutveksling finne sted i toveismodus inntil forbindelsen vedvarer mellom klient-server. Hvis noen av dem (klient-server) dør eller bestemmer seg for å stenge, blir forbindelsen stengt av begge parter. Måten socket fungerer på er litt forskjellig fra hvordan HTTP fungerer, statuskoden 101 angir bytteprotokollen i WebSocket.

Når kan en web-socket brukes:
- Nettapplikasjon i sanntid: Nettapplikasjon i sanntid bruker en nettsocket for å vise dataene i klientenden, som kontinuerlig sendes av backend-serveren. I WebSocket blir data kontinuerlig pushet/overført til samme forbindelse som allerede er åpen, det er derfor WebSocket er raskere og forbedrer applikasjonsytelsen.
For f.eks. i et handelsnettsted eller bitcoin-handel, for å vise prissvingninger og bevegelsesdata blir kontinuerlig presset av backend-serveren til klientenden ved å bruke en WebSocket-kanal.
Spillapplikasjon: I en spillapplikasjon kan du fokusere på det, data mottas kontinuerlig av serveren, og uten å oppdatere brukergrensesnittet, vil det tre i kraft på skjermen, brukergrensesnittet oppdateres automatisk uten engang å etablere den nye tilkoblingen, så det er veldig nyttig i en spillapplikasjon.
Chat-applikasjon: Chat-applikasjoner bruker WebSockets til å opprette forbindelsen bare én gang for utveksling, publisering og kringkasting av meldingen blant abonnentene. Den gjenbruker den samme WebSocket-tilkoblingen, for å sende og motta meldingen og for en-til-en meldingsoverføring.
Når du ikke skal bruke WebSocket: WebSocket kan brukes hvis vi ønsker noen sanntids oppdaterte eller kontinuerlige strømmer av data som blir overført over nettverket. Hvis vi ønsker å hente gamle data, eller ønsker å få dataene bare én gang for å behandle dem med en applikasjon bør vi gå med HTTP-protokoll , gamle data som ikke kreves veldig ofte eller bare hentes én gang, kan søkes etter den enkle HTTP-forespørselen, så i dette scenariet er det bedre å ikke bruke WebSocket.
Merk: RESTful webtjenester er tilstrekkelig for å hente dataene fra serveren hvis vi bare laster dataene én gang.
Forskjeller mellom HTTP og WebSocket-tilkobling:
| WebSocket-tilkobling | HTTP-tilkobling |
|---|---|
| WebSocket er en toveis kommunikasjonsprotokoll som kan sende data fra klienten til serveren eller fra serveren til klienten ved å gjenbruke den etablerte tilkoblingskanalen. Tilkoblingen holdes i live til den avsluttes av enten klienten eller serveren. | HTTP-protokollen er en ensrettet protokoll som fungerer på toppen av TCP-protokollen som er en tilkoblingsorientert transportlagsprotokoll, vi kan opprette forbindelsen ved å bruke HTTP-forespørselsmetoder etter at svaret HTTP-tilkoblingen blir stengt. |
| Nesten alle sanntidsapplikasjoner som (handel, overvåking, varsling) tjenester bruker WebSocket for å motta dataene på en enkelt kommunikasjonskanal. | Enkel RESTful-applikasjon bruker HTTP-protokoll som er statsløs. |
| Alle de ofte oppdaterte applikasjonene brukte WebSocket fordi det er raskere enn HTTP-tilkobling. | Når vi ikke ønsker å beholde en forbindelse i en bestemt tidsperiode eller gjenbruke forbindelsen for å overføre data; En HTTP-tilkobling er tregere enn WebSockets. |
Merk: Avhengig av prosjektet ditt må du velge hvor det skal være WebSocket eller HTTP Connection.