Common gateway interface (CGI)

From Computer Science Wiki
Web Science[1]

Exclamation.png CGI can also refer to computer generated imagery. We aren't talking about this here.

In computing, Common Gateway Interface (CGI) offers a standard protocol for web servers to execute programs that execute like Console applications (also called Command-line interface programs) running on a server that generates web pages dynamically. Such programs are known as CGI scripts or simply as CGIs. The specifics of how the script is executed by the server are determined by the server. In the common case, a CGI script executes at the time a request is made and generates HTML.[2]

CGI allows a script on a web server to process input (for example, from a form) and return results to a requester.


Cgi diagram.png

  1. The Web surfer fills out a form and clicks, “Submit.” The information in the form is sent over the Internet to the Web server.
  2. The Web server “grabs” the information from the form and passes it to the CGI software.
  3. The CGI software performs whatever validation of this information that is required. For instance, it might check to see if an e-mail address is valid. If this is a database program, the CGI software prepares a database statement to either add, edit, or delete information from the database.
  4. The CGI software then executes the prepared database statement, which is passed to the database driver.
  5. The database driver acts as a middleman and performs the requested action on the database itself.
  6. The results of the database action are then passed back to the database driver.
  7. The database driver sends the information from the database to the CGI software.
  8. The CGI software takes the information from the database and manipulates it into the format that is desired.
  9. If any static HTML pages need to be created, the CGI program accesses the Web server computer’s file system and reads, writes, and/or edits files.
  10. The CGI software then sends the result it wants the Web surfer’s browser to see back to the Web server.
  11. The Web server sends the result it got from the CGI software back to the Web surfer’s browser.

Real world, practical advice[edit]

In the past we used cgi to create dynamic webpages. We needed a way to run perl or shell scripts. A web client would send a request via cgi and the webserver would process the script and return the results of the script. With the rise of purpose-built server-side web-based scripting languages (PHP, ASP), I don't see cgi used often. Real world practical advice: if you are working with a system with cgi-bin you should wonder what requirements are driving the use. Often there are legacy issues you should be aware of.

If you see web files ending with .cgi or .pl you may be working with cgi.

Do you understand this?[edit]

Describe the function of the common gateway interface (CGI).


These standards are used from the IB Computer Science Subject Guide[3]

  • Describe the function of the common gateway interface (CGI).


  3. IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.