前へ 目次 索引 DocHome 次へ |
iPlanet Web Server, Enterprise Edition NSAPI プログラマーズガイド |
付録 B MIME タイプ
この付録では、MIME タイプファイルについて説明します。次の節があります。
はじめに
config ディレクトリ内の MIME タイプファイルには、MIME (Multipurpose Internet Mail Extensions) タイプとファイル拡張子が含まれています。たとえば、MIME タイプファイルは、拡張子 .html と .htm をタイプ text/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 属性の値を考慮します。デフォルトでは、type が magnus-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,battype が magnus-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 タイプを使ってそのデータの処理方法を決定します。ブラウザクライアントの場合、通常は、データをブラウザウィンドウに表示します。
要求されたリソースをブラウザに表示できず、別のアプリケーションで処理する必要がある場合、その type は application/ で始まります。たとえば、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]
MIME タイプファイルの例
MIME タイプファイルの一例を次に示します。
前へ 目次 索引 DocHome 次へ
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.
Last Updated September 24, 2001