You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Di...@eurotours.at on 2004/09/16 09:58:51 UTC

Parameter Liste mit %26

Hallo Liste,

das hier angesprochene Problem ist mir bei meiner Webanwendung mit dem
Tomcat
aufgefallen, aber ich würde hier gerne Eure Meinung über das Korrekte bzw.
das zu
erwartende Verhalten bei einem Request mit Parametern haben.

Beispiel:
http://localhost/cgi-bin/printenv?param1=value1%26param2=value2

Wie in diesem Beispiel dargestellt, ist es doch so, daß man Sonderzeichen kodieren
sollte(kann/muß). In diesem Fall wird das '&' mit '%26' kodiert.

Ist also zu erwarten, daß die Applikation(?) 2 Paramter bekommt, oder
ein Parameter mit dem Wert: value1&param2=value2 ?

Was ist unter Applikation verstehe ist natürlich der springende Punkt.

Wer ist für das Umwandeln der kodierten Zeichen zuständig?
Im Falle von cgi - Applikationen setzt das Modul die Variablen wie von der URL
geliefert. Beim Tomcat wird auch nur ein Parameter erkannt, aber beim Wert
des Parameters wird dekodiert.

Ich habe im w3.org keine Info gefunden.

Was für ein Verhalten ist zu erwarten, oder ist dies genau definiert?

Bin für jeden Tip dankbar.

lg Dietmar


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


AW: Parameter Liste mit %26

Posted by Steffen Heil <li...@steffen-heil.de>.
Hi

> http://localhost/cgi-bin/printenv?param1=value1%26param2=value2

> Ist also zu erwarten, daß die Applikation(?) 2 Paramter bekommt, oder ein
Parameter mit dem Wert: value1&param2=value2 ?

Nein.
Deine Application bekommt EINEN Parameter mit Namen "param1" und Wert
"value1&param2=value2", wobei das "=" eigentlich auch umgewandelt werden
müsste.

Wenn deine Applikation 2 Parameter bekommen soll, muss es heißen:

http://localhost/cgi-bin/printenv?param1=value1&param2=value2

Das ist ja gerade der Punkt der Kodierung. Ein normales "&" trennt
Parameter, ein "%26" ist ein "&" IM Parameter.

Das sollte im HTML-Standard stehen (bei FORM, url-encoded).

Gruß,
  Steffen