blob: f3f55ee6334f90a143a034a64e14a3d36070fd6e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>フィルタ - Apache HTTP サーバ</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">モジュール</a> | <a href="./mod/directives.html">ディレクティブ</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">用語</a> | <a href="./sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サーバ バージョン 2.2</p>
<img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーバ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> > <a href="./">バージョン 2.2</a></div><div id="page-content"><div id="preamble"><h1>フィルタ</h1>
<div class="toplang">
<p><span>翻訳済み言語: </span><a href="./en/filter.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./es/filter.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="./fr/filter.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="./ja/filter.html" title="Japanese"> ja </a> |
<a href="./ko/filter.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/filter.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
<p>Apache でのフィルタの使い方について記述しています。</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#intro">Apache 2 のフィルタ</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#smart">スマートフィルタ</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#using">フィルタの使い方</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="intro" id="intro">Apache 2 のフィルタ</a></h2>
<table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code></li><li><code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code></li><li><code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="./mod/mod_charset_lite.html">mod_charset_lite</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_filter.html#filterchain">FilterChain</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterdeclare">FilterDeclare</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprotocol">FilterProtocol</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#addinputfilter">AddInputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#removeinputfilter">RemoveInputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#removeoutputfilter">RemoveOutputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code></li><li><code class="directive"><a href="./mod/mod_ext_filter.html#extfilteroptions">ExtFilterOptions</a></code></li><li><code class="directive"><a href="./mod/core.html#setinputfilter">SetInputFilter</a></code></li><li><code class="directive"><a href="./mod/core.html#setoutputfilter">SetOutputFilter</a></code></li></ul></td></tr></table>
<p>Apache 2.0 以降ではフィルタチェイン機能が使え、データが
どこから来るかに関わらず、非常に柔軟で調整しやすい方法で
入出力データを処理できます。
入力データをプリプロセスしたり出力データをポストプロセスしたりできます。
この処理は、これまでのリクエスト処理フェーズとは根本的に独立した
処理になります。</p>
<p class="figure">
<img src="images/filter_arch.png" width="569" height="392" alt="Filters can be chained, in a Data Axis orthogonal to request processing" />
</p>
<p>Apache の標準的なディストリビューションでのフィルタ例は :</p>
<ul>
<li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code> で、サーバサイドインクルード SSI を実装しています</li>
<li><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> で、SSL 暗号化 (https) を実装しています。</li>
<li><code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code> で、on-the-fly のデータ圧縮・展開機能を実装しています。</li>
<li><code class="module"><a href="./mod/mod_charset_lite.html">mod_charset_lite</a></code> で、異なる文字セット間の変換を実装しています。</li>
<li><code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code> で、外部プログラムをフィルタとして実行します。</li>
</ul>
<p>チャンキングやバイトレンジ処理といった処理を行うために
Apache は、内部的にいくつかのフィルタを使っています。</p>
<p>様々なアプリケーションがサードパーティ製のフィルタモジュールとして
実装されていて、<a href="http://modules.apache.org/">modules.apache.org</a>
などから取得できます。たとえば :</p>
<ul>
<li>HTML や XML の処理と書き換え</li>
<li>XSLT 変換と XIncludes</li>
<li>XML 名前空間のサポート</li>
<li>ファイルアップロード処理や HTML フォームのデコード</li>
<li>画像処理</li>
<li>PHP スクリプトなどのアプリケーションに対する保護機能</li>
<li>テキストの検索置換・編集機能</li>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="smart" id="smart">スマートフィルタ</a></h2>
<p class="figure">
<img src="images/mod_filter_new.png" width="423" height="331" alt="Smart filtering applies different filter providers according to the state of request processing" />
</p>
<p>Apache 2.1 移行に含まれる <code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code> では、
実行時に動的にフィルタチェインを有効にできます。
ですからたとえば、HTML を HTML フィルタで、JPEG 画像をそれとは
全く別のフィルタで、書き換えるようなプロクシを設定することもできます。
その上、そのプロクシはどのオリジンサーバがコンテンツを送信するか
事前情報無しでいいように構成できます。
これは、実行時に実際のコンテンツに応じて別々のフィルタプロバイダに
ディスパッチするフィルタハーネスを使うことで実現されています。
チェインの中に直接入れて無条件に適用したり、動的にプロバイダとして
適用するようにしたりすることは、どんなフィルタでもできます。
たとえば、</p>
<ul>
<li>HTML 処理フィルタはコンテントが text/html あるいは
application/xhtml+xml の場合にのみ実行されます</li>
<li>圧縮フィルタは圧縮可能な入力で、非圧縮状態のものに
対してのみ実行されます</li>
<li>文字セット変換フィルタはテキスト文書が
希望の文字セットになっていない場合に挿入されます</li>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="using" id="using">フィルタの使い方</a></h2>
<p>フィルタの使い方には二つの方法があります: シンプルとダイナミック。
一般的にはどちらかのみを使ったほうがよいでしょう。
これらを組み合わせて使用すると、予期しない結果になるかもしれません。
(とはいえ、シンプルな入力フィルタとシンプルあるいはダイナミックな
出力フィルタを組み合わせることは自由に出来ます。)</p>
<p>シンプルな方法は、入力フィルタのみを設定し、必要に応じて
静的なフィルタチェインを出力フィルタとして設定する方法です。
関連するディレクティブは、
<code class="directive"><a href="./mod/core.html#setinputfilter">SetInputFilter</a></code>,
<code class="directive"><a href="./mod/core.html#setoutputfilter">SetOutputFilter</a></code>,
<code class="directive"><a href="./mod/core.html#addinputfilter">AddInputFilter</a></code>,
<code class="directive"><a href="./mod/core.html#addoutputfilter">AddOutputFilter</a></code>,
<code class="directive"><a href="./mod/mod_mime.html#removeinputfilter">RemoveInputFilter</a></code>,
<code class="directive"><a href="./mod/mod_mime.html#removeoutputfilter">RemoveOutputFilter</a></code>
になります。</p>
<p>ダイナミックな方法は、静的なものとフレキシブルなものを両方有効にする
方法で、<code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code> のページで述べられています。
関連するディレクティブは、
<code class="directive"><a href="./mod/mod_filter.html#filterchain">FilterChain</a></code>,
<code class="directive"><a href="./mod/mod_filter.html#filterdeclare">FilterDeclare</a></code>,
<code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code>
になります。</p>
<p>ディレクティブ <code class="directive"><a href="./mod/core.html#addoutputfilterbytype">AddOutputFilterByType</a></code>
はまだサポートされていますが、種々の問題をはらんでおり、非推奨です。
ダイナミックな設定方法を代わりに使ってください。</p>
</div></div>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="./en/filter.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./es/filter.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="./fr/filter.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="./ja/filter.html" title="Japanese"> ja </a> |
<a href="./ko/filter.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/filter.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div><div id="footer">
<p class="apache">Copyright 2012 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
<p class="menu"><a href="./mod/">モジュール</a> | <a href="./mod/directives.html">ディレクティブ</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">用語</a> | <a href="./sitemap.html">サイトマップ</a></p></div>
</body></html>
|