<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="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:">RTSP</anchor>
の
<dfn><code>Proxy:</code></dfn>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>や
<dfn><code>Proxy-Require:</code></dfn>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>は、
必要な機能を表します。</p><section><h1><code>Require:</code> ヘッダー (RTSP)</h1><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> 
<code class="RTSP">Require:</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><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:">串</anchor>に問合せるための同様の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頭欄</anchor>として
<code class="RTSP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Proxy-Require</anchor></code> があります。</p><section><h1>構文</h1><p><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> 値は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">option tag</anchor> です。</p></section></section><section><h1><code>Proxy-Require:</code> ヘッダー (RTSP)</h1><p><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> 
<code class="RTSP">Proxy-Require:</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><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> <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>として
<code class="RTSP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Require</anchor></code> があります。</p></section><section><h1>option tag (RTSP)</h1><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> 
<dfn><code>option-tag</code></dfn>
は、
<code>Require:</code>
や
<code>Proxy-Require:</code>
で使われる値です。</p></section><section><h1>関連</h1><p><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> 
未対応のときの返答には <code>Unsupported:</code> を使います。</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:">HTTP</anchor> で似たような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頭欄</anchor>として <code class="HTTP">Man:</code>
があります。</p></section><section><h1>歴史</h1><figure class="quote"><figcaption><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2326</anchor> (RTSP) 12.32 Require</figcaption><blockquote><p>The Require header is used by clients to query the server about
options that it may or may not support. The server MUST respond to
this header by using the Unsupported header to negatively acknowledge
those options which are NOT supported.</p></blockquote><p><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> Require 頭はクライアントがサーバーに、対応しているかもしれないしいないかもしれない選択肢について問い合わせるのに使います。
サーバーは対応して<strong>いない</strong>選択肢について Unsupported
頭を使って否定応答し<strong>なければなりません</strong>。</p><blockquote><p>This is to make sure that the client-server interaction will
proceed without delay when all options are understood by both
sides, and only slow down if options are not understood (as in the
case above). For a well-matched client-server pair, the interaction
proceeds quickly, saving a round-trip often required by negotiation
mechanisms. In addition, it also removes state ambiguity when the
client requires features that the server does not understand.</p></blockquote><p><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> これにより、全ての選択肢を両者が理解した場合は遅延なく,
選択肢を理解出来なかった (上記の) 
場合には遅めるだけで、クライアント‐サーバー対話を進めるよう取り計らえます。</p><ul><li><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>   Require =   &quot;Require&quot; &quot;:&quot;  1#option-tag</li></ul><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></p><blockquote><p>Example:<pre>     C-&gt;S:   SETUP rtsp://server.com/foo/bar/baz.rm RTSP/1.0
             CSeq: 302
             Require: funky-feature
             Funky-Parameter: funkystuff</pre></p></blockquote><pre>     S-&gt;C:   RTSP/1.0 551 Option not supported
             CSeq: 302
             Unsupported: funky-feature</pre><pre>     C-&gt;S:   SETUP rtsp://server.com/foo/bar/baz.rm RTSP/1.0
             CSeq: 303</pre><pre>     S-&gt;C:   RTSP/1.0 200 OK
             CSeq: 303</pre><blockquote><p>In this example, &quot;funky-feature&quot; is the feature tag which indicates
to the client that the fictional Funky-Parameter field is required.
The relationship between &quot;funky-feature&quot; and Funky-Parameter is not
communicated via the RTSP exchange, since that relationship is an
immutable property of &quot;funky-feature&quot; and thus should not be
transmitted with every exchange.</p></blockquote><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> この例では、 <code class="ABNF">&quot;funky-feature&quot;</code>
が架空の <code>Funky-Parameter</code> 
欄が必須であるとクライアントに示す機能札です。
<code class="ABNF">&quot;funky-feature&quot;</code> と <code>Funky-Parameter</code>
の関係については RTSP 交換では伝達されません。
なぜならこの関係は <code class="ABNF">&quot;funky-feature&quot;</code>
の不変の属性であって毎度の交換で伝送しなくても良いからです。</p><blockquote><p>Proxies and other intermediary devices SHOULD ignore features that
are not understood in this field. If a particular extension requires
that intermediate devices support it, the extension should be tagged
in the Proxy-Require field instead (see Section 12.27).</p></blockquote><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> 串及び他の中間機器はこの欄にある理解出来ない機能を無視する<strong>のが良いです</strong>。
特定の拡張に中間機器が対応する必要がある時は、その拡張は代わりに
Proxy-Require 欄に札付けするのがよいです。</p></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2326</anchor> 12.27 Proxy-Require</figcaption><blockquote><p>The Proxy-Require header is used to indicate proxy-sensitive features
that MUST be supported by the proxy. Any Proxy-Require header
features that are not supported by the proxy MUST be negatively
acknowledged by the proxy to the client if not supported. Servers
should treat this field identically to the Require field.</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> Proxy-Require 
頭は、串が対応してい<strong>なければならない</strong>串敏感機能を示すのに使います。
串が対応していないどの Proxy-Require 頭機能についても、串はクライアントに否定応答し<strong>なければなりません</strong>。
サーバーはこの欄を Require 欄と等しいと扱うのが良いです。</p><blockquote><p>See Section 12.32 for more details on the mechanics of this message
and a usage example.</p></blockquote></figure><figure class="quote"><figcaption><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 2326</anchor> (RTSP) 3.8 Option Tags</figcaption><blockquote><p>Option tags are unique identifiers used to designate new options in
RTSP. These tags are used in Require (Section 12.32) and 
Proxy-Require (Section 12.27) header fields.</p></blockquote><p>選択肢札は RTSP における新たな選択肢を指示するのに使う固有識別子です。
この札は <code class="RTSP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Require</anchor></code> 頭欄や
<code class="RTSP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Proxy-Require</anchor></code> 頭欄で使います。</p><blockquote><p>Syntax:<ul><li>option-tag   =   1*xchar</li></ul></p></blockquote><blockquote><p>The creator of a new RTSP option should either prefix the option with
a reverse domain name (e.g., &quot;com.foo.mynewfeature&quot; is an apt name
for a feature whose inventor can be reached at &quot;foo.com&quot;), or
register the new option with the Internet Assigned Numbers Authority
(IANA).</p></blockquote><p>新しい RTSP 選択肢の作者は選択肢の接頭辞を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">逆ドメイン名</anchor>
(例えば、その発明者が <code>foo.com</code>
で到達できる機能の名前は <code>com.foo.mynewfeature</code>)
にするか、又は新しい選択肢を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA</anchor> に登録するべきです。</p><section><h1>3.8.1 Registering New Option Tags with IANA</h1><blockquote><p>When registering a new RTSP option, the following information should
be provided:</p></blockquote><p>新しい RTSP 選択肢を登録する時は、
次の情報を提供するべきです。</p><blockquote><ul><li>Name and description of option. The name may be of any length,
but SHOULD be no more than twenty characters long. The name MUST
not contain any spaces, control characters or periods.</li><li>Indication of who has change control over the option (for
example, IETF, ISO, ITU-T, other international standardization
bodies, a consortium or a particular company or group of
companies);</li><li>A reference to a further description, if available, for example
(in order of preference) an RFC, a published paper, a patent
filing, a technical report, documented source code or a computer
manual;</li><li>For proprietary options, contact information (postal and email
address);</li></ul></blockquote><ul><li>選択肢の名前及び説明。名前は任意の長さで構いませんが、20文字より長くしない<strong>べきです</strong>。名前は<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>を含んでいては<strong>なりません</strong>。</li><li>その選択肢の変更制御権保持者の標示 (例えば、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ITU-T</anchor>, その他国際標準化団体, 業界団体, 特定企業あるいは企業集団)。</li><li>より詳細な説明が利用可能であればそれへの参照。
例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor>, 出版済み論文, 特許届出, 技術報告,
文書化されたソース・コードあるいは計算機取扱説明書。</li><li>独占的な選択肢には、問合せ先 (郵便・電子メイルの宛先)。</li></ul></section></figure></section><section><h1>メモ</h1></section></body></html>