Best ones probably: (all MIT)
By default when Nginx starts receiving a response from a FastCGI backend (such as PHP-FPM) it will buffer the response in memory before delivering it to the client. Any response larger than the set buffer size is saved to a temporary file on disk.
This process is outlined at the Nginx ngx_http_fastcgi_module page manual page.
The standard way of understanding the HTTP protocol is via the request reply pattern. Each HTTP transaction consists of a finitely bounded HTTP request and a finitely bounded HTTP response.
However it's also possible for both parts of an HTTP 1.1 transaction to stream their possibly infinitely bounded data. The advantages is that the sender can send data that is beyond the sender's memory limit, and the receiver can act on
.-. .-. / \ ( ) .---. .--. .--. ( __) ( __) | .`. ; .--. ___ .-. | |_ .--. / .-, \ / _ \ / \ (''") (''") | |(___) / \ ( ) \ ( __) / _ \ (__) ; | . .' `. ; | .-. ; | | | | | |_ | .-. ; | .-. . | | . .' `. ; .'` | | ' | | | |(___) | | | | ( __) | | | | | | | | | | ___ | ' | |