拡張子とMIMEタイプ

とほほのWWW入門 > アラカルト > 拡張子とMIMEタイプ
1999年1月31日版

拡張子とは?

ファイル名の最後のドット(.)から後ろの部分を『拡張子』と呼びます。index.html の拡張子は .html で、title.gif の拡張子は .gif です。拡張子はそのファイルが何であるかを示します。例えば、.html はHTML文書、.txtはテキスト文書、.gifはGIF画像、.jpgはJPEG画像のファイルであることを示しています。

Windowsでの拡張子の取り扱い

Windowsにおいては、ファイルをダブルクリックした時の動作はこの拡張子によって決まります。例えば .txt のファイルをダブルクリックすると[メモ帳]が起動するし、.bmpのファイルをダブルクリックすると[ペイント]が起動します。どの拡張子にどんなアプリケーションが割り当てられているかは、エクスプローラ(インターネットエクスプローラではない方)の[表示]-[オプション]-[ファイルタイプ]で確認することができます。

WEBにおける拡張子の取り扱い(MIMEタイプ)

WEBの世界では拡張子という概念と、もうひとつ『MIMEタイプ』という概念があります。MIMEタイプとは「タイプ名/サブタイプ名」の形式の文字列で、WEBサーバーとWEBブラウザの間はこのMIMEタイプを用いてデータの形式を指定しています。例えばMIMEタイプには以下のようなものがあります。

ファイル形式拡張子MIMEタイプ
テキスト.txttext/plain
HTML文書.htm .htmltext/html
GIF画像.gifimage/gif
JPEG画像.jpg .jpegimage/jpeg
CGIスクリプト.cgiapplication/x-httpd-cgi

ブラウザが xx.gif というファイルをWEBサーバーに要求する際、WEBサーバーはxx.gifの内容(データ)を「これは image/gif タイプのデータです」と言いながら返却してくれます。これにより、ブラウザは受け取ったデータを正常に処理することができるのです。

MIMEタイプの設定方法

WEBサーバーによって設定方法は異なるのですが、現在最もよく使用されている Apache というWEBサーバーでは、.htaccess というファイルによってMIMEタイプを指定します。データ(xxx.htmlなど)と同じディレクトリ(フォルダ)に .htaccess という名前のファイルを用意して、その中身を
    AddType text/html .html
としておけば、WEBサーバーは、「.html という拡張子のファイルは text/html というMIMEタイプのデータとして送信する」という処理を行ってくれます。.html や .gif などに関してはプロバイダ側がすでにこの設定を行ってくれているのでわざわざ追加する必要はありませんが、CGIを設置したり、RealAudioなどのちょっと特殊なファイルを設置する際には、.htaccess による設定が必要です。

.htmlと.htmの違い

HTML文書の拡張子は .html だったり .htm だったりします。元々は .html だったのですが、マイクロソフト社の古いOS(MS-DOS や Windows 3.1)では、拡張子を3文字までしか扱えなかったため、.html を .htm、.jpeg を .jpg と記述していました。そのため、.html と .htm が存在しています。

現在でもまだ3文字の拡張子しか扱えないソフトが残っていたり、マイクロソフトが .html よりも .htm の方を標準的に使用しようとしていたりして、現在は .html と .htm が混在した状態になっています。

.html と .htm は、基本的にはどちらでも構いませんが、プロバイダによっては片方しか使用できないところがあります。

.shtmlって何?

.shtmlという拡張子を時たま見かけますが、これは、SSIを含んだHTML文書によく使用されます。SSIを実行するには、WEBサーバがHTML文書内をすべて解釈しなくてはならないので、「.html や .htm はSSI解釈しない、.shtml のみをSSI解釈する」と設定することにより、WEBサーバーの負荷を緩和しています。

Copyright (C) 1996-1999 とほほ
http://wakusei.cplaza.ne.jp/twn/wwwxx015.htm