Specification by which a Web server passes data between itself and an application program. Typically, a Web user will make a request of the Web server, which in turn passes the request to a CGI application program. The program processes the request and passes the answer to the server, which in turn sends it to the user. The entire interchange follows the rules of the CGI specification, which is actually part of the HTTP protocol. CGI application programs can be written in such programming languages as C++ and Visual Basic, but are usually written in Perl.