]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_negotiation.xml.ja
Adds an example of constructing a type-map file.
[apache] / docs / manual / mod / mod_negotiation.xml.ja
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
4 <!-- English Revision: 420990:1089714 (outdated) -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <modulesynopsis metafile="mod_negotiation.xml.meta">
24
25 <name>mod_negotiation</name>
26 <description><a href="../content-negotiation.html">コンテントネゴシエーション</a>
27   機能を提供する</description>
28 <status>Base</status>
29 <sourcefile>mod_negotiation.c</sourcefile>
30 <identifier>negotiation_module</identifier>
31
32 <summary>
33     <p>コンテントネゴシエーション、より正確にはコンテンツの選択機能は、
34     複数用意されているドキュメントから、クライアントの能力に一番合った
35     ドキュメントを選択する機能です。この実装は二つあります。</p>
36
37     <ul>
38       <li>タイプマップ (<code>type-map</code>
39       ハンドラで扱われるファイル)。これは variants
40       を含んでいるファイルを明示的に指定します。</li>
41
42       <li>MultiViews の探索 (<code>MultiViews</code> <directive
43       module="core">Option</directive> で有効になります)。
44       サーバが暗黙の内にファイル名のパターンマッチを行ない、
45       その結果から選択します。</li>
46     </ul>
47 </summary>
48 <seealso><directive module="core">Options</directive></seealso>
49 <seealso><module>mod_mime</module></seealso>
50 <seealso><a href="../content-negotiation.html">コンテントネゴシエーション</a></seealso>
51 <seealso><a href="../env.html">環境変数</a></seealso>
52
53 <section id="typemaps"><title>タイプマップ</title>
54     <p>タイプマップは RFC 822 のメールヘッダに類似した書式です。
55     ドキュメントの記述が空行で分離されて書かれていて、ハッシュ文字
56     ('#') で始まる行はコメントとして扱われます。
57     ドキュメントの説明は複数のヘッダレコードから構成されます。
58     レコードは、続きの行が空白で始まっていると複数の行にまたがります。
59     最初の空白が消去されて、前の行とつなげて 1 行として扱われます。
60     ヘッダレコードはキーワード名の後に値が続くという形式で、
61     キーワード名は常にコロンで終わります。空白はヘッダ名と値の間、
62     値のトークンの間に入れることができます。
63     使用可能なヘッダは以下のとおりです:</p>
64
65     <dl>
66       <dt><code>Content-Encoding:</code></dt>
67       <dd>ファイルのエンコーディング。Apache は <directive
68       module="mod_mime">AddEncoding</directive> ディレクティブ
69       で定義されたエンコーディングだけを認識します。通常 compress
70       されたファイルのための <code>x-compress</code> と gzip
71       されたファイルのための <code>x-gzip</code> を含みます。
72       エンコーディングの比較をするときは、接頭辞 <code>x-</code>
73       は無視されます。</dd>
74
75       <dt><code>Content-Language:</code></dt>
76       <dd>インターネット標準の言語タグ 
77       (<a href="http://www.ietf.org/rfc/rfc1766.txt">RFC 1766</a>)
78       で定義されている言語の種類。例えば、<code>en</code>
79       は英語を表します。
80       複数の言語が格納される場合はコンマで区切られます。</dd>
81
82       <dt><code>Content-Length:</code></dt>
83       <dd>ファイルの長さ (バイト数)。
84       このヘッダがない場合、ファイルの実際の長さが使用されます。</dd>
85
86       <dt><code>Content-Type:</code></dt>
87       <dd>ドキュメントの <glossary ref="mime-type">MIME
88       メディアタイプ</glossary>、オプショナルなパラメータ付き。パラメータの構文は
89       <code>name=value</code>
90       で、メディアタイプや他のパラメータとはセミコロンで分離されます。
91       共通のパラメータは以下のとおり:
92
93         <dl>
94           <dt><code>level</code></dt>
95           <dd>メディアタイプのバージョンを示す整数。
96           <code>text/html</code> では 2 がデフォルトで、その他の場合は
97           0 がデフォルトです。</dd>
98
99           <dt><code>qs</code></dt>
100           <dd>クライアントの能力に関係なく、variant
101           を他と比較したときの相対的な「品質」で、0.0 から 1.0
102           の範囲の浮動点小数。
103           例えば、写真を表現しようとしているときは普通は JPEG
104           ファイルの方が ASCII ファイルよりも高い品質になります。
105           しかし、リソースが ASCII アートで表現されているときは、ASCII
106           ファイルの方が JPEG
107           ファイルよりも高い品質になります。このように、<code>qs</code>
108           はリソース毎に特有の値を取ります。
109           </dd>
110         </dl>
111
112         <example><title>例</title>
113           Content-Type: image/jpeg; qs=0.8
114         </example>
115       </dd>
116
117       <dt><code>URI:</code></dt>
118       <dd>(指定のメディアタイプ、コンテントエンコーディングの) variant の
119       ファイルの uri.  これは、マップファイルからの相対 URL として
120       解釈されます。同じサーバに存在しなければならず、クライアントが
121       直接リクエストしたときにアクセスを許可されるものでなければなりません。</dd>
122
123       <dt><code>Body:</code></dt>
124       <dd>Apache 2.0 で新設されたこの Body ヘッダを使って、
125       リソースの実際の内容をタイプマップファイルに書くことができます。
126       このヘッダは本文の内容の区切りとなる文字列で始まる必要があります。
127       タイプマップファイルの続く行は、区切り文字列が見つかるまで、
128       リソースの本文になります。
129
130       <example><title>Example:</title>
131         Body:----xyz----<br />
132         &lt;html&gt;<br />
133         &lt;body&gt;<br />
134         &lt;p&gt;Content of the page.&lt;/p&gt;<br />
135         &lt;/body&gt;<br />
136         &lt;/html&gt;<br />
137         ----xyz----
138       </example>
139       </dd>
140     </dl>
141 </section>
142
143 <section id="multiviews"><title>MultiViews</title>
144     <p>MultiViews 探索は、<code>Multiviews</code> <directive
145     module="core">Options</directive> ディレクティブにより有効になります。
146     サーバが <code>/some/dir/foo</code>
147     へのリクエストを受け取り、<code>/some/dir/foo</code> が存在
148     <em>しない</em>場合、サーバはディレクトリを読んで、
149     <code>foo.*</code> にあてはまる全てのファイルを探し、
150     事実上それらのファイルをマップするタイプマップを作ります。
151     そのとき、メディアタイプとコンテントエンコーディングは、
152     そのファイル名を直接指定したときと同じものが割り当てられます。
153     それからクライアントの要求に一番合うものを選び、
154     そのドキュメントを返します。</p>
155
156     <p>ファイルを選択する際に、関連するコンテントネゴシエーションの
157     メタ情報を持たないファイルについて、判定を行うかどうかを
158     <directive module="mod_mime">MultiViewsMatch</directive>
159     ディレクティブで設定します。</p>
160 </section>
161
162 <directivesynopsis>
163 <name>CacheNegotiatedDocs</name>
164 <description>コンテントネゴシエーションされたドキュメントをプロキシサーバが
165 キャッシュできるようにする</description>
166 <syntax>CacheNegotiatedDocs On|Off</syntax>
167 <default>CacheNegotiatedDocs Off</default>
168 <contextlist><context>server config</context>
169 <context>virtual host</context>
170 </contextlist>
171 <compatibility>バージョン 2.0で構文が変わりました</compatibility>
172
173 <usage>
174     <p>このディレクティブが設定されていると、コンテントネゴシエーション
175     をした結果のドキュメントのキャッシュを許可します。
176     これは、プロキシの後ろにいるクライアントが能力に一番合った
177     ドキュメントではなく、
178     キャッシュをより効果的にするものを得る可能性があるということです。</p>
179
180     <p>このディレクティブは HTTP/1.0 ブラウザからのリクエスト
181     のみに適用されます。HTTP/1.1 は、
182     交渉されたドキュメントのキャッシュに対してずっとよい制御が可能なので、
183     このディレクティブは HTTP/1.1 のリクエストには影響しません。</p>
184     <p>2.0 より前のバージョンでは、
185     <directive>CacheNegotiatedDocs</directive> は引数を取らず、
186     ディレクティブが存在することで on の動作をしていました。</p>
187 </usage>
188 </directivesynopsis>
189
190 <directivesynopsis>
191 <name>ForceLanguagePriority</name>
192 <description>要求に合う単独のドキュメントが見つからなかったときに行なうことを指定
193 </description>
194 <syntax>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</syntax>
195 <default>ForceLanguagePriority Prefer</default>
196 <contextlist><context>server config</context><context>virtual host</context>
197 <context>directory</context><context>.htaccess</context></contextlist>
198 <override>FileInfo</override>
199 <compatibility>バージョン 2.0.30 以降で使用可能</compatibility>
200
201 <usage>
202     <p><directive>ForceLanguagePriority</directive> ディレクティブは
203     要求に合うドキュメントを一つだけ返すことができないときに、
204     <directive module="mod_negotiation">LanguagePriority</directive>
205     ディレクティブを使ってネゴシエーションの結果を返します。</p>
206
207     <p><code>ForceLanguagePriority Prefer</code> は、同等の選択肢が
208     いくつかあるときに、HTTP の 300 (MULTIPLE CHOICES) を返す代わりに、
209     <code>LanguagePriority</code> を使って一つだけドキュメントを返すように
210     します。以下のディレクティブが指定されていて、ユーザの <code>Accept-Language</code>
211     ヘッダでは <code>en</code> と <code>de</code> の品質が共に
212     <code>.500</code> (同じくらい許容) であるときは、
213     最初にマッチする variant の <code>en</code> が送られます。</p>
214
215     <example>
216       LanguagePriority en fr de<br />
217       ForceLanguagePriority Prefer
218     </example>
219
220     <p><code>ForceLanguagePriority Fallback</code> では、HTTP 406
221     (NOT ACCEPTABLE) を送信する代わりに、
222     <directive module="mod_negotiation">LanguagePriority</directive>
223     が正しい結果を送ります。
224     以下のディレクティブが指定されていて、ユーザの <code>Accept-Language</code>
225     が <code>es</code> 言語のみを許可していて、さらにそのような variant がないときには、
226     以下の <directive module="mod_negotiation">LanguagePriority</directive>
227     のリストの最初の variant が送れれます。</p>
228
229     <example>
230       LanguagePriority en fr de<br />
231       ForceLanguagePriority Fallback
232     </example>
233
234     <p><code>Prefer</code> と <code>Fallback</code> の両方のオプションを
235     同時に指定することができます。
236     ですから、複数の variant があるときは
237     <directive module="mod_negotiation">LanguagePriority</directive> の最初の
238     variant が送られ、クライアントの許容言語に合う vaiant がないときは
239     存在するドキュメントで最初のものが送られる、という様にすることができます。</p>
240 </usage>
241 <seealso><directive module="mod_mime">AddLanguage</directive></seealso>
242 </directivesynopsis>
243
244 <directivesynopsis>
245 <name>LanguagePriority</name>
246 <description>クライアントが優先度を示さなかったときの言語の variant の優先度を
247 指定</description>
248 <syntax>LanguagePriority <var>MIME-lang</var> [<var>MIME-lang</var>]
249 ...</syntax>
250 <contextlist><context>server config</context><context>virtual host</context>
251 <context>directory</context><context>.htaccess</context></contextlist>
252 <override>FileInfo</override>
253
254 <usage>
255     <p><directive>LanguagePriority</directive> は、MultiViews
256     リクエストを扱うときに、クライアントが優先順位を提供していない場合の
257     言語の優先順位を設定します。<var>MIME-lang</var>
258     のリストが優先度の降順に並びます。</p>
259
260     <example><title>Example:</title>
261       LanguagePriority en fr de
262     </example>
263
264     <p><code>foo.html</code> がリクエストされ、<code>foo.html.fr</code>
265     と <code>foo.html.de</code> が両方存在し、
266     ブラウザが言語の優先順位を提供してない場合は
267     <code>foo.html.fr</code> が返されます。</p>
268
269     <p>このディレクティブは他の方法で「最善」
270     の言語が決定できないときか、<directive
271     module="mod_negotiation">ForceLanguagePriority</directive> ディレクティブが
272     <code>None</code> 以外のときにのみ効果があることに注意してください。
273     一般的には、サーバ側ではなくクライアント側で好みの言語を決定します。</p>
274 </usage>
275 <seealso><directive module="mod_mime">AddLanguage</directive></seealso>
276 </directivesynopsis>
277
278 </modulesynopsis>