The Common Gateway Interface (CGI) is a standard protocol for interfacing external application software with an information server, commonly a web server.
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 basic methods for the server to do this are the following:
* If the request identifies a file stored on disk, then return the contents of that file.
* If the request identifies an executable command and possibly arguments, then 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.