<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>異体説明</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">variant description</rt></rubyb></dfn>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体資源</anchor>の特徴を説明するものです。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">RFC 2295 - Transparent Content Negotiation in HTTP</cite> (<time>2014-08-31 19:36:42 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc2295#page-7">http://tools.ietf.org/html/rfc2295#page-7</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <strong><cite xml:lang="en">RFC 2295 - Transparent Content Negotiation in HTTP</cite> (<time>2014-08-31 19:36:42 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc2295#section-5">http://tools.ietf.org/html/rfc2295#section-5</anchor-external></strong></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite xml:lang="en">RFC 2296 - HTTP Remote Variant Selection Algorithm -- RVSA/1.0</cite> (<time>2014-09-15 15:43:00 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc2296#section-3.1">http://tools.ietf.org/html/rfc2296#section-3.1</anchor-external></li></ul></refs></section><section><h1>意味</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体説明</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体資源</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機械可読</anchor>な説明です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体説明</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体資源</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> と、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特性</anchor>を説明する種々の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>によって構成されます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p></section><section><h1>構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体説明</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原始品質</anchor>、0個以上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体属性</anchor>を連ねて
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">{</anchor></code> と <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">}</anchor></code> で括ったものです。ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor>
は <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code> で括ったものです。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 仕様書の時代的に構文上明記されていませんが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> およびそれを括る <code>&quot;</code> 
や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原始品質</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体属性</anchor>の前後に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>を挿入することが認められていると思われます。</p><figure class="railroad"><ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">{</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OWS</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OWS</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原始品質</anchor></li><li>*<ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OWS</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体属性</anchor></li></ol></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OWS</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">}</anchor></code></li></ol></figure></section><section><h1>URL</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体説明</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体</anchor>を <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GET</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>によって取得できる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> を表します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">絶対URL</anchor>でも、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求URL</anchor>に対する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相対URL</anchor>でも構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体資源</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>に依存して変化するものであっても構いませんが、
それ自体が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">透過内容折衝</anchor>によって変化するものであっては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 仕様上は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2068</anchor> を通じて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1738</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1808</anchor> が参照されています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非ASCII文字</anchor>は認められていません。</p></section><section><h1>フォールバック</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Alternates:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">変種説明</anchor>の他に
「フォールバック」を指定できます。フォールバックは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">品質値</anchor>がなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> だけが指定されたものです。</p><figure class="railroad"><ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">{</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OWS</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">}</anchor></code></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RVSA/1.0</anchor> では、フォールバックは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">品質値</anchor>が低く<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体属性</anchor>がない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体説明</anchor>とみなされます。</p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <code>features</code></p></section><section><h1>歴史</h1><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2295</anchor> 2.2 抜粋</figcaption><blockquote><dl><dt>variant description</dt><dd>
A machine-readable description of a variant resource, usually found
in a variant list.  A variant description contains the variant
resource URI and various attributes which describe properties of
the variant.  Variant descriptions are defined in section 5.</dd></dl></blockquote><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">変種資源</anchor>の機械可読な記述で、通常<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">変種一覧</anchor>に見える。
変種記述は変種資源 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URI</anchor> とその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">変種</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特性</anchor>を記述する種々の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>からなる。</p></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> RFC 2295 (HTTP 透過内容折衝) 5  Variant descriptions</figcaption><section><h1>5.1 Syntax</h1><blockquote><p>A variant can be described in a machine-readable way with a variant description.</p></blockquote><p>変種は、変種記述によって機械可読な方法で記述できます。</p><blockquote><pre>       variant-description =
                  &quot;{&quot; &lt;&quot;&gt; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URI</anchor> &lt;&quot;&gt; source-quality *variant-attribute&quot;}&quot;

       source-quality = <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">qvalue</anchor>

       variant-attribute = &quot;{&quot; &quot;type&quot; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">media-type</anchor> &quot;}&quot;
                         | &quot;{&quot; &quot;charset&quot; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor> &quot;}&quot;
                         | &quot;{&quot; &quot;language&quot;  1#<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">language-tag</anchor> &quot;}&quot;
                         | &quot;{&quot; &quot;length&quot; 1*<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DIGIT</anchor> &quot;}&quot;
                         | &quot;{&quot; &quot;features&quot; feature-list &quot;}&quot;
                         | &quot;{&quot; &quot;description&quot;
                                     <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-string</anchor> [ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">language-tag</anchor> ] &quot;}&quot;
                         | extension-attribute

       extension-attribute = &quot;{&quot; extension-name extension-value &quot;}&quot;
       extension-name      = <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">token</anchor>
       extension-value     = *( token | quoted-string | <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LWS</anchor>
                              | extension-specials )

       extension-specials  =
                          &lt;any element of <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">tspecials</anchor> except &lt;&quot;&gt; and &quot;}&quot;&gt;</pre></blockquote><blockquote><p>The feature-list syntax is defined in section 6.4.</p></blockquote><p><code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">feature-list</anchor></code> 構文は6.4節で定義します。</p><blockquote><p>Examples are</p></blockquote><ul><li><samp class="conneg"> {&quot;paper.2&quot; 0.7 {type text/html} {language fr}} </samp></li><li><samp class="conneg"> {&quot;paper.5&quot; 0.9 {type text/html} {features tables}} </samp></li><li><samp class="conneg"> {&quot;paper.1&quot; 0.001} </samp></li></ul><blockquote><p>The various attributes which can be present in a variant description
are covered in the subsections below.  Each attribute may appear only
once in a variant description.</p></blockquote></section><section><h1>5.2 URI</h1><p>→<code class="WikiPage"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.//URI</anchor></code> 参照</p></section><section><h1>5.3 Source-quality</h1><p>→<code class="WikiPage"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.//source-quality</anchor></code> 参照</p></section><section><h1>5.4 Type, charset, language, and length</h1><blockquote><p>The type attribute of a variant description carries the same
information as its Content-Type response header counterpart defined
in [1], except for any charset information, which MUST be carried in
the charset attribute.  For, example, the header</p><ul><li><samp class="MIME">Content-Type: text/html; charset=ISO-8859-4</samp></li></ul><p>has the counterpart attributes</p><ul><li><samp class="conneg"> {type text/html} {charset ISO-8859-4} </samp></li></ul><p>The language and length attributes carry the same information as
their Content-* response header counterparts in [1].  The length
attribute, if present, MUST thus reflect the length of the variant
alone, and not the total size of the variant and any objects inlined
or embedded by the variant.</p><p>Though all of these attributes are optional, it is often desirable to
include as many attributes as possible, as this will increase the
quality of the negotiation process.</p><p>Note: A server is not required to maintain a one-to-one
correspondence between the attributes in the variant description
and the Content-* headers in the variant response.  For example,
if the variant description contains a language attribute, the
response does not necessarily have to contain a Content-Language
header. If a Content-Language header is present, it does not have
to contain an exact copy of the information in the language attribute.</p></blockquote></section><section><h1>5.5 Features</h1><p>→<code class="WikiPage"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.//feature</anchor></code> 参照</p></section><section><h1>5.6 Description</h1><p>→<code class="WikiPage"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.//description</anchor></code> 参照</p></section><section><h1>5.7 Extension-attribute</h1><blockquote><p>The extension-attribute allows future specifications to incrementally
define dimensions of negotiation which cannot be created by using the
feature negotiation framework, and eases content negotiation
experiments.  In experimental situations, servers MUST ONLY generate
extension-attributes whose names start with &quot;x-&quot;.  User agents SHOULD
ignore all extension attributes they do not recognize.  Proxies MUST
NOT run a remote variant selection algorithm if an unknown extension
attribute is present in the variant list.</p></blockquote></section></figure></section></body></html>