Over the past 15 years, Web-based applications have gradually replaced those based on other networking protocols for everything from personal communications to home electricity meters. But there's a major shortcoming in the hypertext transfer protocol—HTTP—the system used to communicate over the Web. HTTP was originally designed for serving up simple documents and files to Web browsers, not for complex, real-time interaction.
Under the original HTTP protocol, a client, such as a Web browser, must open a connection to a server, make a request, wait for a response, and then close the connection. If the client needs more data, it must open a new connection. It's like hanging up the phone and redialing after every sentence of a conversation. And if the server has new info for the client, it must wait until the client requests it rather than sending it over instantly.
This redundancy chews up bandwidth. Worse, it makes it nearly impossible to keep a Web client stuffed with up-to-the-second information. In some situations, such as financial trading, those lost milliseconds can mean missed opportunities.
Web developers have been hacking around HTTP's limitations for years with programming techniques such as Comet, which delays closing an HTTP connection in order to transmit more data. But what they really want is a connection between client and server that stays open indefinitely and allows both parties to send data back and forth as needed.