I’ve never had an opportunity to work with CGI until now. CGI is defined on wikipedia this way:
The task of such an information server is to respond to requests (in the case of web servers, requests from client web browsers) by returning output. Each time a request is received, the server analyzes what the request asks for, and returns the appropriate output. The two simplest ways for the server to do this, are the following:
- if the request identifies a file stored on disk, return the contents of that file;
- if the request identifies an executable command and possibly arguments, run the command and return its output
CGI defines a standard way of doing the second. It defines how information about the server and the request is passed to the command in the form of arguments and environment variables, and how the command can pass back extra information about the output (such as the type) in the form of headers.