WebSocket is een computercommunicatieprotocol dat full-duplex communicatiekanalen biedt via een enkele TCP-verbinding. Het WebSocket-protocol is in 2011 door de IETF gestandaardiseerd als RFC 6455 en de WebSocket-API in Web IDL wordt gestandaardiseerd door het W3C.
WebSocket verschilt van HTTP. Beide protocollen bevinden zich op laag 7 in het OSI-model en zijn afhankelijk van TCP op laag 4. Hoewel ze verschillend zijn, stelt RFC 6455 dat WebSocket "is ontworpen om te werken via HTTP-poorten 443 en 80 en om HTTP-proxy's en tussenpersonen te ondersteunen, "waardoor het compatibel is met het HTTP-protocol. Om compatibiliteit te bereiken, gebruikt de WebSocket-handshake de HTTP Upgrade-header om over te schakelen van het HTTP-protocol naar het WebSocket-protocol.
Het WebSocket-protocol maakt interactie mogelijk tussen een webbrowser (of andere clienttoepassing) en een webserver met minder overhead dan half-duplex-alternatieven zoals HTTP-polling, waardoor real-time gegevensoverdracht van en naar de server wordt vergemakkelijkt. Dit wordt mogelijk gemaakt door de server een gestandaardiseerde manier te bieden om inhoud naar de client te verzenden zonder eerst door de client te worden verzocht, en door toe te staan dat berichten heen en weer worden gestuurd terwijl de verbinding open blijft. Op deze manier kan er een lopend gesprek in twee richtingen plaatsvinden tussen de client en de server. De communicatie verloopt meestal via TCP-poortnummer 443 (of 80 in het geval van onbeveiligde verbindingen), wat gunstig is voor omgevingen die niet-web-internetverbindingen blokkeren met behulp van een firewall. Vergelijkbare bidirectionele browser-servercommunicatie is bereikt op niet-gestandaardiseerde manieren met behulp van noodtechnologieën zoals Comet.