14.3.7. Using chunked encoding in HTTP 1.1
It is sometimes desirable to use the HTTP 1.1 chunked encoding to send data to HTTP clients. Examples of such include status pages or streaming applications. Note that the possibility of using chunked encoding depends on external factors such as whether the client browser supports chunked encoding. So a server page can request turning on the chunked encoding, but should handle the case should it not be available.
Note that in order to successfully turn on the chunked encoding
the page should not be using the http_xslt()
. Also all reply headers set by the
http_header() are silently ignored after the
mode is set.
The http_flush() (with 1 as a value for it"s
optional argument) is used to request turning on the chunked
encoding. If the client"s user agent supports the encoding, then
the data accumulated so far in the server"s output buffer are sent
to the client as the first chunk, the request is put in special
"chunked mode" and the http_flush() returns a
non-zero integer. When in that mode a new chunk is sent to the
client either when the internal 4k buffer is filled up or when the
client calls http_flush() again to flush the
buffer and send it as a chunk. The client disconnection is handled
as usual .