<-
Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.2

フィルタ

翻訳済み言語:  en  |  es  |  fr  |  ja  |  ko  |  tr 

Apache でのフィルタの使い方について記述しています。

top

Apache 2 のフィルタ

Apache 2.0 以降ではフィルタチェイン機能が使え、データが どこから来るかに関わらず、非常に柔軟で調整しやすい方法で 入出力データを処理できます。 入力データをプリプロセスしたり出力データをポストプロセスしたりできます。 この処理は、これまでのリクエスト処理フェーズとは根本的に独立した 処理になります。

Filters can be chained, in a Data Axis orthogonal to request processing

Apache の標準的なディストリビューションでのフィルタ例は :

チャンキングやバイトレンジ処理といった処理を行うために Apache は、内部的にいくつかのフィルタを使っています。

様々なアプリケーションがサードパーティ製のフィルタモジュールとして 実装されていて、modules.apache.org などから取得できます。たとえば :

top

スマートフィルタ

Smart filtering applies different filter providers according to the state of request processing

Apache 2.1 移行に含まれる mod_filter では、 実行時に動的にフィルタチェインを有効にできます。 ですからたとえば、HTML を HTML フィルタで、JPEG 画像をそれとは 全く別のフィルタで、書き換えるようなプロクシを設定することもできます。 その上、そのプロクシはどのオリジンサーバがコンテンツを送信するか 事前情報無しでいいように構成できます。 これは、実行時に実際のコンテンツに応じて別々のフィルタプロバイダに ディスパッチするフィルタハーネスを使うことで実現されています。 チェインの中に直接入れて無条件に適用したり、動的にプロバイダとして 適用するようにしたりすることは、どんなフィルタでもできます。 たとえば、

top

フィルタの使い方

フィルタの使い方には二つの方法があります: シンプルとダイナミック。 一般的にはどちらかのみを使ったほうがよいでしょう。 これらを組み合わせて使用すると、予期しない結果になるかもしれません。 (とはいえ、シンプルな入力フィルタとシンプルあるいはダイナミックな 出力フィルタを組み合わせることは自由に出来ます。)

シンプルな方法は、入力フィルタのみを設定し、必要に応じて 静的なフィルタチェインを出力フィルタとして設定する方法です。 関連するディレクティブは、 SetInputFilter, SetOutputFilter, AddInputFilter, AddOutputFilter, RemoveInputFilter, RemoveOutputFilter になります。

ダイナミックな方法は、静的なものとフレキシブルなものを両方有効にする 方法で、mod_filter のページで述べられています。 関連するディレクティブは、 FilterChain, FilterDeclare, FilterProvider になります。

ディレクティブ AddOutputFilterByType はまだサポートされていますが、種々の問題をはらんでおり、非推奨です。 ダイナミックな設定方法を代わりに使ってください。

翻訳済み言語:  en  |  es  |  fr  |  ja  |  ko  |  tr