CGI heisst Common Gateway Interface und ist eigentlich nichts Definitives, sondern nur die Bezeichnung Programme auf dem Server laufen zu lassen, die dann HTML generieren und an den Client (Browser) zurücksenden. Diese Programme können ganz normale .exe Dateien sein (falls der Server Win32 drauf hat) oder für Linux kompilierte Progs oder es können Quelltexte sein, die während der Laufzeit interpretiert werden (z.B. Perl) Perl muss dan auf dem Server installiert sein und der Pfad muss dem Webserver i.d.R. Apache bekannt sein, oder in einer path Variable gespeichert sein oder er steht am Anfang des Perl Scripts #!/usr/bin/perl z.B.
Dem Webserver muss desweiteren bekannt sein, wo die CGI Scripts oder Programme sitzen. (Das ist aber nur ein Problem des Serveradmins und beim Hochladen muss der Pfad eingehalten werden.) CGIs werden von HTML aus entweder über Forms oder image tags (counter) oder SSI aufgerufen.
Dabei werden Variablen übergeben mit GET oder POST, bla bla
Es hat keinen Sinn, hier weiter zu labern. Ich hab mir ein 800 Seiten PHP Handbuch runtergeladen und das Web Publishing Kit von Franzis gekauft (SelfHTML 7.0 tut's auch).
(Meine Angaben hier sind sowieso viel zu frei formuliert, nicht dass jetzt jemand meckert)