rfc 1738は、「検索部分」でのスラッシュのエンコードについて正確ではありません。
オクテットに対応する文字がスキームで予約されている場合、オクテットをエンコードする必要があります。
...
英数字、特殊文字「$-_.+!*'()」、および予約された目的で使用される予約文字のみが、URL 内でエンコードされずに使用できます。
...
'path' および 'searchpart' コンポーネント内では、"/"、";"、"?" 予約されています。
URLの検索部分の「/」の「予約された目的」は何ですか?
サーバーがコード化されていないスラッシュを処理する場合、仕様に従ってスラッシュをエンコードする本当の理由はありますか?
スラッシュ付きの英数字だけの URL パラメータを常にデコードする必要があると、気が狂いそうになります。
これが人生の例です:
http://localhost/login?url=/a/path/to/protected/content
対
http://localhost/login?url=%2Fa%2Fpath%2Fto%2Fprotected%2Fcontent "