Was ist CGI? Funktionsweise und Einsatz von Web-Skripten
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 3,46 KB
Was ist ein CGI (Common Gateway Interface)?
Ein CGI (Common Gateway Interface) ist ein Programm, das in Echtzeit auf einem Webserver als Antwort auf eine Anfrage eines Browsers ausgeführt wird. Wenn dies geschieht, führt der Webserver einen Kindprozess aus, der die vom Nutzer gesendeten Daten (falls vorhanden) empfängt, diese als Umgebungsvariablen bereitstellt und die Ausgabe des Programms erfasst, um sie als Antwort an den Browser zu senden. Das Ziel von CGI ist es, Intelligenz und Interaktivität zu einer Website hinzuzufügen.
Beispiel: Ein CGI-Programm in C
Der Grundkörper eines CGI-Programms in der C-Sprache:
/* Hallo Welt Programm */
/* Kompilieren in Linux: gcc -o hello.cgi hello.c */
#include <stdio.h>
int main() {
printf("Content-Type: text/html\n\n");
printf("<html>Hallo Welt</html>\n");
return(0);
}Ablauf einer CGI-Anfrage
- Der WWW-Client fordert einen Dienst von einer CGI-Anwendung an.
- Der HTTPD-Server erhält die Anfrage und die Eingabedaten.
- Der Server erzeugt eine Umgebung und erstellt Variablen darin, die mit den Eingabedaten gefüllt werden.
- Der Server führt die CGI-Anwendung in dieser Umgebung aus.
- Die Anwendung verarbeitet die CGI-Umgebungsvariablen und ruft die Eingabedaten ab.
- Die CGI-Anwendung läuft und gibt ein Ergebnis auf der Standardausgabe aus.
- Der HTTP-Server leitet die Standardausgabe der CGI-Anwendung an den WWW-Client weiter.
- Der WWW-Client erhält das Ergebnis der Anfrage.
HTML-Formulare und CGI
Formulare sind ein wesentliches Element von CGI. Sie ermöglichen es, in einem WWW-Client strukturierte Informationen einzugeben, die als Input für eine CGI-Anwendung dienen. Die HTML-Formularsprache ermöglicht die Definition verschiedener Feldtypen. Die Syntax der Markierung lautet:
<form method="Methode" action="CGI-URL">
Datenverarbeitung durch Formulare
Eine der wichtigsten Funktionen von CGI ist die Verarbeitung von Daten, die Besucher durch das Ausfüllen eines Formulars eingeben. Dies ist die häufigste Methode, um Benutzerdaten an ein CGI-Programm zu übermitteln. Es bietet die Möglichkeit von Benutzereingaben durch verschiedene Elemente wie Textfelder, Buttons, Auswahlfelder und Grafiken.
CGI kann den Inhalt eines Formulars auf zwei grundlegende Arten erhalten:
- Über die Umgebungsvariable QUERY_STRING.
- Über den Standard-Input: In diesem Fall gibt die Umgebungsvariable CONTENT_LENGTH die Länge des zu lesenden Strings an.
Wenn der Benutzer das Formular abschickt, erhält das Skript die Daten als Name=Wert-Paare. Die Namen werden durch das Attribut name definiert, die Werte durch das Attribut value oder die Eingabe des Nutzers.
Die Organisation der Zeichenfolge, die die Paare enthält, sieht wie folgt aus: name1=value1&name2=value2&name3=value3. Es ist bemerkenswert, dass Sonderzeichen kodiert übertragen werden. Beispielsweise steht das Zeichen + für ein Leerzeichen, während %20 ebenfalls ein Leerzeichen repräsentiert. Man muss %xx-Sequenzen in den entsprechenden ASCII-Wert konvertieren (z. B. wird = als %3d dargestellt). Dies gilt insbesondere für die Werte, die der Benutzer eingibt.