Glossário da F5

WebSocket

WebSocket é um dos protocolos de comunicação usados na internet. Ele permite a comunicação bidirecional entre servidores web e clientes. O protocolo é definido pela Internet Engineering Task Force (IETF) como "RFC 6455".

A web foi projetada inicialmente para suportar hipertexto, mas desde então evoluiu para permitir applications web mais dinâmicos. Uma técnica comumente adotada para conseguir isso é o AJAX (Asynchronous JavaScript and XML), que usa XMLHttpRequest para facilitar trocas granulares de dados com servidores web em vez de atualizações no nível da página. Isso permite uma experiência de usuário mais responsiva. Entretanto, com o AJAX, todas as trocas de dados devem se originar do lado do cliente, dificultando que o servidor web envie dados aos clientes de forma proativa.

Para lidar com essa limitação, o Comet foi desenvolvido como uma extensão do AJAX. O Comet funciona "criando intencionalmente solicitações com respostas atrasadas", mantendo a conexão HTTP com o servidor web aberta para que o servidor possa enviar respostas sempre que desejar enviar informações. Entretanto, o Comet tem um alto problema de consumo de recursos.

O WebSocket foi desenvolvido como uma melhoria do Comet e está disponível em HTML5. Ele mantém uma conexão aberta entre o servidor e o cliente, permitindo comunicação bidirecional contínua usando essa conexão. Hoje, a maioria dos navegadores suporta WebSocket.

Uma conexão WebSocket é estabelecida via HTTP usando o campo de cabeçalho HTTP "Upgrade" para atualizar a conexão para um WebSocket. Observe que se um site usar um proxy HTTP que não suporte WebSocket, a conexão ou comunicação poderá falhar, portanto, configurações adequadas serão necessárias.