Common Gateway Interface

<World-Wide Web> (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.


< Previous Terms Terms Containing Common Gateway Interface Next Terms >
common carrier
Common Command Set
Common Communication Services
Common Desktop Environment
Common ESP
CGI program
Common Hardware Reference Platform
Common Information Model
Common Intermediate Format
Common Intermediate Language
Common Internet File System