Streaming is mostly referred as a delivery system for media content or dynamic data where it is beneficial to begin processing while data is being delivered. In reality HTTP was not designed for data streaming. HTTP communications are stateless and they take place over TCP/IP where there is no continuous connection between the ends. Usually HTTP responses are buffered rather than streamed. HTTP 1.1 added support for streaming through keep-alive header so data could be streamed but yet for performance proposes the majority of implementations including ASP.NET tend to buffer the content, send it and close the connection. As a result there are few real world applications that use HTTP for streaming data and normally an additional protocol is built on top of HTTP for reconnection and error detection. However this does not pose a problem because there are other UDP-based protocols that can be used for streaming where it is needed.
So, why would we need data streaming over HTTP? Because we build our web applications over HTTP. Playing video clips, displaying RSS fields and updating time sensitive data are considered common features of a webpage nowadays, but yet we are bounded to HTTP capabilities. Here is where the browsers make use of plug-ins to overcome these boundaries, and also add new troubles!
For details visit AjaxVideoPlayer