The processing steps involve:
- Web server passes request parameters (and possibly also
environment variables, information about the request itself, etc.)
to a software package. It can be a specific program, or a script,
interpreter, or anything executable.
- Application runs and does something, and produces
some output and sends it usually to STDOUT
- Web server collects the output from the
application.
- When application finishes (exits, dies...) the Web server sends
the output accummulated from the application to the Web browser
which originated the request. Web server needs to put number of bytes into the
Content-Length header
field of its response.
This approach is very taxing on the computer.
Standalone application is called separately for each request. New process
needs to be created, kernel tables have to be updated, etc., etc.,
At the same time, this approach is easy to set up, and flexible.
For a low volume traffic, it is quite fine.