これはサーバの仕組みなのでしょうか?
OS、ブラウザの仕組みなのでしょうか?
ACCESS
おそらくブラウザの仕様だと思います。
何のブラウザかは表記されていませんが、
ファイルの先頭の数バイトのバイナリデータを確認して認識していると思われます。
(携帯のブラウザでもそう動作する物もあるので)
URLは関係なしです。
OSの――と言うよりブラウザの仕組みですね。
Windowsは拡張子をつけることで、
ユーザーにファイルの種類をわかりやすくさせるようにしていますが、あくまでユーザーのためであり、ソフトのためではないのです。
まあ、わたしのような素人プログラマの中には、拡張子で判断する人もいますが、
それ以外のほとんどのソフトは、ファイルを拡張子ではなく、
ファイルの中に書き込まれている、ヘッダの種類などをみて、そのファイルをどう処理すべきか判断します。
ブラウザにはJPEGやPNGだったら表示、WAVやMIDなど、その他バイナリファイルならダウンロードダイアログ表示、など、
よく使うファイルの情報があらかじめ記憶されているので、
拡張子に関係なくファイルが表示されるのですね。
なるほど。
分かりやすい説明ありがとうございます。
http://www.hatena.ne.jp/1095941159#
htmlファイルの拡張子を.jpgに変更(単なる名前の変更)して、ブラウザでアクセスするとhtmlとして表示されます。 これはサーバの仕組みなのでしょうか? OS、ブラウザの仕.. - 人力検索はてな
単にjpg(画像ファイル)のブラウザがMS-IEに結び付けられているからじゃないですか?
ん?関連付けって事ですか?
http://tohoho.wakusei.ne.jp/wwwxx015.htm
そのファイルは現在ありません
サーバの仕組み、ブラウザの仕組みの両方の可能性が考えられます。上のサイトの「しかし、Internet Explorerなどのブラウザでは」というところが参考になると思います。
サーバ側でファイルの中身をみてMIMEタイプを設定している可能性もありますし、ブラウザがMIMEタイプを無視して、ファイルの中身からHTMLだと判断している可能性もあります。
通常はブラウザの仕組みだと考えるのが妥当だろうと思います。
質問に至った理由は友人が設置した、画像のアップできるcgiでそのようなファイルをアップできてしまったからでした。
仕組みがわからなかったのでこの質問をしたのですが、htaccessでの対処にも触れられていたので助かります。ありがとうございます。
http://www.microsoft.com/japan/msdn/windows/windowsxp/xpsp2websi...
このページは、存在しないか、削除されています。
サーバ側で細工をすることもできるようですが普通はそんなことをしないので、お尋ねのケースの場合はブラウザ(InternetExplorer特有)の仕組みといっていいかと思います。
ただし、これはWindowsXPsp2から訂正されたようです。(URL参照)
おお。ようやくって感じですね。
2000sp5でも訂正されるのかな。
http://www.shtml.jp/htaccess/mime.html
.htaccessでMIMEタイプの設定を行う
まず、自分のHDにある、HTMLをJPGに変えてIEで見てください。×が表示されます。
と言うことは、OS、ブラウザでないということです。
私が今確認したところ、サーバによって、HTMLとして表示されるところとソースが表示されるところがありました。
サーバ側の仕組みでこうなります。
URLにありますが、各サーバでユーザーに解放しているところとしていないところがありますが、「.htaccess」と言うファイルでその辺のことをしています。
サーバだったら、この質問の後に対策を質問しようと思っていました。
ありがとうございます。
http://www.hatena.ne.jp/1095941159
htmlファイルの拡張子を.jpgに変更(単なる名前の変更)して、ブラウザでアクセスするとhtmlとして表示されます。 これはサーバの仕組みなのでしょうか? OS、ブラウザの仕.. - 人力検索はてな
確証はありませんが、サーバ側の仕組み
のような気がします。
試してみました。
■実験1
Windows2000のローカルで
htmlファイルの拡張子を.jpgに変更し
ブラウザ(IE6、FireFox)にドラッグ&ドロップすると
正常に表示されません。
■実験2
ウェブサーバ(Apache)を経由して
先ほどのjpgを表示したところ正しく表示されました。
以上の事から
1、2、3 の回答は間違っていると思います。
実験1は私もやってみたのですが、Mac使いの友人では表示されないという事だったので混乱してしまい質問に至りました。
ありがとうございます。
-----
落ち着いてから頂いた全ての回答を読んでよくよく考えてみました。
基本的な事が知りたかったので私の情報は書かなかったのですが(申し訳ないです)、
サーバは比較的有名な無料レンタルサーバ。
MimeTypeは当然、適切に設定されているわけで。
念のために.htaccessを置いてみましたがWindows2k,IE6.02では相変わらずhtmlが表示。
これはもう確実に、ブラウザ(IE)の仕様ですね。
ただ、Mac版では表示されないようなのでOSも多少也と関係があるのかな。
最終的な目的は、アップロードCGIで拡張子変更されたhtmlへ対策を図る事だったのですが、どうしようもないようです。
バイナリデータを確認するスクリプトにしたほうが良いですね。
ありがとうございました。
ブラウザですか。
ありがとうございます。