WebSockets
O WebSocket é um protocolo padrão capaz de fornecer conexão persistente entre um servidor e um cliente. Websockets são bidirecionais, o que significa um servidor e cliente e enviar e receber dados no mesmo canal, protocolo de comunicação duplex full-duplex que é implementado no soquete TCP/IP.
Os websockets foram construídos para combater os limites do protocolo HTTP.
Primeiro, no protocolo HTTP, não é bidirecional. O cliente solicita um recurso específico no servidor, depois que o servidor encontra e envia o recurso para o cliente, a conexão é fechada. Isso significa que, para um fluxo de dados muito ativo, como serviço de streaming, haverá muitas solicitações no servidor.
Ao contrário do HTTP, os websockets podem manter uma conexão até que o cliente ou o servidor. Funciona primeiro criando um aperto de mão entre o cliente e o servidor e depois seguido por um cabeçalho de atualização. Uma vez estabelecido, um fluxo de dados entre o servidor e o cliente também é estabelecido.
O diagrama acima ilustra como o protocolo HTTP funciona em comparação com os websockets.
Nota: Os diagramas acima não dão um trabalho completo de protocolos HTTP ou WebSocket.