URLのエンコードだけど、サーバーはどこでデコードしてんの?勝手にデコードしてパス通してくれんの?
URLのエンコードについてよく分からんのだけど、
phpとかcgiの引数にエンコードした引数をおくると、phpやcgiで直すの?
ファイル名が日本語だった場合はどうなんの?
utf-8ならまだしもsjisだった場合は?
<img src=”./日本語フォルダ/日本語ファイル名.jpg”> とかってHTMLに書いてあった場合、それは勝手にurlエンコードされんの?ブラウザごとの使用?
URLがエンコードされてるとしたら、サーバーはどこでデコードしてんの?httpd的なソフト?勝手にデコードしてパス通してくれんの?
教えて偉い人
>>225
基本的にはhttpdが処理する
まずURLに書かれた文字はブラウザによってURLエンコードしてからリクエストされる
アドレスバーやsrc属性に日本語入れて開発者ツールのnetとかで確認すればわかる
で、それをhttpdがデコードしてパスやファイルを判定して実行する
クエリストリングも同じでデコードしてからZPHPなどに渡す
なので$_GETなどで取得するとデコードされた状態
>>235
分かったありがとう!
日本語でurl書いて <A HREF=”日本語”> とか <IMG SRC=”日本語”> とかやったら 勝手にブラウザがURLエンコードしてくれるんだね
どのブラウザでも必ずやってくれるのかな?
そんで、エンコードされたディレクトリとファイル名は、HTTPDが勝手にデコードするので、問題なくパスが通ると。
クエリストリングってのはcgiとかの引数?かな?
cgiとかだとcgi側でデコード処理書くのが普通の気がするんだけど、そんなことないのかな?
あと、古いシステムも新しいシステムも、自動エンコードとデコードの仕様は同じ?ブラウザもHTTPDも。
このHTTPDだと自動デコードありませんとか、このブラウザだと自動エンコードありませんとか、そんなことが起きると面倒くさいんだよね