遠隔変種選択算法

遠隔変種選択算法

[1] RVSA (遠隔異体選択アルゴリズム) は、透過内容折衝において利用者エージェントに代わって最善の異体を選択する標準化されたアルゴリズムです >>7, >>8

仕様書

版番号

[12] RVSA のアルゴリズムは版番号によって区別されることとなっています。

[38] 版番号は、 1桁から4桁のASCII数字列2つを . で区切ったものとされています。

  1. 1-4 ASCII数字
  2. .
  3. 1-4 ASCII数字

[13] 数字列の解釈方法は明記されていません。先導0や末尾の0の有無が等価性に影響を与えるのかどうか不明です。

[18] 最初の番号が同じ場合、最後の番号が 0 より大きいなら、 0 の場合のアルゴリズム下方互換でなければなりません。ここで下方互換とは、同じ入力に対して同じ、またはより良い結果を返すことを言います。 >>8

[14] 版番号は次の場面で使われます。

[20] Negotiate: ヘッダー指令として指定された場合、 起源鯖遠隔異体選択アルゴリズムを実行することを認めることを表します。 この場合、指定された版か、指定されたのと1つ目の番号が同じで、 2つ目の番号がより大きな版が認められたこととなります。 >>19

[21] 起源鯖は、 Negotiate: ヘッダーに版番号が指定され、最善の異体である隣接異体を選ぶのに十分な情報があれば、 これを選択応答として返すことができます。 >>19

[22] Negotiate: ヘッダーに版番号が指定された場合、 trans を暗示します >>19

[23] なおによる実行は proxy-rvsa により制限されることがあります。

RVSA/1.0

[9] RVSA/1.0RFC 2296 で規定されています >>2

[10] 版番号は 1.0 とされています >>2

[25] RVSA/1.0 は特定の透過的折衝可能資源への要求に対して実行され、 次の入力を持ちます >>2

[28] ここで、 Alternates: ヘッダーにフォールバックがあれば、 品質値が 0.000001 で異体属性なしの異体説明とみなします >>2

[29] RVSA/1.0最善の異体を決定するか、リスト応答を返すかを出力します。 最善の異体が決まる場合には選択応答を返すことができますが、 透過内容折衝では常にリスト応答を返すことが認められているので、 RVSA/1.0 を部分的に実装してリスト応答を返すこともできます。 >>2

  1. [30] 異体リストの各異体について、品質値を計算します。 これは、異体説明品質値と、 各 Accept-ヘッダー群から相当する異体属性の値に対する品質値を求めたものをすべて掛け合わせて、 得られた浮動小数点数小数点以下5桁までに丸めたものです。
  2. [31] ここで Accept-ヘッダー群で欠落しているものがあったか、 * と一致したことによって値が決定されたなら、 品質値は不確定的とし、そうでなければ確定的とします。
  3. [32] 品質値が最高で最初の異体最善の異体とします。
  4. [33] 最善の異体品質値で、確定的であり、 かつ隣接異体なら、この最善の異体選択応答を返します。
  5. [34] それ以外なら、リスト応答を返します。

Apache の RVSA

[4] ApacheRVSAの実装では、 RFC と次のような違いがあります >>3

文脈

[15] 遠隔異体選択アルゴリズム透過内容折衝に対応した起源鯖で使われます。

[17] は、未知の異体属性異体リストに含まれていれば、 遠隔異体選択アルゴリズムを実行してはなりません >>16

関連

[24] 遠隔異体選択アルゴリズム起源鯖で実行されるのに対し、 局所異体選択アルゴリズム利用者エージェントで実行されます。

歴史

[35] RFC2295 2.2 抜粋
remote variant selection algorithm
A standardized algorithm by which a server can sometimes choose a best variant on behalf of a negotiating user agent. The algorithm typically computes whether the Accept- headers in the request contain sufficient information to allow a choice, and if so, which variant is the best variant. The use of a remote algorithm can speed up the negotiation process.
遠隔変種選択算法
サーバーが折衝している利用者エージェントに代わって最善の変種を選ぶことが時々できる標準化された算法。 この算法は典型的には要求中の Accept-頭群が選択を行うのに十分な情報を含んでいるか、そうであればどれが最善の変種であるかを計算します。 遠隔算法の使用によって折衝過程が高速化できます。
[36] RFC 2295 (HTTP 透過折衝) 7 Remote variant selection algorithms

[37]

A remote variant selection algorithm is a standardized algorithm by which a server can choose a best variant on behalf of a negotiating user agent. The use of a remote algorithm can speed up the negotiation process by eliminating a request-response round trip.

A remote algorithm typically computes whether the Accept- headers in the request contain sufficient information to allow a choice, and if so, which variant is the best variant. This specification does not define any remote algorithms, but does define a mechanism to negotiate on the use of such algorithms.

7.1 Version numbers

A version numbering scheme is used to distinguish between different remote variant selection algorithms.

版番号付け方式は異なる遠隔変種選択算法同士を区別するのに使います。

  • rvsa-version = major "." minor
  • major = 1*4DIGIT
  • minor = 1*4DIGIT

An algorithm with the version number X.Y, with Y>0, MUST be downwards compatible with all algorithms from X.0 up to X.Y. Downwards compatibility means that, if supplied with the same information, the newer algorithm MUST make the same choice, or a better choice, as the old algorithm. There are no compatibility requirements between algorithms with different major version numbers.

版番号 X.y (Y > 0) の算法は X.0 から X.Y までのすべての算法と互換でなければなりません。 下方互換性とは、同じ情報が供給された場合、新しい方の算法は古い算法と同じ選択かより良い選択を行わなければならないことを意味します。 異なる大版番号の算法間での互換性はありません。

メモ