Yes, but the content is typically immutable once it has left the back
end server; the way CGI works is that a process is spawned to handle
the request (providing isolation of back end server processes that may
not be owned by the Web server, that may be from entirely different
users (think about virtual hosting).
The content is then written into a pipe, the web server reads this data,
fondles a few bytes of the beginning of the stream from that pipe (unless
the CGI is implemented to generate all the HTTP headers itself, in which
case the bytes are copied entirely unchanged, and then copies the rest
of the data unchanged to the connection to the user.
So we get:
1) copy from CGI process to kernel buffers into the pipe to the web server
2) copy from kernel buffers into the address space of the web server,
3) a few bytes at the beginning get looked at by the web server.
4) a few headers are written to the connection to the client,
5) the data from the pipe from the CGI process is written to
the kernel buffers, typically unchanged.
IO-Lite would avoid at least 2 copies of the dynamic content, plus not pollute
the data cache of the Web server with data that is not being looked at.
- Jim
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/