A protocol for exchanging data between a web server and an application. For example, if a user fills in a form on a web page and submits it to the server, the server passes the data to an application program, which analyses it. The program may also create a reply to the user, which initially goes to the server. The CGI is a standard way of passing this information from server to program and back again. It is part of HTTP. CGI programs are often written in Perl.