WebSocket is een communicatieprotocol dat een permanente, bidirectionele verbinding biedt tussen client en server over één TCP-verbinding. In tegenstelling tot HTTP — waarbij de client steeds een nieuw verzoek stuurt — kunnen bij WebSocket zowel client als server op elk moment data sturen.
| HTTP | WebSocket | |
|---|---|---|
| Richting | Client stuurt, server antwoordt | Beide kanten kunnen sturen |
| Verbinding | Nieuw per verzoek | Persistent |
| Overhead | Hoog (headers elke keer) | Laag na handshake |
| Gebruik | Webpagina's, API's | Chat, live updates, gaming |
Een WebSocket-verbinding begint als een normale HTTP-verbinding en wordt daarna geüpgraded:
GET /chat HTTP/1.1
Upgrade: websocket
Connection: Upgrade