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 program as part of the HTTP request. It also defines a set of environment variables that are made available to the program. The program generates output, typically HTML, which the web server processes and passes back to the browser. Alternatively, the program can request URL redirection. CGI allows the returned output 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. The program can access any data that a normal application program can, however the facilities available to CGI programs are usually limited for security reasons.
Although CGI programs can be compiled programs, they are more often written in a (semi) interpreted language such as Perl, or as Unix shell scripts, hence the common name “CGI script”.
Here is a trivial CGI script written in Perl. (It requires the “CGI” module available from CPAN).
#!/usr/bin/perl use CGI qw(:standard);
print header, start_html, h1(“CGI Test”), “Your IP address is: “, remote_host(), end_html;
When run it produces an HTTP header and then a simple HTML page containing the IP address or hostname of the machine that generated the initial request. If run from a command prompt it outputs:
Content-Type: text/html; charset=ISO-8859-1
head titleUntitled Document /head body h1CGI TestYour IP address is: localhost /body /html
The CGI program might be saved as the file “” in the appropriate directory on a web server, e.g. “/home/httpd/test”.
Accessing the appropriate URL, e.g., would cause the program to run and a custom page produced and returned.
Early web servers required all CGI programs to be installed in one directory called cgi-bin but it is better to keep them with the HTML files to which they relate unless they are truly global to the site. Similarly, it is neither necessary nor desirable for all CGI programs to have the extension “.cgi”.
Each CGI request is handled by a new process. 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. Other solutions include mod_perl and FastCGI.
Latest version: CGI/1.1.


Read Also:

  • Common-gender

    noun 1. in English, a noun that is the same whether it is referring to either gender, such as cat, people, spouse. 2. in some languages, such as Latin, a noun that may be masculine or feminine, but not neuter. 3. in some languages, such as Danish, a noun derived from a masculine or feminine […]

  • Common-good

    noun 1. the advantage or benefit of all people in society or in a group: In spite of our differences, we shall work for the common good. noun 1. the part of the property of a Scottish burgh, in the form of land or funds, that is at the disposal of the community n. late […]

  • Common-grackle

    noun 1. a large songbird, Quiscalus quiscula, of the family Icteridae, of central and eastern North America, having iridescent black plumage varying in color.

  • Common-ground

    noun 1. a foundation of common interest or comprehension, as in a social relationship or a discussion. noun 1. an agreed basis, accepted by both or all parties, for identifying issues in an argument Shared beliefs or interests, a foundation for mutual understanding. For example, The European Union is struggling to find common ground for […]

Disclaimer: Common gateway interface definition / meaning should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional. All content on this website is for informational purposes only.