Das Common Gateway Interface (CGI) ist eine Schnittstelle um zwischen externen Applikationen (Client) und Informationsservern eine Verbindung für den Datenaustausch herzustellen. Ein normales HTML-Dokument, das auf einem Web-Server abgelegt wird ist statisch, das heißt, daß sich die Informationen dieses Dokumentes nicht verändern. Somit besteht die Gefahr, daß die im HTML-Dokument abgelegten Daten zur Zeit des Abrufes nicht mehr aktuell sind.
Im Gegensatz dazu ermöglicht es ein CGI-Programm dynamische Daten, die stets aktuell sind, zur Verfügung zu stellen, da die Daten erst vom CGI-Programm erstellt werden, wenn sie von einem Anwender abgefragt werden. Beim zuerst eingeführten Verfahren (GET) legt der Server die Eingabeparameter in einer Umgebungsvariablen ab. Ein neueres Verfahren (POST) benutzt statt dessen den Standartd-Eingabekanal. Der Tochterprozeß schreibt als Ergebnis HTML-Text in den Standardausgabekanal. Diesen Text gibt der Server an den WWW-Browser zurück. Für VisualBasic, das keine Standard-Ein/Ausgabe unterstützt, wurde WinCGI ins Leben gerufen. Manche Server bieten eigene Programmiermodelle an; manche besitzen auch eine ODBC-Schnittstelle zur direkten Ansteuerung von Datenbanken. Netscape und Microsoft versuchen zur Zeit mit NSAPI bzw. ISAPI eigene "Standards" für neue Programmierschnittstellen zu setzen, aber auch Java wird hier in Zukunft eine Rolle spielen.