HTTP en WebSocket zijn beide communicatieprotocollen die worden gebruikt bij client-server-communicatie.
HTTP-protocol: HTTP is unidirectioneel waarbij de client het verzoek verzendt en de server het antwoord verzendt. Laten we een voorbeeld nemen: wanneer een gebruiker een verzoek naar de server verzendt, gaat dit verzoek in de vorm van HTTP of HTTPS. Nadat een verzoekserver het antwoord naar de client heeft ontvangen, wordt elk verzoek geassocieerd met een overeenkomstig antwoord, na het verzenden van het antwoord de de verbinding wordt verbroken, elk HTTP- of HTTPS-verzoek brengt elke keer een nieuwe verbinding met de server tot stand en nadat het antwoord is ontvangen, wordt de verbinding vanzelf verbroken.
HTTP is een staatloos protocol dat bovenop TCP draait, een verbindingsgericht protocol dat de levering van datapakketoverdracht garandeert met behulp van de drieweg-handshake-methoden en de verloren pakketten opnieuw verzendt.
HTTP kan bovenop elk betrouwbaar verbindingsgericht protocol draaien, zoals TCP en SCTP. Wanneer een client een HTTP-verzoek naar de server verzendt, is er een TCP-verbinding geopend tussen de client en de server en nadat het antwoord is ontvangen, wordt de TCP-verbinding verbroken. Elk HTTP-verzoek opent een afzonderlijke TCP-verbinding met de server, bijvoorbeeld voor internet. als de client 10 verzoeken naar de server stuurt, worden de 10 afzonderlijke TCP-verbindingen geopend. en sluit af nadat u het antwoord/de terugval heeft gekregen.
HTTP-berichtinformatie gecodeerd in ASCII, elk HTTP-verzoekbericht samengesteld HTTP-protocolversie (HTTP/1.1, HTTP/2), HTTP-methoden (GET/POST, enz.), HTTP-headers (inhoudstype, inhoudslengte), hostinformatie, enz. . en de hoofdtekst die het daadwerkelijke bericht bevat dat naar de server wordt verzonden. HTTP-headers varieerden van 200 bytes tot 2 KB in grootte, de gebruikelijke grootte van de HTTP-header is 700-800 bytes. Wanneer een webapplicatie meer cookies en andere tools aan de clientzijde gebruikt die de opslagfuncties van de agent uitbreiden, wordt de payload van de HTTP-header verminderd.

WebSocket: WebSocket is bidirectioneel, een full-duplex protocol dat wordt gebruikt in hetzelfde scenario van client-server-communicatie. In tegenstelling tot HTTP begint het vanaf ws:// of wss:// . Het is een stateful protocol, wat betekent dat de verbinding tussen client en server in stand blijft totdat deze door een van de partijen (client of server) wordt beëindigd. Nadat de verbinding door een van de client en de server is verbroken, wordt de verbinding aan beide kanten beëindigd.
voordelen van instagram voor persoonlijk gebruik
Laten we een voorbeeld nemen van client-server-communicatie: de client is een webbrowser en een server. Telkens wanneer we de verbinding tussen client en server tot stand brengen, voert de client-server de handshake uit en besluit een nieuwe verbinding tot stand te brengen en deze verbinding zal in leven blijven totdat deze door een van hen wordt beëindigd. Wanneer de verbinding tot stand is gebracht en actief is, vindt de communicatie plaats via hetzelfde verbindingskanaal totdat deze wordt beëindigd.
Dit is hoe de client-server na client-server-handshake beslist over een nieuwe verbinding om deze in leven te houden. Deze nieuwe verbinding zal bekend staan als WebSocket. Zodra de communicatieverbinding tot stand is gebracht en de verbinding is geopend, vindt de berichtenuitwisseling plaats in bidirectionele modus totdat de verbinding tussen client en server blijft bestaan. Als een van hen (client-server) sterft of besluit de verbinding te verbreken, wordt de verbinding door beide partijen verbroken. De manier waarop socket werkt verschilt enigszins van hoe HTTP werkt, de statuscode 101 geeft het schakelprotocol in WebSocket aan.

Wanneer kan een websocket worden gebruikt:
- Realtime webapplicatie: Realtime webapplicatie maakt gebruik van een websocket om de gegevens aan de clientzijde weer te geven, die continu door de backend-server worden verzonden. In WebSocket worden gegevens continu gepusht/verzonden naar dezelfde verbinding die al open is. Daarom is WebSocket sneller en verbetert het de applicatieprestaties.
Voor b.v. in een handelswebsite of bitcoin-handel, voor het weergeven van de prijsschommelingen en bewegingsgegevens worden continu door de backend-server naar de client gestuurd met behulp van een WebSocket-kanaal.
Gaming-applicatie: In een gaming-applicatie zou je je daarop kunnen concentreren, gegevens worden continu ontvangen door de server, en zonder de gebruikersinterface te vernieuwen, wordt dit van kracht op het scherm, de gebruikersinterface wordt automatisch vernieuwd zonder zelfs maar een nieuwe verbinding tot stand te brengen, dus het is zeer nuttig in een gaming-toepassing.
Chatapplicatie: Chatapplicaties gebruiken WebSockets om de verbinding slechts één keer tot stand te brengen voor het uitwisselen, publiceren en uitzenden van het bericht onder de abonnees. Het gebruikt dezelfde WebSocket-verbinding opnieuw, voor het verzenden en ontvangen van het bericht en voor de één-op-één overdracht van berichten.
Wanneer mag u WebSocket niet gebruiken: WebSocket kan worden gebruikt als we realtime bijgewerkte of continue gegevensstromen willen die via het netwerk worden verzonden. Als we oude gegevens willen ophalen, of de gegevens slechts één keer willen ophalen om deze met een applicatie te verwerken, moeten we daarvoor kiezen HTTP-protocol , oude gegevens die niet vaak nodig zijn of slechts één keer worden opgehaald, kunnen worden opgevraagd via het eenvoudige HTTP-verzoek, dus in dit scenario is het beter om WebSocket niet te gebruiken.
Opmerking: RESTful webservices zijn voldoende om de gegevens van de server te halen als we de gegevens slechts één keer laden.
Verschillen tussen HTTP- en WebSocket-verbinding:
| WebSocket-verbinding | HTTP-verbinding |
|---|---|
| WebSocket is een bidirectioneel communicatieprotocol dat de gegevens van de client naar de server of van de server naar de client kan verzenden door het bestaande verbindingskanaal opnieuw te gebruiken. De verbinding blijft actief totdat deze door de client of de server wordt beëindigd. | Het HTTP-protocol is een unidirectioneel protocol dat werkt bovenop het TCP-protocol, een verbindingsgericht transportlaagprotocol. We kunnen de verbinding tot stand brengen door HTTP-verzoekmethoden te gebruiken nadat de reactie is ontvangen. De HTTP-verbinding wordt gesloten. |
| Bijna alle real-time applicaties zoals (handels-, monitoring-, notificatie-)diensten gebruiken WebSocket om de gegevens op één enkel communicatiekanaal te ontvangen. | Eenvoudige RESTful-applicatie maakt gebruik van het HTTP-protocol dat staatloos is. |
| Alle regelmatig bijgewerkte applicaties gebruikten WebSocket omdat het sneller is dan HTTP-verbinding. | Wanneer we een verbinding voor een bepaalde tijd niet willen behouden of de verbinding willen hergebruiken voor het verzenden van gegevens; Een HTTP-verbinding is langzamer dan WebSockets. |
Opmerking: Afhankelijk van uw project moet u kiezen waar het een WebSocket- of HTTP-verbinding zal zijn.