Overview of HTTP server push technologies and WebSocket protocol (Comet, Bayeux, Server Sent Events, Reverse HTTP).
Pusing information asynchronously from web server to web client (browser) has always been a problem. The HTTP protocol is designed as a synchronous request-response protocol that requires the client to send a request to the server. Over time, various mechanism like long polling and XHTML-request evolved that provide asynchronous server pushs. However, most of these mechanisms are workarounds and browser-dependent.
The long-overdue update of the HTML protocol (HTML5) brought new mechanisms for truly asynchronous and browser-independent server pushs. Server Sent Events and WebSockets allow the client to open a channel that the server uses to send asynchronous messages to the client.