HTTP i WebSocket jsou komunikační protokoly používané v komunikaci klient-server.
HTTP protokol: HTTP je jednosměrný, kde klient odešle požadavek a server odešle odpověď. Vezměme si příklad, když uživatel odešle požadavek na server, tento požadavek má podobu HTTP nebo HTTPS, po obdržení požadavku server odešle odpověď klientovi, každý požadavek je spojen s odpovídající odpovědí, po odeslání odpovědi spojení se uzavře, každý HTTP nebo HTTPS požadavek pokaždé naváže nové spojení se serverem a po obdržení odpovědi se spojení samo ukončí.
HTTP je bezstavový protokol, který běží nad TCP, což je protokol orientovaný na spojení, který zaručuje doručení přenosu datových paketů pomocí třícestných metod handshaking a znovu přenáší ztracené pakety.
HTTP může běžet nad jakýmkoli spolehlivým protokolem orientovaným na připojení, jako je TCP, SCTP. Když klient odešle HTTP požadavek na server, je mezi klientem a serverem otevřené TCP spojení a po obdržení odpovědi se TCP spojení ukončí, každý HTTP požadavek otevře samostatné TCP spojení se serverem, např. pokud klient odešle na server 10 požadavků, otevře se 10 samostatných TCP spojení. a zavřete se po obdržení odpovědi/nouzové odpovědi.
Informace o zprávě HTTP zakódované v ASCII, každá zpráva s požadavkem HTTP složená verze protokolu HTTP (HTTP/1.1, HTTP/2), metody HTTP (GET/POST atd.), HTTP hlavičky (typ obsahu, délka obsahu), informace o hostiteli atd. a tělo, které obsahuje aktuální zprávu, která se přenáší na server. Velikost HTTP hlaviček se pohybovala od 200 bajtů do 2 kB, běžná velikost hlavičky HTTP je 700-800 bajtů. Když webová aplikace používá více souborů cookie a dalších nástrojů na straně klienta, které rozšiřují funkce úložiště agenta, snižuje se užitečné zatížení hlavičky HTTP.

WebSocket: WebSocket je obousměrný, plně duplexní protokol, který se používá ve stejném scénáři komunikace klient-server, na rozdíl od HTTP začíná od ws:// nebo wss:// . Jedná se o stavový protokol, což znamená, že spojení mezi klientem a serverem zůstane aktivní, dokud nebude ukončeno kteroukoli stranou (klientem nebo serverem). Po ukončení spojení klientem a serverem je spojení ukončeno z obou konců.
parciální deriváty v latexu
Vezměme si příklad komunikace klient-server, existuje klient, což je webový prohlížeč a server, kdykoli zahájíme spojení mezi klientem a serverem, klient-server provede handshaking a rozhodne se vytvořit nové spojení a toto spojení zůstane naživu, dokud je některý z nich neukončí. Když je spojení navázáno a aktivní, komunikace probíhá pomocí stejného spojovacího kanálu, dokud není ukončeno.
Takto se po navázání spojení klient-server rozhodne klient-server o novém připojení, aby bylo zachováno, toto nové připojení bude známé jako WebSocket. Jakmile je navázání komunikačního spojení a spojení otevřeno, bude výměna zpráv probíhat v obousměrném režimu, dokud spojení mezi klient-server přetrvává. Pokud některý z nich (klient-server) zemře nebo se rozhodne ukončit spojení je uzavřeno oběma stranami. Způsob, jakým funguje socket, se mírně liší od toho, jak funguje HTTP, stavový kód 101 označuje přepínací protokol ve WebSocket.

Kdy lze webovou zásuvku použít:
- Webová aplikace v reálném čase: Webová aplikace v reálném čase používá webový soket k zobrazení dat na straně klienta, která jsou nepřetržitě odesílána backendovým serverem. Ve WebSocket jsou data neustále posílána/přenášena do stejného připojení, které je již otevřené, proto je WebSocket rychlejší a zlepšuje výkon aplikace.
Pro např. na obchodní webové stránce nebo obchodování s bitcoiny, pro zobrazení kolísání cen a pohybu jsou data nepřetržitě posílána backendovým serverem na klientský konec pomocí kanálu WebSocket.
Herní aplikace: V herní aplikaci se můžete zaměřit na to, data jsou nepřetržitě přijímána serverem a bez obnovení uživatelského rozhraní se projeví na obrazovce, uživatelské rozhraní se automaticky obnoví, aniž by bylo třeba navázat nové připojení, takže je velmi užitečné v herní aplikaci.
Chatovací aplikace: Chatovací aplikace používají WebSockets k navázání spojení pouze jednou pro výměnu, publikování a vysílání zprávy mezi předplatiteli. Opětovně používá stejné připojení WebSocket pro odesílání a přijímání zprávy a pro přenos zpráv jedna na jednu.
Kdy nepoužívat WebSocket: WebSocket lze použít, pokud chceme jakékoli aktualizované nebo nepřetržité toky dat v reálném čase, které jsou přenášeny po síti. Pokud chceme načíst stará data nebo chceme data získat pouze jednou, abychom je mohli zpracovat pomocí aplikace, kterou bychom měli použít HTTP protokol , stará data, která nejsou vyžadována příliš často nebo jsou načítána pouze jednou, mohou být dotazována jednoduchým HTTP požadavkem, takže v tomto scénáři je lepší nepoužívat WebSocket.
Poznámka: Webové služby RESTful postačují k získání dat ze serveru, pokud data načítáme pouze jednou.
Rozdíly mezi připojením HTTP a WebSocket:
| Připojení WebSocket | Připojení HTTP |
|---|---|
| WebSocket je obousměrný komunikační protokol, který může odesílat data z klienta na server nebo ze serveru na klienta opětovným použitím vytvořeného připojovacího kanálu. Spojení zůstává aktivní, dokud jej neukončí klient nebo server. | Protokol HTTP je jednosměrný protokol, který funguje nad protokolem TCP, což je protokol transportní vrstvy orientovaný na spojení, spojení můžeme vytvořit pomocí metod požadavku HTTP poté, co se uzavře odpověď HTTP připojení. |
| Téměř všechny aplikace v reálném čase, jako jsou (obchodování, monitorování, oznamování) služby, používají WebSocket k přijímání dat na jediném komunikačním kanálu. | Jednoduchá aplikace RESTful používá protokol HTTP, který je bezstavový. |
| Všechny často aktualizované aplikace používaly WebSocket, protože je rychlejší než připojení HTTP. | Když nechceme zachovat připojení po určitou dobu nebo znovu použít připojení pro přenos dat; Připojení HTTP je pomalejší než WebSockets. |
Poznámka: V závislosti na vašem projektu si musíte vybrat, kde to bude WebSocket nebo HTTP Connection.