Teil von  SELFPHP   Teil von  Praxisbuch
Letztes Update: 22.08.2005 12:03:06


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Common Gateway Interface




Dynamisch erzeugte Websites mit Formularen oder Datenbanken erfordern in der Regel die serverseitige Ausführung von Programmen, die die Formularverarbeitung oder die Daten einer externen Datenbank in die Website integrieren.

Die für solche Zwecke geschaffene Schnittstelle zwischen dem Webserver und den dort abgespeicherten Programmen trägt den Namen Common Gateway Interface, kurz CGI.

Das Common Gateway Interface regelt den Aufruf und die Parameterversorgung von externen Programmen, den so genannten CGI-Skripten. Die Parameterübergabe erfolgt hierbei in Abhängigkeit von der beim Aufruf des CGI-Programms gewählten HTTP-Methode. Der HTTP-Server und das aufgerufene CGI-Programm kommunizieren über eine Reiche von im CGI-Standard festgelegten Umgebungsvariablen. Diese enthalten Informationen über den HTTP-Server und die vom Client erzeugte Anfrage.

Der hinter der CGI-Schnittstelle stehende Mechanismus ist denkbar einfach:

Ein HTTP-Client fordert eine Seite an, deren URL auf ein vom Server auszuführendes Programm verweist. Dieses befindet sich in einem speziellen Verzeichnis, z.B. cgi-bin.

Der Server erkennt an der Dateiendung, dass er sich um ein Programm oder Skript handelt und führt es auf. Das Skript erzeugt einen Antwort-Header gemäss HTTP-Protokoll, eine Leerzeile sowie den Inhalt der Antwort. Die Ausgabe des Programms erfolgt auf der Bildschirmausgabe, die vom Server auf den HTTP-Client umgeleitet wird.

Ein CGI-Skript kann entweder über die HTTP-Methode GET oder POST aufgerufen werden.


GET

Bei der GET-Methode werden die dem CGI-Skrip zu übergebenden Parameter, durch ein Fragezeichen getrenn, an den URL der Client-Anfrage gehängt.


Beispiel



www.domain.de/cgi-bin/suche?wort=PHP



Hierdurch wird die Umgebungsvariable QUERY_STRING mit dem Wert der so übergebenen Parameter belegt.

Hinweis: Der Query-String ist der an den URL angehängte und von diesem durch ein Fragezeichen abgetrennte Teil, der die einem CGI-Programm zu übergebende Parameter enthält. Diese werden in der Umgebungsvariable QUERY_STRING abgelegt.



POST

Die zweite Möglichkeit, Daten an ein CGI-Skript zu übergeben, erfolgt über die POST-Methode. Hierbei werden dem Webserver die Daten in Entity-Body übergeben und an das CGI-Skript über die Standardeingabe weitergeleitet.

Die Sprache zur Programmierung des Skripts kann dabei beliebig gewählt werden. Es kann ein kompiliertes C-Programm sein, ein Skript für den als CGI-Programm konfigurierten PHP-Interpreter, ein Perl-Skript oder ein beliebiges ausführbares Programm.

Ein CGI-Skript kann Dokumente beliebigen Formats generieren, z.B. HTML-Dokumente. Damit der Client, dem das generierte Dokument gesendet wird, weiss, um welche Art von Dokument es sich handelt, erzeugt das CGI-Skript vor den eigentlichen Nutzdaten einen Header. Der Header besteht aus Textzeilen mit dem Format der bereits beschriebenen HTTP-Header und wird durch eine Leerzeile abgeschlossen.

Jeder Header besteht wie schon erwähnt, aus mindestens zwei Zeilen, die für jedes Skript zwingend erforderlich sind. Die erste Zeile spezifiziert dabei den MIME-Type des Dokuments.


Beispiel



Content-Type: text/html



Sofern das Skript einen Verweis auf ein anderes Dokument generiert, wird in der ersten Zeile die Location dieses Dokuments referenziert.


Beispiel



Location: www.domain.de/index.html



Die zweite Zeile ist eine Leerzeile, die den Header von den eigentlichen Nutzdaten trennt.



 



 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de