HTTP og WebSocket er begge kommunikationsprotokoller, der bruges i klient-server-kommunikation.
HTTP protokol: HTTP er ensrettet, hvor klienten sender anmodningen, og serveren sender svaret. Lad os tage et eksempel, når en bruger sender en anmodning til serveren, denne anmodning går i form af HTTP eller HTTPS, efter at have modtaget en anmodningsserver, send svaret til klienten, hver anmodning er forbundet med et tilsvarende svar, efter at have sendt svaret forbindelse lukkes, hver HTTP- eller HTTPS-anmodning etablerer den nye forbindelse til serveren hver gang, og efter at have modtaget svaret, bliver forbindelsen afbrudt af sig selv.
HTTP er en statsløs protokol, der kører oven på TCP, som er en forbindelsesorienteret protokol, den garanterer levering af datapakkeoverførsel ved hjælp af trevejs-handshaking-metoderne og gentransmitterer de tabte pakker.
HTTP kan køre oven på enhver pålidelig forbindelsesorienteret protokol såsom TCP, SCTP. Når en klient sender en HTTP-anmodning til serveren, er en TCP-forbindelse åben mellem klienten og serveren og efter at have fået svaret bliver TCP-forbindelsen afsluttet, åbner hver HTTP-anmodning en separat TCP-forbindelse til serveren, for f.eks. hvis klienten sender 10 anmodninger til serveren, vil de 10 separate TCP-forbindelser blive åbnet. og bliv lukket efter at have fået svaret/faldback.
HTTP-meddelelsesinformation kodet i ASCII, hver HTTP-anmodningsmeddelelse består af HTTP-protokolversion (HTTP/1.1, HTTP/2), HTTP-metoder (GET/POST osv.), HTTP-headere (indholdstype, indholdslængde), værtsinformation osv. . og brødteksten, som indeholder den faktiske besked, som bliver overført til serveren. HTTP-headere varierede fra 200 bytes til 2 KB i størrelse, den almindelige størrelse på HTTP-header er 700-800 bytes. Når en webapplikation bruger flere cookies og andre værktøjer på klientsiden, som udvider agentens lagerfunktioner, reducerer det HTTP-headerens nyttelast.

WebSocket: WebSocket er tovejs, en fuld-dupleksprotokol, der bruges i det samme scenarie med klient-server-kommunikation, i modsætning til HTTP starter den fra ws:// eller wss:// . Det er en stateful protokol, hvilket betyder, at forbindelsen mellem klient og server vil holde sig i live, indtil den afsluttes af en af parterne (klient eller server). Efter lukning af forbindelsen af en af klienten og serveren, afbrydes forbindelsen fra begge ender.
streng ti int
Lad os tage et eksempel på klient-server-kommunikation, der er klienten, som er en webbrowser og en server, hver gang vi starter forbindelsen mellem klient og server, lavede klient-serveren håndtrykket og besluttede at oprette en ny forbindelse og denne forbindelse vil holde sig i live, indtil de bliver opsagt af nogen af dem. Når forbindelsen er etableret og i live, foregår kommunikationen ved hjælp af den samme forbindelseskanal, indtil den afsluttes.
Det er sådan, efter klient-server-håndtryk, klient-serveren beslutter sig for en ny forbindelse for at holde den i live, denne nye forbindelse vil blive kendt som WebSocket. Når etableringen af kommunikationsforbindelsen og forbindelsen er åbnet, vil beskedudveksling finde sted i tovejstilstand, indtil forbindelsen fortsætter mellem klient-server. Hvis nogen af dem (klient-server) dør eller beslutter at lukke, lukkes forbindelsen af begge parter. Måden, hvorpå socket fungerer, er lidt forskellig fra, hvordan HTTP fungerer, statuskoden 101 angiver switching-protokollen i WebSocket.

Hvornår kan en web-socket bruges:
- Webapplikation i realtid: Webapplikation i realtid bruger en web-socket til at vise dataene i klientenden, som løbende sendes af backend-serveren. I WebSocket bliver data løbende pushet/transmitteret til den samme forbindelse, som allerede er åben, derfor er WebSocket hurtigere og forbedrer applikationens ydeevne.
For f.eks. i et handelswebsted eller bitcoin-handel, til visning af prisudsving og bevægelsesdata bliver kontinuerligt skubbet af backend-serveren til klientenden ved hjælp af en WebSocket-kanal.
Gaming-applikation: I en Gaming-applikation kan du fokusere på, at data løbende modtages af serveren, og uden at opdatere brugergrænsefladen, vil det træde i kraft på skærmen, brugergrænsefladen bliver automatisk opdateret uden selv at etablere den nye forbindelse, så det er meget nyttigt i en spilapplikation.
Chatapplikation: Chatapplikationer bruger WebSockets til kun at etablere forbindelsen én gang til udveksling, publicering og udsendelse af beskeden blandt abonnenterne. Den genbruger den samme WebSocket-forbindelse til at sende og modtage beskeden og til en-til-en-meddelelsesoverførsel.
Hvornår skal du ikke bruge WebSocket: WebSocket kan bruges, hvis vi ønsker opdaterede eller kontinuerlige datastrømme i realtid, der sendes over netværket. Hvis vi ønsker at hente gamle data, eller ønsker at få dataene kun én gang for at behandle dem med en applikation, bør vi gå med HTTP protokol , gamle data, som ikke kræves meget ofte eller kun hentes én gang, kan forespørges ved hjælp af den simple HTTP-anmodning, så i dette scenarie er det bedre ikke at bruge WebSocket.
Bemærk: RESTful webtjenester er tilstrækkelige til at hente dataene fra serveren, hvis vi kun indlæser dataene én gang.
Forskelle mellem HTTP og WebSocket-forbindelse:
| WebSocket-forbindelse | HTTP-forbindelse |
|---|---|
| WebSocket er en tovejskommunikationsprotokol, der kan sende data fra klienten til serveren eller fra serveren til klienten ved at genbruge den etablerede forbindelseskanal. Forbindelsen holdes i live, indtil den afsluttes af enten klienten eller serveren. | HTTP-protokollen er en ensrettet protokol, der fungerer oven på TCP-protokollen, som er en forbindelsesorienteret transportlagsprotokol, vi kan oprette forbindelsen ved at bruge HTTP-anmodningsmetoder efter at have fået svaret, HTTP-forbindelsen bliver lukket. |
| Næsten alle realtidsapplikationer som (handel, overvågning, notifikation) tjenester bruger WebSocket til at modtage data på en enkelt kommunikationskanal. | Simpel RESTful-applikation bruger HTTP-protokol, som er statsløs. |
| Alle de ofte opdaterede applikationer brugte WebSocket, fordi det er hurtigere end HTTP-forbindelse. | Når vi ikke ønsker at beholde en forbindelse i et bestemt tidsrum eller genbruge forbindelsen til at overføre data; En HTTP-forbindelse er langsommere end WebSockets. |
Bemærk: Afhængigt af dit projekt skal du vælge, hvor det vil være WebSocket eller HTTP Connection.