朝顔日記

MIMEタイプとかwinIEとか

publish
2003-06-19T00:00:00+09:00
tags
はてぶ

Another 朝顔日記(03年6月19日)MIMEタイプという記事にalmikaさんがコメントを寄せてくださいました。

それを読んで実験してみることにしました。が、その前に私の書いた該当記事と alimika さんのコメントをこちらにも再掲しておきます。

UA が鯖に対して、hogehoge というファイルをリクエストして、鯖がそれを送ってくれるわけだけども、その際にその hogehoge なるファイルが一体どういう種類のファイルかわからないと、UA がそれを受け取った時にどう処理していいのかわからなくなるので、鯖は hogehoge を送り出すときに、hogehoeg はこんな種類のファイルだよという情報も送ってくれます。そうすれば hogehoge を受け取った UA は適切な処理を行うことが可能になります。

では、鯖が知らないファイルタイプだったり、あるいは適切でない設定がなされていた場合は、どうしたらいいでしょう? 普通のユーザは鯖の設定などいじらせてもらえるはずもないので、ユーザディレクトリに対する限定的な設定ファイルというものが使える場合があり、それが .htaccess というファイルであると。

今回(何)の .rdf、.xml という拡張子の話でいえば、どうも一般的な鯖だと、まだ新しい .rdf なファイルは、text/plain として送出されるぽいので、鯖の言う情報を正直に解釈する mozilla 系の UA だと単なるテキストファイルとして表示してしまうわけですね。

これを回避するには、.htaccess で .rdf なファイルは xml だよんと再定義してやればいいわけです。しかし、.htaccess をいじらせてもらえない場合もあります。

ではどうしたらいいか。どうも一般的な鯖の場合、拡張子を .xml にすれば鯖のデフォルト設定で、そのファイルを text/xml として送出してくれるぽいということです。こちらとしては xmlなドキュメントとして扱ってもらいたいわけだからこれはナイスな事です。ならば何も拡張子 .rdf にこだわる必要はさらさらなくて、拡張子を .xml にすれば済むという事です。

IEなどは、鯖が送ってくれるMIMEタイプよりも拡張子を信用する癖(?)があるらしくて、鯖が送ってくれたMIMEタイプを無視してそれを処理するみたいですね。

コメント

WinIEは拡張子を信用するというか、その前にファイルの内容そのものを調べて、その判定結果を優先してる気配があります。

で、私が試してみたこと。まず、ローカルで動かしている AN HTTPDの設定をいじって、拡張子 foo に text/plain な MIME タイプを設定しました。次に test1.foo というファイルと test2.foo というファイルを作って AN HTTPD 経由で見てみました。test1.foo の中味は xhtml1.0strict な html ファイルです。で、test2.foo の中味は html4.01strict な html ファイルです。

この test1.foo と test2.foo を まず Mozilla Firebird で見てみました。どちらのファイルもプレーンテキストとして表示されました。こちらの予定通りの動作です。

次に test1.foo を winIE5.5 で見てみました。スタイル無しの xml を表示させたときの例の折り畳み式の表示になりました。どうも xml なドキュメントだという風に winIE5.5 は解釈したようです。では、test2.foo はどうでしょう。今度は普通(?)の html な表示になりました。

ということで、winIE は alimika さんが言われるように、ファイルの中味を見てそのファイルの種類を判定しているようです。しかしどこまでみているものか気になったので、適当な画像ファイル(jpeg)をpicture.fooとリネームしてこれをwinIE5.5で見てみました。

さぁ、これはどうでしょう。なんと winIE はちゃんと画像ファイルを表示してくれました。恐るべし、winIE。ちなみに Mozilla Firebird は、ちゃんとテキストとして開いてくれました。文字化けの嵐です。:p)

ということで、やっぱり winIE は、拡張子のみならずファイルの中味まで見ているようです。ちなみに、xhtml な test1.foo から doctype 宣言はそのままに、xml 宣言を外してみたら html なレンダリングをしました。

通常は拡張子.html な同じ内容の xhtml ドキュメントを html ファイルとしてレンダリングしているんだからやはり拡張子も見ているには違いないのですが。

「MIMEタイプとかwinIEとか」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030619a.html