Abbréviation de Common Gateway Interface, c-à-d "interface commune de passerelle", il s'agitd'une spécification pour le transfert d'information entre un serveur Web et un programme CGI. Un programme CGI consiste en n'importe quel programme conçu pour accepter et renvoyer des données conformément à la spécification CGI. Le programme peut être écrit dans tout langage de programmation, comme C, Perl, Java, ou Visual Basic. Les programmes CGI constituent le moyen le plus commun pour permettre aux serveurs Web d'interagir dynamiquement avec les utilisateurs. De nombreuses pages HTML contenant des formulaires par exemple, utilisent un programme CGI pour prendre en charge le traitement des données après soumission du formulaire. Une autre méthode pour fournir des données dynamiques aux utilisateurs Web, est d'inclure aux pages Web, des scripts ou des programmes qui sont exécutés sur la machine de l'utilisateur (on dit le "client"). Ces programmes peuvent être des "Java applets", "Java scripts", ou des "contrôles ActiveX". Ces techniques sont collectivement dénommées comme des solutions "client" ou "client-side", tandis que les CGI qui sont exécutés par le serveur Web, constituent des solutions "serveur" ou "server-side".