Push technology (push server) is a client-server communication mode in which the dialogue is initiated by the server. This technique is therefore opposed to the “classic” operation of web transactions where the customer opens the dialogue, and pulls to him the information.
To enable its operation, the push technology requires prior authorization from the client to the subscription model. The customer subscribes to the service and as new information is available, it is sent by the server.
Applications such as video conferencing or instant messaging are perfect examples of using this technology: when the central server receives a message (or any other type of data) of one of the participants, it send it to others. IRC networks and P2P operate on the same principle.
SMTP email protocol also works on the principle of server push, although part of the complete transaction is in pull mode (IMAP and POP3 protocols). Modern email clients simulate push technology frequently asking the server about the possible arrival of new mail. Note however that IMAP supports natively push technology through IDLE command.
HTTP server push
HTTP server push (sometimes called HTTP streaming) is the name given to the push technology applied to the HTTP protocol. There are several methods to achieve a push server, the most common being to prevent the server to close the transaction. The client-server connection thus remains open, allowing instantly update of the data associated with customers and avoids creating sometimes costly queues on the server side. This feature is available on the Apache server via CGI.
Another possibility to achieve the push technology is to use the header MIME multipart/x-mixed-replace, set up by the Netscape Navigator browser in 1995. Although most modern browsers are able to exploit this header, Microsoft still does not plan to equip their browser of this technique.
The Web Hypertext Application Technology Working Group is currently working on the standardization of this technique: the Server Sent Event implemented by most modern browsers except Internet Explorer. Unlike the model created by Netscape, Server Sent Event is based on the creation of the new MIME type text/event-stream, the data will be used directly through the DOM tree.
Translated from Wikipedia