htmlファイルの拡張子を.jpgに変更(単なる名前の変更)して、ブラウザでアクセスするとhtmlとして表示されます。

これはサーバの仕組みなのでしょうか?
OS、ブラウザの仕組みなのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答7件)

id:kddi No.1

回答回数277ベストアンサー獲得回数2

ポイント20pt

おそらくブラウザの仕様だと思います。

何のブラウザかは表記されていませんが、

ファイルの先頭の数バイトのバイナリデータを確認して認識していると思われます。

(携帯のブラウザでもそう動作する物もあるので)

id:sher

ブラウザですか。

ありがとうございます。

2004/09/23 21:20:25
id:TakamiChie No.2

回答回数59ベストアンサー獲得回数0

ポイント20pt

 URLは関係なしです。

 OSの――と言うよりブラウザの仕組みですね。

Windowsは拡張子をつけることで、

ユーザーにファイルの種類をわかりやすくさせるようにしていますが、あくまでユーザーのためであり、ソフトのためではないのです。

 まあ、わたしのような素人プログラマの中には、拡張子で判断する人もいますが、

それ以外のほとんどのソフトは、ファイルを拡張子ではなく、

ファイルの中に書き込まれている、ヘッダの種類などをみて、そのファイルをどう処理すべきか判断します。

ブラウザにはJPEGやPNGだったら表示、WAVやMIDなど、その他バイナリファイルならダウンロードダイアログ表示、など、

よく使うファイルの情報があらかじめ記憶されているので、

拡張子に関係なくファイルが表示されるのですね。

id:sher

なるほど。

分かりやすい説明ありがとうございます。

2004/09/23 21:24:23
id:EddyYamanaka No.3

回答回数385ベストアンサー獲得回数1

ポイント5pt

http://www.hatena.ne.jp/1095941159#

htmlファイルの拡張子を.jpgに変更(単なる名前の変更)して、ブラウザでアクセスするとhtmlとして表示されます。 これはサーバの仕組みなのでしょうか? OS、ブラウザの仕.. - 人力検索はてな

単にjpg(画像ファイル)のブラウザがMS-IEに結び付けられているからじゃないですか?

id:sher

ん?関連付けって事ですか?

2004/09/23 21:26:07
id:koseki No.4

回答回数6ベストアンサー獲得回数0

ポイント20pt

http://tohoho.wakusei.ne.jp/wwwxx015.htm

そのファイルは現在ありません

サーバの仕組み、ブラウザの仕組みの両方の可能性が考えられます。上のサイトの「しかし、Internet Explorerなどのブラウザでは」というところが参考になると思います。

サーバ側でファイルの中身をみてMIMEタイプを設定している可能性もありますし、ブラウザがMIMEタイプを無視して、ファイルの中身からHTMLだと判断している可能性もあります。

通常はブラウザの仕組みだと考えるのが妥当だろうと思います。

id:sher

質問に至った理由は友人が設置した、画像のアップできるcgiでそのようなファイルをアップできてしまったからでした。

仕組みがわからなかったのでこの質問をしたのですが、htaccessでの対処にも触れられていたので助かります。ありがとうございます。

2004/09/23 21:31:13
id:Mars No.5

回答回数203ベストアンサー獲得回数20

ポイント20pt

http://www.microsoft.com/japan/msdn/windows/windowsxp/xpsp2websi...

このページは、存在しないか、削除されています。

サーバ側で細工をすることもできるようですが普通はそんなことをしないので、お尋ねのケースの場合はブラウザ(InternetExplorer特有)の仕組みといっていいかと思います。

ただし、これはWindowsXPsp2から訂正されたようです。(URL参照)

id:sher

おお。ようやくって感じですね。

2000sp5でも訂正されるのかな。

2004/09/23 21:37:35
id:paphio No.6

回答回数299ベストアンサー獲得回数0

ポイント15pt

http://www.shtml.jp/htaccess/mime.html

.htaccessでMIMEタイプの設定を行う

まず、自分のHDにある、HTMLをJPGに変えてIEで見てください。×が表示されます。

と言うことは、OS、ブラウザでないということです。

私が今確認したところ、サーバによって、HTMLとして表示されるところとソースが表示されるところがありました。

サーバ側の仕組みでこうなります。

URLにありますが、各サーバでユーザーに解放しているところとしていないところがありますが、「.htaccess」と言うファイルでその辺のことをしています。

id:sher

サーバだったら、この質問の後に対策を質問しようと思っていました。

ありがとうございます。

2004/09/23 21:40:39
id:kishiro No.7

回答回数161ベストアンサー獲得回数4

ポイント10pt

http://www.hatena.ne.jp/1095941159

htmlファイルの拡張子を.jpgに変更(単なる名前の変更)して、ブラウザでアクセスするとhtmlとして表示されます。 これはサーバの仕組みなのでしょうか? OS、ブラウザの仕.. - 人力検索はてな

確証はありませんが、サーバ側の仕組み

のような気がします。

試してみました。

■実験1

Windows2000のローカルで

htmlファイルの拡張子を.jpgに変更し

ブラウザ(IE6、FireFox)にドラッグ&ドロップすると

正常に表示されません。

■実験2

ウェブサーバ(Apache)を経由して

先ほどのjpgを表示したところ正しく表示されました。

以上の事から

1、2、3 の回答は間違っていると思います。

id:sher

実験1は私もやってみたのですが、Mac使いの友人では表示されないという事だったので混乱してしまい質問に至りました。

ありがとうございます。

-----

落ち着いてから頂いた全ての回答を読んでよくよく考えてみました。

基本的な事が知りたかったので私の情報は書かなかったのですが(申し訳ないです)、

サーバは比較的有名な無料レンタルサーバ。

MimeTypeは当然、適切に設定されているわけで。

念のために.htaccessを置いてみましたがWindows2k,IE6.02では相変わらずhtmlが表示。

これはもう確実に、ブラウザ(IE)の仕様ですね。

ただ、Mac版では表示されないようなのでOSも多少也と関係があるのかな。

最終的な目的は、アップロードCGIで拡張子変更されたhtmlへ対策を図る事だったのですが、どうしようもないようです。

バイナリデータを確認するスクリプトにしたほうが良いですね。

ありがとうございました。

2004/09/23 23:33:31
  • id:sleepyhead
    sleepyhead 2004/09/24 00:05:09
    IEが悪いんだw

    kishiroさんと同じ実験をしてみました。確かにIEではjpgファイルをhtmlファイルとして認識しましたが、
    OPERA・Netscape7は共にエラー。NetScapeでは
    「画像”http://127.0.0.1/xxx.jpg” は、エラーを含んでいるため表示できません。」
    と表示されました。

    恐らくIEはローカルからのアクセスとHTTPからのアクセスで違うプロセスを取るのではないかと自分は思います。
    よくワカンナイですけど。ついでに試しにxxx.htmlというファイルをxxx.aaaとリネームしIEにドラッグ&ドロップ
    したらちゃんとhtmlファイルとして認識されました。なんだかな。

    PHPで(リアルタイムで)生成した画像なんて中身はjpgやgifでも拡張子はphpになっちゃうわけで、こういう機能は
    仕方ないといえば仕方ない気もします。結局MIMEと拡張子が一致しない場合に弾くような処理をするしかない気も
    します。

    意味のない話長々とすみません。
  • id:kishiro
    Re:IEが悪いんだw

    2つ目の方はFireFoxでの検証がもれてました。すいません。
    再度検証してsleepyheadさんの検証と一致しました。

    IEはMS-Office関連付けられたのファイルを扱う場合もMIMEを無視する事がありますね。
    逆にHTMLをMIMEでExcelに関連付けると表示時にローカルでHTMLを書き換えちゃうし。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません