Die Parameterübergabe erfolgt beim CGI Interface mit Hilfe von Umgebungsvariablen und per STDIN und STDOUT.
Beim GET Request werden die Parameter im URI mit übergeben. Hierbei gibt es zwei unterschiedliche Arten, die Parameter zu übergeben.
Bei der Übergabe per QUERY_STRING werden die Parameter/Value Paare einfach an den aufzurufenden URI angehängt. Die Parameter werden mit einen "?" vom Pfad getrennt. Ein Webbrowser führt dieses automatisch durch, wenn ein Formular festlegt, daß die Parameter per GET Methode übertragen werden sollen.
Die Applikation kann die Werte aus der Umgebungsvariable
QUERY_STRING lesen. Sie liegen hier in der Form
param1=value1¶m2=value2
vor und müssen nur noch
an den "=" und "&" getrennt werden.
Der Web Applikation können Parameter können auch ohne das "?" zur Abtrennung des Parameter-Strings übermitelt werden. Diese Mäglichkeit kann für die Indizierung in Suchmaschinen hilfreich sein, da diese den URLs mit "?" oft nicht folgen.
Bei dieser Art der Parameterübergabe wird einfach der zu
übergebende Wert in Form von /store/value
an den
Aufruf des Scripts angehängt. Im Falle der Implementierung in PHP
und des Aufrufs würde der Link folgendermaßen aussehen:
<a href="webapp.php/store/value>Der String nach dem "webapp.php" wird bei Apache 1.3 (mit entsprechender Konfiguration) in der Umgebungsvariable
PATH_INFO
übergeben. Diese Variable wird auch in der
CGI Definition
zur Übergabe von Informationen erwähnt. In der Praxis findet
sie allerdings selten Verwendung. Beim Apache 1.3 enthält diese
Variable den String mit führendem "/" in der Form
/store/value. Dieser String kann zur weiteren Verarbeitung
relativ einfach an den "/" gesplittet werden.
Bei POST Requests werden die Parameter im Content des HTTP Requests
übergeben. Auf dem Server werden diese in den STDIN Datenstrom
des aufgerufenen Programms in der Form
param1=value1¶m2=value2
geschrieben. Ein Webbrowser
schickt einen POST Request, wenn das Formular die method
explizit als POST festlegt.