>>6
As I understand it, CGI works thusly:
HTTP_client -HTTP_request-> HTTP_server -CGI_request-> CGI_server -program_request-> program -program_result-> CGI_server -CGI_result-> HTTP_server -HTTP_result> HTTP_client.
The expensiveness of CGI was in that it started a new instance of the CGI server for each CGI request, and terminated it as soon as it gave out the result. FastCGI is the same as CGI, but it stays running, listening for new CGI requests, even after it's done giving out the results of all extant requests.
In the end it's simpler to parse the http request directly.
Perhaps in some cases. Some persons may misinterpret such a statement as a generality. Also, what had you meant by ``parse the http request directly''? Perhaps you had meant that the end program, instead of httpd, should do the work of talking the HTTP protocol, listening on various ports, handling the traffic,, as well as doing the work to generate the HTTP result. That would be the direct interpretation of ``parse the http request directly'', but that is not good general advice. Perhaps in some cases, it is more efficient.
Perhaps you meant that httpd should just serve static files. That would be sane default advice.