前へ     目次     索引     DocHome     次へ     
iPlanet Web Server, Enterprise Edition NSAPI プログラマーズガイド



付録 B   MIME タイプ


この付録では、MIME タイプファイルについて説明します。次の節があります。



はじめに

config ディレクトリ内の MIME タイプファイルには、MIME (Multipurpose Internet Mail Extensions) タイプとファイル拡張子が含まれています。たとえば、MIME タイプファイルは、拡張子 .html.htm をタイプ text/html にマッピングします。

type=text/html exts=htm,html

iPlanet Web Server は、リソースに対する要求をクライアントから受け取ったとき、MIME タイプのマッピングを使用して、要求されているリソースの種類を判別します。

MIME タイプは次の 3 つの属性によって定義されます。言語 (lang)、エンコーディング (enc)、およびコンテンツのタイプ (type)です。各タイプには、これらの属性のうち少なくとも 1 つがなければなりません。もっともよく使われる属性は、type です。サーバは、クライアントへの応答の生成方法を決定するときに、しばしば type を検討します (enc および lang 属性が使われることはまれです)。

デフォルトの MIME タイプファイルは、mime.types と呼ばれます。



MIME タイプを判別する



要求処理プロセスの ObjectType ステップの間に、サーバは、クライアントが要求したリソースの MIME タイプ属性を判別します。MIME タイプの判別に使用できるサーバアプリケーション関数 (SAF) はいくつかありますが、もっともよく使われるものは type-by-extension です。この関数は、MIME タイプテーブルから、要求されたリソースのファイル拡張子に従って MIME タイプを探すよう、サーバに指示します。

obj.conf 内の指令のうち、拡張子に従って MIME タイプを調べるようサーバに指示する指令は、次のとおりです。

ObjectType fn=type-by-extension

サーバが type の判別のために force-type などの別の SAF を使用する場合は、MIME タイプテーブルはその特定の要求のためには使用されません。

ObjectType ステップの詳細は、第 2 章「obj.conf の構文と使用法」を参照してください。



タイプが応答へどのように影響するか



サーバは、クライアントへの応答の生成に使用する obj.conf 内の Service 指令を決定するとき、type 属性の値を考慮します。

デフォルトでは、typemagnus-internal/ で始まらない場合、サーバは単に要求されたファイルをクライアントに送信します。この命令が含まれている obj.conf 内の指令は、次のとおりです。

Service method=(GET|HEAD|POST) type=*~magnus-internal/* fn=send-file

ここで使われている特殊文字 *~ は「一致しない」ことを意味しています。特殊文字の詳細は、付録 C「ワイルドカードパターン」を参照してください。

要求されたリソースを単にクライアントに送信するだけでなくサーバによる何らかの処理を要求する場合の type の値は、規則によって、すべて magnus-internal/ で始まります。

次の例では、要求されたリソースのファイル拡張子が .map の場合、このタイプは magnus-internal/imagemap にマッピングされます。拡張子が .cgi、 .exe、または .bat の場合、タイプは magnus-internal/cgi に設定されます。


type=magnus-internal/imagemap       exts=map
type=magnus-internal/cgi            exts=cgi,exe,bat

typemagnus-internal/ で始まる場合、サーバは、obj.conf 内にある指定したタイプに一致した Service 指令を実行します。たとえば、タイプが magnus-internal/imagemap の場合、サーバは、次の指令に示されるように、imagemap 関数を使用してクライアントへの応答を生成します。

Service method=(GET|HEAD) type=magnus-internal/imagemap fn=imagemap

タイプが magnus-internal/servlet の場合、サーバは、次の指令に示されるように、NSServletService 関数を使用してクライアントへの応答を生成します。

Service type="magnus-internal/servlet" fn="NSServletService"



クライアントが MIME タイプを使って行なう作業



Service 関数は、データを生成し、要求を行なったクライアントに生成したデータを送信します。サーバは、クライアントにデータを送信するとき、ヘッダーも一緒に送信します。このときのヘッダーには、わかっている MIME タイプ属性 (通常は type) が含まれています。

クライアントはデータを受信したときに、MIME タイプを使ってそのデータの処理方法を決定します。ブラウザクライアントの場合、通常は、データをブラウザウィンドウに表示します。

要求されたリソースをブラウザに表示できず、別のアプリケーションで処理する必要がある場合、その typeapplication/ で始まります。たとえば、application/octet-stream (ファイル拡張子が .binの場合) または application/x-maker (ファイル拡張子が .fm の場合) のようになります。クライアントには、ユーザによる編集が可能な、クライアント独自のマッピングのセットがあります。そこでは、どのタイプのデータに対してどのアプリケーションで処理をするのかが、マッピングのセットによって指示されています。

たとえば、タイプが application/x-maker の場合、一般にクライアントは、Adobe FrameMaker を使用してファイルを表示します。



MIME タイプファイルの構文



MIME タイプファイルの最初の行はファイル書式を示し、次のようになっている必要があります。

#--Netscape Communications Corporation MIME Information

コメント行以外の他の行は、次の書式になります。

type=type/subtype exts=[file extensions]

  • type/subtype はタイプとサブタイプです

  • exts は、このタイプと関連付けられているファイル拡張子です。



MIME タイプファイルの例

MIME タイプファイルの一例を次に示します。


#--Netscape Communications Corporation MIME Information
# 上記の行を削除しないでください。上記の行は、ファイルタイプの識別に使用され
# ています
type=application/octet-stream      exts=bin,exe
type=application/oda               exts=oda
type=application/pdf               exts=pdf
type=application/postscript        exts=ai,eps,ps
type=application/rtf               exts=rtf
type=application/x-mif             exts=mif,fm
type=application/x-gtar            exts=gtar
type=application/x-shar            exts=shar
type=application/x-tar             exts=tar
type=application/mac-binhex40      exts=hqx

type=audio/basic                   exts=au,snd
type=audio/x-aiff                  exts=aif,aiff,aifc
type=audio/x-wav                   exts=wav

type=image/gif                     exts=gif
type=image/ief                     exts=ief
type=image/jpeg                    exts=jpeg,jpg,jpe
type=image/tiff                    exts=tiff,tif
type=image/x-rgb                   exts=rgb
type=image/x-xbitmap               exts=xbm
type=image/x-xpixmap               exts=xpm
type=image/x-xwindowdump           exts=xwd

type=text/html                     exts=htm,html
type=text/plain                    exts=txt
type=text/richtext                 exts=rtx
type=text/tab-separated-values     exts=tsv
type=text/x-setext                 exts=etx

type=video/mpeg                    exts=mpeg,mpg,mpe
type=video/quicktime               exts=qt,mov
type=video/x-msvideo               exts=avi

enc=x-gzip                         exts=gz
enc=x-compress                     exts=z
enc=x-uuencode                     exts=uu,uue

type=magnus-internal/imagemap      exts=map
type=magnus-internal/parsed-html   exts=shtml
type=magnus-internal/cgi           exts=cgi,exe,bat
type=magnus-internal/jsp           exts=jsp


前へ     目次     索引     DocHome     次へ     
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.

Last Updated September 24, 2001