Hallo Stefan!
von http://127.0.0.1/cgi-bin/links/add.cgi?language=german
Genau das ist es. Der Standardweg.
Es gibt aber auch Programme, bei denen das tatsaechlich anders ist, zum Beispiel bei mSQL. Wenn man das zu mSQL gehoerende CGI-Verarbeitungs-Script (heisst w3-msql oder so aehnlich) aus HTML aufruft, lautet das beispielsweise so:
http://127.0.0.1/cgi-bin/w3-msql/Parameter
Ich hab das anfangs nie verstanden bzw. konnte mir gar nicht vorstellen, dass der Slash als Parameter-Trennzeichen erkannt wird und nicht sofort als Verzeichnistrennzeichen interpretiert wird.
Irgendwie funktioniert es aber.
Kann jemand vielleicht mal sagen, was der Unterschied zwischen URL-Parameteruebergabe via "?" und via "/" ist?
Der Trick an der ganzen Sache ist, daß der Server sich den Verzeichnis-Baum ein wenig genauer anschaut. Wenn also z.B. ein Aufruf /a/b/c/d an den Server herangetragen wird, dann merkt dieser schon, daß b kein Directory, sondern ein Ausführbares Skript ist. Alles was hinter dem Skriptnamen ($ENV{'SCRIPT_NAME'}) angegeben wurde wird kurzerhand in die Umgebungsvariable PATH_INFO gelegt. Natürlich nur bis zu einem eventuellen ?, da hier ja die CGI-Parameter im eigentlichen Sinne anfangen ($ENV{'QUERY_STRING'}).
Das Parameter-Handling via ? ist sicherlich in sofern einfacher einzusetzen, als das die Kodierung von Sonderzeichen, sowie die Angabe von mehreren Parametern vorgegeben ist. Ich denke auch nicht, daß man einen Browser davon überzeugen kann, ein Formular in /-Notation (wie auch immer die aussehen mag) zu versenden ...
Das Handling via / ist eigentlich den Skript-Bauern selbst überlassen. Aus dem Bauch heraus würde ich sagen, daß man hiermit gut nach Sprachversionen trennen kann. Eine Anwendung, die ich auch schon mal hatte, war, hierduch ein Verzeichnis angeben zu lassen, aus dem Template-Dateien verwendet werden sollten ...
Mag sein, daß man über die / Notation auch virtuelle Verzeichnisse auf dem Server aufbauen kann. In diesem Falle würden sich dann relative Links aus einer skriptgenerierten Datei (xx/german/index.html) auch auf diese Pfade beziehen (grafik/bild.gif). Diese können dann vom Skript nach herzenslust bedient werden. Lokalisierte Varianten, Zufallsgenerator, Counter, Datenbankzugriffe, .....
Könnte ja also sein, daß die Verwendung der /-Notation auch mal nutzbringend und vor allen Dingen vorteilhaft gegenüber der ?-Notation eingesetzt werden kann ...
Jörk