Wenn die URI der Anfrage auf ein CGI-Skript zeigt, soll diese von einem externen Programm ausgeführt werden, das die Sprache des Skripts interpretieren kann. Diesem Programm werden eine Reihe von Umgebungs-Variablen und bei POST-Requests alle weiteren gesendeten Daten übergeben.
Das Cgi-Script kann Header-Felder zurückgeben, die vom Server beim
Erzeugen des HTTP-Headers berücksichtigt werden sollten. Der Microsoft
Internet Information-Server tut das nicht, deshalb habe ich mir erlaubt,
es in den Beispielen ebenfalls wegzulassen.
Die weitere Ausgabe des Skripts wird nach dem HTTP-Header geschickt.
Da das Interpreter-Programm jedesmal neu gestartet wird, ist diese Methode
sehr langsam. Gemeinsame Daten müssen jedesmal neu gelesen werden.
Die Fehlerbehandlung in den CGI-Skripten ist unbefriedigend. Außerdem
entsteht mit jedem zusätzlichen Programm auch eine zusätzliche
Sicherheitslücke und Fehlerquelle.
Quellen: