HTTP in WebSocket sta komunikacijska protokola, ki se uporabljata v komunikaciji med odjemalcem in strežnikom.
protokol HTTP: HTTP je enosmeren, kjer odjemalec pošlje zahtevo, strežnik pa pošlje odgovor. Vzemimo primer, ko uporabnik pošlje zahtevo strežniku, gre ta zahteva v obliki HTTP ali HTTPS, po prejemu zahteve strežnik pošlje odgovor odjemalcu, vsaka zahteva je povezana z ustreznim odgovorom, po pošiljanju odgovora povezava prekine, vsaka zahteva HTTP ali HTTPS vsakič vzpostavi novo povezavo s strežnikom in po prejemu odgovora se povezava sama prekine.
HTTP je protokol brez stanja, ki deluje na vrhu TCP, ki je povezovalno usmerjen protokol, zagotavlja dostavo prenosa podatkovnih paketov z uporabo metod tristranskega rokovanja in ponovno prenaša izgubljene pakete.
HTTP lahko deluje poleg katerega koli zanesljivega povezovalno usmerjenega protokola, kot sta TCP, SCTP. Ko odjemalec strežniku pošlje zahtevo HTTP, se med odjemalcem in strežnikom vzpostavi povezava TCP in po prejemu odgovora se povezava TCP prekine, vsaka zahteva HTTP odpre ločeno povezavo TCP s strežnikom, npr. če odjemalec strežniku pošlje 10 zahtev, se bo odprlo 10 ločenih povezav TCP. in se zapre po prejetju odgovora/nadomestne možnosti.
Podatki o sporočilu HTTP, kodirani v ASCII, vsako sporočilo zahteve HTTP sestavlja različico protokola HTTP (HTTP/1.1, HTTP/2), metode HTTP (GET/POST itd.), glave HTTP (vrsta vsebine, dolžina vsebine), informacije o gostitelju itd. . in telo, ki vsebuje dejansko sporočilo, ki se prenaša na strežnik. Glave HTTP so bile velike od 200 bajtov do 2 KB, običajna velikost glave HTTP je 700–800 bajtov. Ko spletna aplikacija uporablja več piškotkov in drugih orodij na strani odjemalca, ki razširijo funkcije shranjevanja agenta, zmanjša obremenitev glave HTTP.

WebSocket: WebSocket je dvosmerni protokol s polnim dupleksom, ki se uporablja v istem scenariju komunikacije med odjemalcem in strežnikom, za razliko od HTTP pa se začne ws:// oz wss:// . To je protokol s spremljanjem stanja, kar pomeni, da bo povezava med odjemalcem in strežnikom ostala živa, dokler je katera koli stran (odjemalec ali strežnik) ne prekine. Po prekinitvi povezave s strani odjemalca in strežnika se povezava prekine na obeh koncih.
zimsko narečje
Vzemimo primer komunikacije med odjemalcem in strežnikom, obstajata odjemalec, ki je spletni brskalnik in strežnik, kadar koli vzpostavimo povezavo med odjemalcem in strežnikom, odjemalec in strežnik opravi rokovanje in se odloči ustvariti novo povezavo in to povezavo bo ostal pri življenju, dokler ga kateri od njih ne prekine. Ko je povezava vzpostavljena in živa, komunikacija poteka po istem povezovalnem kanalu, dokler ni prekinjena.
Tako se po rokovanju odjemalec-strežnik odjemalec-strežnik odloči za novo povezavo, ki jo ohranja pri življenju, ta nova povezava bo znana kot WebSocket. Ko se vzpostavi komunikacijska povezava in povezava odpre, bo izmenjava sporočil potekala v dvosmernem načinu, dokler se povezava med odjemalcem in strežnikom ne vzpostavi. Če kdo od njiju (odjemalec-strežnik) umre ali se odloči prekiniti povezavo, prekineta obe strani. Način delovanja vtičnice se nekoliko razlikuje od delovanja HTTP, statusna koda 101 označuje preklopni protokol v WebSocket.

Kdaj se lahko uporablja spletna vtičnica:
- Spletna aplikacija v realnem času: Spletna aplikacija v realnem času uporablja spletno vtičnico za prikaz podatkov na koncu odjemalca, ki jih nenehno pošilja zaledni strežnik. V WebSocket se podatki nenehno potiskajo/prenašajo v isto povezavo, ki je že odprta, zato je WebSocket hitrejši in izboljšuje delovanje aplikacije.
Za npr. na spletnem mestu za trgovanje ali pri trgovanju z bitcoini za prikaz nihanja cene in podatke o gibanju nenehno potiska zaledni strežnik do odjemalca z uporabo kanala WebSocket.
Aplikacija za igranje iger: v aplikaciji za igranje iger se lahko osredotočite na to, da strežnik neprekinjeno prejema podatke in brez osvežitve uporabniškega vmesnika začne veljati na zaslonu, uporabniški vmesnik se samodejno osveži, ne da bi sploh vzpostavili novo povezavo, zato je zelo koristen v igričarski aplikaciji.
Aplikacija za klepet: aplikacije za klepet uporabljajo WebSockets za vzpostavitev povezave samo enkrat za izmenjavo, objavo in oddajanje sporočila med naročniki. Ponovno uporablja isto povezavo WebSocket za pošiljanje in prejemanje sporočil ter za prenos sporočil ena na ena.
Kdaj ne uporabljati WebSocketa: WebSocket lahko uporabimo, če želimo posodobljene ali neprekinjene tokove podatkov v realnem času, ki se prenašajo po omrežju. Če želimo pridobiti stare podatke ali želimo podatke pridobiti samo enkrat, da jih obdelamo z aplikacijo, ki jo moramo uporabiti protokol HTTP , stare podatke, ki niso potrebni zelo pogosto ali so pridobljeni samo enkrat, je mogoče poizvedovati s preprosto zahtevo HTTP, zato je v tem scenariju bolje, da ne uporabljate WebSocket.
Opomba: Spletne storitve RESTful zadoščajo za pridobivanje podatkov s strežnika, če podatke nalagamo le enkrat.
Razlike med povezavo HTTP in WebSocket:
| Povezava WebSocket | HTTP povezava |
|---|---|
| WebSocket je dvosmerni komunikacijski protokol, ki lahko pošilja podatke od odjemalca do strežnika ali od strežnika do odjemalca s ponovno uporabo vzpostavljenega kanala povezave. Povezava ostane živa, dokler je ne prekine odjemalec ali strežnik. | Protokol HTTP je enosmerni protokol, ki deluje poleg protokola TCP, ki je povezovalno usmerjen protokol transportnega sloja. Po prejemu odgovora lahko povezavo HTTP ustvarimo z uporabo metod zahteve HTTP. |
| Skoraj vse aplikacije v realnem času, kot so storitve (trgovanje, spremljanje, obveščanje), uporabljajo WebSocket za prejemanje podatkov na enem samem komunikacijskem kanalu. | Preprosta aplikacija RESTful uporablja protokol HTTP, ki je brez stanja. |
| Vse pogosto posodobljene aplikacije so uporabljale WebSocket, ker je hitrejši od povezave HTTP. | Ko ne želimo obdržati povezave določen čas ali ponovno uporabiti povezave za prenos podatkov; Povezava HTTP je počasnejša od povezave WebSockets. |
Opomba: Odvisno od vašega projekta morate izbrati, kje bo povezava WebSocket ali HTTP.