content negotiationのために提供されます。
概要
Content negotiationかより的確なコンテンツの選択とは、利用可能なドキュメントの一つからクライアントの能力に最もマッチするドキュメントの選択をすることです。これには2つの実行方法があります。
- 変数を含むファイルを明確にリストするタイプマップ(type-mapハンドラーをもつファイル)
- 複数の検索(サーバが暗黙のファイル名パターンにマッチし、結果から選択される複数のOptionによって可能になった。)
Type maps
type mapはRFC822メイルヘッダーと同様のフォーマットです。type mapはブランクによって区切られたドキュメントの記述方法そします。コメントとして取り扱うときはそのラインをハッシュ文字('#')で始めます。そのドキュメントはいくつかのヘッダーレコードからなっています。そのレコードはもしその連続したラインがスペースで始まるなら複数のラインでつながっています。スペースで始まるラインは削除され、連結されます。ヘッダーレコードはキーワード名から構成されます。それは常にコロンで終わります。次のようなヘッダーがあります。:
- Content-Encoding:
- ファイルのコード化。現在ただ2つだけのencodingsがhttpによって認識されます;圧縮ファイルのためのx-compressとgzipファイルのためのx-gzipです。
- Content-Language:
- enのようなインターネット水準言語コードの変形言語。
- Content-Length:
- バイトによるファイルの長さ。もしこのヘッダーが存在していないなら、ファイルの実際の長さとなります。
- Content-Type:
- オプションのパラメータを持つドキュメントのMIMEメディアタイプ。パラメータはメディアタイプとセミコロンで区切ってもう一つのメディアタイプで分離されます。パラメータの文法はname=valueです。パラメータは次のようになります。
- level
- その値はintegerです。そしてそれはメディアタイプのバージョンを指定します。text/htmlに関してこのデフォルトは2です。または0です。
- qs
- その値は0と1の間の値をもつ浮動小数点の数です。それはこの変形の質を示します。
例:
Content-Type: image/jpeg; qs=0.8
- URI:
- この変形を含むファイルのパスはマップファイルの相対パスになります。
MultiViews
MultiViews検索がMultiViewsOptionによって可能になります。もし/some/dir/fooと/some/dir/fooに対してのリクエストをサーバが受けないなら、サーバはfoo.*という名前のファイルすべてを探してディレクトリを読み込みます。そして効果的にそれらのすべてのファイル名をタイプマップするふりをします。もしクライアントが名前をそれらの一つに尋ねたならばそれが持っている同様のメディアタイプとcontent-encodingsを割り当てます。それはクライアントの要求にもっともマッチしたものを選択し、ドキュメントを返します。
命令
CacheNegotiatedDocs
Syntax: CacheNegotiatedDocs
Context: server config
Status: Base
Module: mod_negotiation
Compatibility: CacheNegotiatedDocsはApache 1.1以降で使用可能です。
もし設定されたなら、この命令はcontent-negotiatedが設定されたドキュメントにプロキシーサーバによってキャッシュされることを許可します。これはプロキシーを使用しているクライアントがその性能に対して最もマッチしていないドキュメントのバージョンを検索することができることを意味しています。しかしそれはより効率的にキャッシュすることを可能にするでしょう。
この命令はHTTP/1.0ブラウザを実行するリクエストにのみ対応しています。HTTP/1.1は要求されたドキュメントのキャッシュをより効果的にコントロールし、この命令はHTTP/1.1リクエストに対するレスポンスに影響を与えません。
LanguagePriority
Syntax: LanguagePriority mime-lang mime-lang...
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Status: Base
Module: mod_negotiation
LanguagePriorityは言語変化の優先をクライアントがMultiViewsリクエストをハンドルするとき優先を表さない場合に対応するために設定します。mime-langのリストは後の方にリストされる程優先順位が下がります。例:
LanguagePriority en fr de
foo.htmlのリクエストに対して、foo.html.frとfoo.html.deの両方が存在したときブラウザは選択された言語を表示しません。そのときはfoo.html.frが返されます。
この命令はもし最も効果的な言語がいくつかの他の意味によって決定されないなら、ただ効果を持つだけであることに注意してください。 正確に実行された HTTP/1.1リクエストはこの命令が効果的でないと判断します。
このJAPACHE!ニュースグループへ
(
japache.mod.negotiation
)
| JAPACHE!ニュースについて
| JAPACHE!ホームページへ
このページの情報に関わる、ご質問、お問い合わせは、
japache@infoscience.co.jpまで。
The English original manual is here.