HTTP streaming provides a long-lived connection for instant and continuous data push. You get the familiarity of HTTP with the performance of WebSockets.

Examples: TwitterDataSiftSuperfeedrGitter

How it works: A client makes a request to an HTTP endpoint in the usual way (along with possibly authentication information, again in the usual way), and the server replies with a response of indefinite length. For HTTP/1.1, this means Transfer-Encoding: chunked. Response data often comes in two flavors: newline-delimited strings (usually JSON, but not always) or Server-Sent Events. The former is slightly easier for typical application developers to parse, while the latter enables browsers to consume the stream using EventSource.

When to use it: HTTP streaming is a great for pushing data frequently (more than once per minute) to the same receiver.

Caveats: If the client needs to be able to rapidly change what it is listening to, this will require adding (or recreating) HTTP streaming connections. Consider WebSockets in this case.