ブラウザによって表示されない画像があるのでしょうか?

[上に] [前に] [次に]
vado [HomePage] 1999/09/01(水) 21:27:21
ブラウザによって表示されない画像ってあるのでしょうか?
最近開設した僕のページでは
NNでは一つしか表示されない画像が、IEだと全部表示されるんですよ。
どういうことなんでしょうか・・・

B-Cus 1999/09/01(水) 21:47:35
ファイル名にスペース入れてるから。

例えば http://plaza27.mbn.or.jp/~vado/door ryobiraki.gif
NN/NCでは  http://plaza27.mbn.or.jp/~vado/door+ryobiraki.gif
というリクエストを出すんでしょうな。一方IEだと
http://plaza27.mbn.or.jp/~vado/door%20ryobiraki.gif
なんでしょう。

WWWサーバ側では、door+ryobiraki.gif というアクセスがあると、
そのまま door+ryobiraki.gif というファイルを探しにいって
not found。一方、door%20ryobiraki.gif だと、URLデコードして
door(空白)ryobiraki.gif を探すので表示可能、と。

ところで、これ、door+ryobiraki.gif を受けても door ryobiraki.gif を
探すべきじゃないのかな〜と思うんですが、このapacheの挙動は正しいの?

vado [HomePage] 1999/09/01(水) 22:24:15
[[解決]]
ありがとうございました。
お陰様で、全て解決しました。
スペースが入るか入らないかでこんなに変わるとは
思いませんでした。

B-Cus 1999/09/08(水) 03:58:12
> このapacheの挙動は正しいの?
誰か教えて〜。

B-Cus 1999/09/09(木) 02:20:10
うーん、反応がない。

apache以外のwebサーバだと、+でOK? それとも%20でなくちゃダメ?

B-Cus 1999/09/09(木) 02:33:21
あ、うちに CERN httpd環境があったんだった。
やってみると、+はダメ、%20はOK、というapacheと同じ結果。

ということは、NN/NCのバグ?
とりあえずちゃんとRFC読んでみよう…。

ふじ 1999/09/09(木) 03:33:21
AnHTTPD1.18(Win32), Apache1.3.6(Win32)での動作。

test txt.txt
というファイルを置いて、

test+txt.txt
をリクエストすると Not Found(404)。

test%20txt.txt
だと見つかります。

test txt.txt
を指定した場合はブラウザに依るようで、NNは
test txt.txt
をGETしようとし、IE4は
test%20txt.txt
をGETしようとしているようです。
#直接URL指定欄に入力した場合。

サーバのアクセスログを見た限りでは、AnHTTPDは生で空白文字が入る(NNがリクエストした場合)
とそこで切ってしまって、アクセスログには
"GET /test HTTP/1.0"
と記録されますが、Apacheでは
"GET /test txt.txt HTTP/1.0"
と記録されています。

>apache以外のwebサーバだと、+でOK? それとも%20でなくちゃダメ?
9日(午後)になったら Netscape のサーバでも確認してみますね。

で、 + の扱いについてですが、
+ は URI(URL?)の「区切り文字」として予約されてはいますが
それを空白文字に置き換えて解釈する、という約束はないような・・・

http://hp.vector.co.jp/authors/VA014833/rfc2396J.html

ふじ 1999/09/09(木) 04:12:07
Opera3.60でも test txt.txt は test%20txt.txt というリクエストを出しているようです。

空白をそのまま送ってしまう NN/NC のバグ(仕様?)なのかも・・・
#Mozilla5(MS8)でも同様のようです。

B-Cus 1999/09/09(木) 04:21:00
> 空白をそのまま送ってしまう NN/NC のバグ(仕様?)なのかも・・・
ああ、ほんとだ。今の今までログ見てなかったっす。
送られるパケット見ても、たしかに空白のままですねぇ。
「+」というのは僕の勘違いでした。

空白を使うのが悪いとはいえ、これはバグ…かなぁ、やっぱり。

B-Cus 1999/09/09(木) 04:48:44
> http://hp.vector.co.jp/authors/VA014833/rfc2396J.html
むむ、
 空白を表す文字は排除されます。なぜなら、significantな空白は見えない
 ことでしょうし、insignificantな空白はURIが打ち込まれたときや文書処理
 プログラムの処理によって入ってしまうかもしれないからです。空白文字も
 やはり多くの文脈においてURIを区切るのに使われます。
だって。バグとは言えないのかなぁ?
 記入された URI を回避するしないはその意味論を変化させるかもしれないので、
 URI は常に『回避された』形になっています。
つーことは、<a href="hoge fuga.txt"> はエスケープされてないので
ダメということですよね。

# しかし変な訳文だ…とは口が割けても言えない。こっちの英語読解能力が
# 変なのかもしれんし :-)

[上に] [前に] [次に]