Source : Free On-Line Dictionary of Computing
Common Gateway Interface
(CGI) A {standard} for running external
{programs} from a {World-Wide Web} {HTTP} {server}. CGI
specifies how to pass {arguments} to the executing program as
part of the HTTP request. It also defines a set of
{environment variables}. Commonly, the program will generate
some {HTML} which will be passed back to the {browser} but it
can also request {URL redirection}.
CGI allows the returned HTML (or other document type) to
depend in any arbitrary way on the request. The CGI program
can, for example, access information in a {database} and
format the results as HTML. A CGI program can be any program
which can accept command line arguments. {Perl} is a common
choice for writing CGI scripts. Some {HTTP servers} require
CGI programs to reside in a special directory, often
"/cgi-bin" but better servers provide ways to distinguish CGI
programs so they can be kept in the same directories as the
HTML files to which they are related.
Whenever the server receives a CGI execution request it
creates a new process to run the external program. If the
process fails to terminate for some reason, or if requests are
received faster than the server can respond to them, the
server may become swamped with processes.
In order to improve performance, {Netscape} devised {NSAPI}
and {Microsoft} developed the {ISAPI} standard which allow
CGI-like tasks to run as part of the main server process, thus
avoiding the overhead of creating a new process to handle each
CGI invocation.
Current version: 1.1.
{NCSA (http://hoohoo.ncsa.uiuc.edu/cgi)}.
(2002-06-03)