No.8 1999/10/20
ダウンロード問題顛末記

 今年(1999年)の5月にGabacho-Netのウェブサービスを立ち上げて以来、画面の確認はいつもInternet Explorerでやっていました。しかし、ご覧くださる皆様のために、Netscape Communicatorでも思いどおりの画面になっているかどうかを確認した方がよいだろうと思い立ち、10月17日(日)にテストしてみました。
 そしたらなんと、ファイルダウンロードサービス(ホームページ参照)が使えないじゃありませんか。文字化けした画面が現れるだけ。いったい何だこりゃあ!
 Netscapeでも、ほかのダウンロードサービスサイトにアクセスすれば、ちゃんとファイルの保存の動作をします。リンクの書き方をいくら見直しても間違っていないしなあ。Internet Explorerでは問題ないんだしなあ。となると、私のサーバの問題かな。
 翌日、社内ネットワークの運用を担当している部下に相談してみました。
「拡張子が『.lzh』のファイルなのに、MIMEタイプが『text/plain』だとサーバから通知されているようですよ。『application/octet-stream』と通知すればうまくいくはずです。」
おおお、そうか。やっぱり私のサーバの設定の問題だったんだな。謝謝!

 教えてもらったことを簡単に説明しますと、こういうことです。
 ウェブサーバは、クライアント(ユーザーのコンピュータ)から要求されたファイルを送り出す時、そのMIME (Multipurpose Internet Mail Extensions)タイプを通知します。ファイル名の拡張子が「.html」なら「これはHTMLテキストです」、「.lzh」や「.exe」などなら「これはオクテットストリーム(任意の値をとりうるデータの列)です」、サーバの設定に登録されていない拡張子なら「これはプレーンテキスト(平文)です」(オクテットストリームに設定する場合もあるけど)という具合です。
 Internet Explorerは、ウェブサーバからのMIMEタイプの通知を無視し、ファイル名の拡張子でタイプを判断するのだそうです。つまり、拡張子が「.html」や「.htm」ならHTMLテキストだと判断して画面に表示するし、「.lzh」や「.exe」などなら「このファイルを開きますか?それとも保存しますか?」とユーザーに問い合わせます。ですから、私のウェブサーバが「これはプレーンテキストです」と不適切に通知していても、拡張子が「.lzh」なので、ユーザーは保存を選択することができたのです。
 一方、Netscapeは、ファイル名の拡張子が何であろうと、ウェブサーバからのMIMEタイプの通知の方を信用するのだそうです。「オクテットストリームです」と通知されれば保存の動作をします。アーカイブファイルなのに「これはプレーンテキストです」と通知されれば、真っ正直にそれに従って化け化け文字を表示してしまうのです。

 そうとわかれば、ウェブサーバの設定を直さなくちゃ。

 ん?confディレクトリの下にmime.typesファイルがなかったんだな。/etcの下に見本があったぞ。これを編集してconfディレクトリの下に置いてみよう。…ありゃ、まだだめだ。
 srm.confファイルでデフォルトのMIMEタイプを変更できるんだな。これを変えればmime.typesファイルを編集しなくてもいいと書いてあるぞ。んじゃ、デフォルトをapplication/octet-streamに変えてみよう。…ありゃ、まだだめだ。

 いったいどうなってるんだあああっ!

 こりゃあ、ひょっとすると、TurboLinux組み込みのhttpdバイナリーが変なコンパイルオプションで作られていて、それで設定ファイルの記述が有効にならないのかな。いっそのこと、apacheの最新版をインストールしてみようか。
 おおお、順調にインストールできたぞ。ふむふむ。新しい版では設定ファイルのコメントが変わって、わかりやすくなっているな。httpd.confファイルの中でmime.typesファイルの場所も明示されている。これに従えば完璧なはずだな。…ありゃ、まだだめだ。

 いったいどうなってるんだあああっ!

 もう20日午前1時を過ぎてしまった。あきらめて寝ようか。
 と、そこで突然ひらめきが。ダウンロード対象ファイルの日付…
 オペレーション用のWindowsマシンからもう一度ファイルをアップロードして上書きしてやれ。んで、Netscapeのキャッシュをクリアして…。おおっ、ファイル保存のウィンドウが!

 ばんざーい!

 これだったら、UNIXのtouchコマンドで日付を変えてやってもよかったのかもな。それにしても、ファイルの日付が古いままだと、間違っていた時点でのタイプ(text/plain)を通知してしまうという仕掛けなのかなあ。再読み込みしてもだめだったもんなあ。よくわからんなあ。まあ、いっか。

 今まで、Dana/Becky!用Emacs風キー定義ファイルにはずいぶんアクセスがあったんだけどなあ。「Netscapeでダウンロードできねえぞ!」という苦情は一件もなかったなあ。皆さん、Internet Explorerをお使いの方ばかりだったんでしょうか。それとも、Netscapeをお使いの方は「不備なサイトだな。もういいや」とあきらめていらっしゃったんでしょうか(そうでしたらごめんなさい)。

 ともかく解決できてよかった。かくして、ちゅうねんのおぢさんはまた一つお勉強したのでありました。めでたしめでたし。

目次 ホーム