📄 content-negotiation.html.ja.euc-jp
字号:
<p>が今かれていて、<code>index.html</code> と
<code>index.html3</code> が
尉数赂哼していると、サ〖バはその面からどちらかを努碰に联びます。
もしその尉数が赂哼せずに <code>index.cgi</code>
が赂哼していると、 サ〖バはそれを悸乖します。</p>
<p>もしディレクトリを粕んでいる狠に、
矢机セット、コンテントタイプ、咐胳、エンコ〖ディングを
回年するための <code>mod_mime</code>
で千急できる橙磨灰を积たないファイルが斧つかると、冯蔡は
<code class="directive"><a href="./mod/mod_mime.html#multiviewsmatch">MultiViewsMatch</a></code>
ディレクティブの肋年に巴赂します。このディレクティブは
ハンドラ、フィルタ、戮のファイル橙磨灰タイプのどれが
MultiViews ネゴシエ〖ションで蝗脱できるかを疯年します。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="methods" id="methods">ネゴシエ〖ション数恕</a></h2>
<p>Apache はリソ〖スの variant の办枉を、タイプマップファイルか
ディレクトリ柒のファイル叹からかで艰评した稿、
≈呵努な∽ variant を疯年するために企つの数恕の
どちらかを弹瓢します。
Apache のコンテントネゴシエ〖ションの怠墙を蝗うために、
どのようにしてこの拇匿が乖われるか拒嘿を梦る涩妥はありません。
しかしながら、この矢今の荒りでは簇看のある客のために、
蝗脱されている数恕について棱汤しています。</p>
<p>ネゴシエ〖ション数恕は企つあります。</p>
<ol>
<li>奶撅は <strong>Apache のアルゴリズムを脱いた Server
driven negotiation</strong> が蝗脱されます。Apache
のアルゴリズムは稿に拒嘿に棱汤されています。
このアルゴリズムが蝗脱された眷圭、Apache
はより紊い冯蔡になるように、泼年の肌傅において墒剂の猛を
≈恃える∽ことができます。Apache
が墒剂の猛を恃える数恕は稿で拒嘿に棱汤されています。</li>
<li>RFC 2295
で年盗されている怠菇を脱いてブラウザが泼に回年した眷圭、
<strong>transparent content negotiation</strong>
が蝗脱されます。このネゴシエ〖ション数恕では、≈呵努な∽
variant の疯年をブラウザが窗链に扩告することができます。
ですから、冯蔡はブラウザが蝗脱しているアルゴリズムに巴赂します。
Transparent negotiation の借妄の册镍で、ブラウザは RFC 2296
で 年盗されている 'remote variant selection algorithm'
を悸乖するように完むことができます。</li>
</ol>
<h3><a name="dimensions" id="dimensions">ネゴシエ〖ションの肌傅</a></h3>
<table>
<tr valign="top">
<th>肌傅</th>
<th>棱汤</th>
</tr>
<tr valign="top">
<td>メディアタイプ</td>
<td>ブラウザは <code>Accept</code>
ヘッダフィ〖ルドで庭黎饭羹を回年します。
アイテムそれぞれは、簇息した墒剂眶猛を积つことができます。
variant の棱汤も墒剂眶猛を积つことができます
("qs" パラメ〖タをご枉布さい)。</td>
</tr>
<tr valign="top">
<td>咐胳</td>
<td>ブラウザは <code>Accept-Language</code>
ヘッダフィ〖ルドで庭黎饭羹を回年します。
妥燎それぞれに墒剂眶猛を积たせることができます。
variants は 0 か 1 つかそれ笆惧の咐胳と
簇息づけることができます。</td>
</tr>
<tr valign="top">
<td>エンコ〖ディング</td>
<td>ブラウザは <code>Accept-Encoding</code>
ヘッダフィ〖ルドで庭黎饭羹を回年します。
妥燎それぞれに墒剂眶猛を积たせることができます。</td>
</tr>
<tr valign="top">
<td>矢机セット</td>
<td>ブラウザは <code>Accept-Charset</code>
ヘッダフィ〖ルドで庭黎饭羹を回年します。
妥燎それぞれに墒剂眶猛を积たせることができます。
variant はメディアタイプのパラメ〖タとして矢机セットを
回年することもできます。</td>
</tr>
</table>
<h3><a name="algorithm" id="algorithm">Apache ネゴシエ〖ションアルゴリズム</a></h3>
<p>ブラウザに手す≈呵努な∽variant を (もしあれば) 联买するように
Apache は肌のアルゴリズムを蝗うことができます。
このアルゴリズムを肋年により恃构することはできません。
肌のように瓢侯します:</p>
<ol>
<li>まずはじめに、ネゴシエ〖ションの肌傅それぞれについて努磊な
<em>Accept*</em> ヘッダフィ〖ルドを拇べ、
variant それぞれに墒剂を充り碰てます。
もしある肌傅の <em>Accept*</em> ヘッダでその variant
が钓推できないことが绩されていれば、それを猴近します。
variant が办つも荒っていなければ、ステップ 4 に乖きます。</li>
<li>
久殿恕で≈呵努な∽ variant を联びます。
肌のテストが界戎に努脱されます。
テストで联买されなかった variant は猴近されていきます。
テスト稿 variant が办つだけ荒っていれば、それを呵努なものとして
ステップ 3 に渴みます。
剩眶 variant が荒っていれば、肌のテストに渴みます。
<ol>
<li>variant のメディアタイプの墒剂眶猛と <code>Accept</code>
ヘッダの墒剂眶猛との姥を纷换して、呵光猛の variant
を联びます。</li>
<li>咐胳墒剂眶猛が呵光の variant を联びます。</li>
<li>(もしあれば) <code>Accept-Language</code> ヘッダの咐胳界か、
(もしあれば)
<code class="directive"><a href="./mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code>
ディレクティブの咐胳界で呵努な咐胳の variant を联びます。</li>
<li>呵光≈レベル∽のメディアパラメ〖タ
(text/html メディアタイプのバ〖ジョンを涂えるために蝗われます)
を积つ variant を联びます。</li>
<li><code>Accept-Charset</code> ヘッダ乖で涂えられている呵光の矢机セット
メディアパラメ〖タを积つ variant を联びます。
汤绩弄に近嘲されていない嘎り、ISO-8859-1
が钓推されるようになっています。
<code>text/*</code> メディアタイプであるけれども
泼年の矢机セットに汤绩弄に簇息づけられているわけではない
variant は ISO-8859-1 であると簿年されます。</li>
<li>ISO-8859-1 <em>ではない</em>矢机セットメディアパラメ〖タと
簇息づけられている variant を联びます。
そのような variant がない眷圭は、洛わりに链ての
variant を联びます。</li>
<li>呵努なエンコ〖ディングの variant を联びます。
もし user-agent が钓推するエンコ〖ディングがあれば、
その variant のみを联びます。
そうではなく、もしエンコ〖ドされたものとそうでない
variant が寒ざって赂哼していたらエンコ〖ドされていない
variant のみを联びます。
variant が链婶エンコ〖ドされているか
variant が链婶エンコ〖ドされていないという眷圭は、
链ての variant を联びます。</li>
<li>柒推の呵も没い variant を联びます。</li>
<li>荒っている variant の呵介のものを联びます。
タイプマップファイルの呵介にリストされているか、
variant がディレクトリから呵介に粕み哈まれる箕に
ASCII界でソ〖トしてファイル叹が黎片になったか、のどちらかです。</li>
</ol>
</li>
<li>アルゴリズムを蝗って办つの≈呵努な∽variant を联びましたので、
それを炳批として手します。ネゴシエ〖ションの肌傅を回年するために
HTTP レスポンスヘッダ <code>Vary</code> が肋年されます
(リソ〖スのキャッシュをする箕に、
ブラウザやキャッシュはこの攫鼠を蝗うことができます)。
笆惧で姜わり。</li>
<li>ここに丸たということは、variant が办つも联买されなかった
(ブラウザが钓推するものがなかったため) ということです。
406 ステ〖タス ("No Acceptable representation" を罢蹋する)
が、网脱材墙な variant のリストのついた HTML
ドキュメントとともに手されます。
陵般の肌傅を绩す HTTP <code>Vary</code> ヘッダも肋年されます。</li>
</ol>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="better" id="better">墒剂の猛を恃える</a></h2>
<p>惧淡の Apache ネゴシエ〖ションアルゴリズムの阜呈な豺坚で
评られるであろう猛から、Apache は墒剂眶猛を箕」恃えます。
これは、このアルゴリズムで窗链ではない、あるいは赖澄でない攫鼠を流る
ブラウザ羹けによりよい冯蔡を评るために乖われます。
かなりポピュラ〖なブラウザで、もしないと粗般った variant
を联买する冯蔡になってしまうような <code>Accept</code>
ヘッダ攫鼠を流るものもあります。
ブラウザが窗链で赖しい攫鼠を流っていれば、
この眶猛恃步は努脱されません。</p>
<h3><a name="wildcards" id="wildcards">メディアタイプとワイルドカ〖ド</a></h3>
<p><code>Accept:</code> リクエストヘッダはメディアタイプの庭黎饭羹を回年します。
これはまた、"image/*" や "*/*"
といった≈ワイルドカ〖ド∽メディアタイプを崔むことができます。
ここで * は扦罢の矢机误にマッチします。
ですから、肌の:</p>
<div class="example"><p><code>Accept: image/*, */*</code></p></div>
<p>を崔むリクエストは、"image/" ではじまるタイプ链てが钓推できる、
そして戮のどんなタイプも钓推できる
(この眷圭はじめの "image/*" は鹃墓になります)
ことを绩します。
胺うことのできる汤绩弄なタイプに裁えて、怠常弄に
ワイルドカ〖ドを流るブラウザもあります。毋えば:</p>
<div class="example"><p><code>
Accept: text/html, text/plain, image/gif, image/jpeg, */*
</code></p></div>
<p>こうすることの晾いは、汤绩弄にリストしているタイプが庭黎されるけれども、
佰なる山附が网脱材墙であればそれでも紊い、ということです。
しかしながら、惧の答塑弄なアルゴリズムでは、
*/* ワイルドカ〖ドは戮の链てのタイプと链く票霹なので庭黎されません。
ブラウザは */* にもっと你い墒剂 (庭黎)
猛を烧けてリクエストを流るべきなのです。毋えば:</p>
<div class="example"><p><code>
Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01
</code></p></div>
<p>汤绩弄なタイプには墒剂眶猛が烧けられていませんので、
デフォルトの 1.0 (呵光猛) の庭黎になります。
ワイルドカ〖ド */* は你い庭黎刨 0.01 を涂えられているので、
汤绩弄にリストされているタイプに圭米する variant がない眷圭にのみ、
戮のタイプが手されます。</p>
<p>もし <code>Accept:</code> ヘッダが q 猛を链く崔んで<em>いなければ</em>、
司みの刁瓢をするために、
Apache は "*/*" があれば 0.01 の q 猛を肋年します。
また、"type/*" の妨のワイルドカ〖ドには 0.02 の q 猛を肋年します
(ですからこれらは "*/*" のマッチよりも庭黎されます)。
もし <code>Accept:</code> ヘッダ面のメディアタイプのどれかが q
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -