url codierung
daniel
- https
hallo!
ich hab da mal eine frage:
gibt es eigentlich bei den url codierungen keine festgelegten standards, oder wieso codiert mein IIS dann nach einer anderen methode als im "handelsüblichen" web, zb:
uncodiert:
http://www.domaene.at/eins zwei drei.php
codiert:
http%3A%2F%2Fwww.domaene.at%2Feins%20zwei%20drei.php
normalerweise hat bei mir immer folgende codierung funktioniert, wie sie bei der php funktion urlencode() generiert wird:
uncodiert:
http://www.domaene.at/eins zwei drei.php
codiert:
http%3A%2F%2Fwww.domaene.at%2Feins+zwei+drei.php
ich habe in der php referenz gelesen das es 2 funktionen gibt um urls zu codieren bzw decodieren, und zwar die urlencode() in der leerzeichen mit "%20" codiert werden und die funktion rawurlencode, in der leerzeichen mit "+" codiert werden.
lässt sich das am server einstellen welche methode verwendet wird ?
grüsse,
daniel
gibt es eigentlich bei den url codierungen keine festgelegten standards, oder wieso codiert mein IIS dann nach einer anderen methode als im "handelsüblichen" web, zb:
Der IE war schon immer etwas besonderes :)
uncodiert:
http://www.domaene.at/eins zwei drei.phpcodiert:
http%3A%2F%2Fwww.domaene.at%2Feins%20zwei%20drei.php
codiert:
http%3A%2F%2Fwww.domaene.at%2Feins+zwei+drei.php
Der einzige Unterschied ist das Leerzeichen, das einmal per Plus und einmal als Hexwert %20 kodiert wird.
Den eigentlichen Standard findest Du in http://www.w3.org/Addressing/rfc1738.txt. Die Geschichte mit dem Plus ist AFAIK eine Variante aus dem Altertum.
lässt sich das am server einstellen welche methode verwendet wird ?
Das hängt vom Server ab. Normalerweise hat ein Webserver mit sowas aber nichts zu tun, diese Daten werden eher Hilfsprogrammen verarbeitet (PHP- oder Perlskripte, andere Programme), dort ist dann auch die Einstellung (so überhaupt nötig) vorzunehmen.
Gruß,
soenk.e