Common Gateway Interface (CGI)

The Common Gateway Interface (CGI) provides the middleware between WWW servers and external databases and information sources. The World Wide Web Consortium (W3C) defined the Common Gateway Interface (CGI) and also defined how a program interacts with a Hyper Text Transfer Protocol (HTTP) server. The Web server typically passes the form information to a small application program that processes the data and may send back a confirmation message. This process or convention for passing data back and forth between the server and the application is called the common gateway interface (CGI).

Features of CGI:

  • It is a very well defined and supported standard.
  • CGI scripts are generally written in either Perl, C, or maybe just a simple shell script.
  • CGI is a technology that interfaces with HTML.
  • CGI is the best method to create a counter because it is currently the quickest
  • CGI standard is generally the most compatible with today’s browsers

Advantages of CGI:

  • The advanced tasks are currently a lot easier to perform in CGI than in Java.
  • It is always easier to use the code already written than to write your own.
  • CGI specifies that the programs can be written in any language, and on any platform, as long as they conform to the specification.
  • CGI-based counters and CGI code to perform simple tasks are available in plenty.

Disadvantages of CGI:
There are some disadvantages of CGI which are given below:

  • In Common Gateway Interface each page load incurs overhead by having to load the programs into memory.
  • Generally, data cannot be easily cached in memory between page loads.
  • There is a huge existing code base, much of it in Perl.
  • CGI uses up a lot of processing time.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : gowtham_yuvaraj