HTTP远程变量选择算法—RVSA/1.0( 二 )
Q=round5(qs*qt*qc*ql*qf)
这里round5是一个函数,它将一个浮点值四舍五入直到小数点后有5个十进制数,参
数qs,qt,qc,ql和qf按如下方式决定 。
qs是变量描述中的源品质因数 。
qt假如变量描述中没有类型属性,或者在请求中没有接收报头,媒体类型品质因数
就是1 。否则,它就是接收报头在类型属性中给媒体类型赋的值 。
注重:假如一个类型不能和接收报头中的任何元素匹配,接收报头就把这种类型的
品质因数赋为0 。
qc假如在变量描述中没有字符集属性,或在请求中没有接收字符集报头,字符集
品质因数就是1 。否则,字符集品质因数就是接收字符集报头在字符集属性中给字符集赋
的值 。
ql假如在变量描述中没有语言属性,或在请求中没有接收语言报头,语言品质因
数就是1 。否则,语言品质因数就是接收语言报头在语言属性中给列出的任何一种语言赋
予的所有的品质因数中的最高值 。
qf假如在变量描述中没有特征属性,或在请求中没有接收特征报头,特征品质因
数就是1 。否则,它就是特征属性的品质退化因数,参见[2]的6.4节 。
例如,假如一个变量列表包含变量描述{“paper.html.en"0.7{type
text/html}{languagefr}}并且请求包含接收报头
Accept:text/html:q=1.0,*/*=0.8
Accept-Language:en;q=1.0,fr;q=0.5
远程变量选择算法会按下面方式为变量计算一个总体品质:
{"paper.html.fr"0.7{typetext/html}{languagefr}}
VVV
round5(0.7*1.0*0.5)=0.35000
按上面的接收报头,下面完整的变量列表
{"paper.html.en"0.9{typetext/html}{languageen}},
{"paper.html.fr"0.7{typetext/html}{languagefr}},
{"paper.ps.en"1.0{typeapplication/postscript}{languageen}}
会产生下面的计算式:
round5(qs*qt*qc*ql*qf)=Q
----------------------
paper.html.en:0.9*1.0*1.0*1.0*1.0=0.90000
paper.html.fr:0.7*1.0*1.0*0.5*1.0=0.35000
paper.ps.en:1.0*0.8*1.0*1.0*1.0=0.80000
3.4确定及不确定的品质值
一个计算好的总体品质值既可能是确定的,也可能是不确定的 。假如计算时没有使用
任何接收报头中的‘*’通配符,并且不需要一个非凡接收报头不存在,那么它就是确定的 。
相反,它就是不确定的 。
比如,在这节里,paper.html.en和paper.html.fr的品质值是确定的,paper.ps.en
的品质值是不确定的,因为application/postscript类型和范围*/*匹配 。
确定性可以定义地更正规,如下所示 。一个总体品质值Q是确定的,假如在请求信息
按照如下方式改变之后还能计算出相同的品质值Q的话:
1.假如一个接收报头,接收字符集报头,接收语言报头,或接收特征报头从请求中丢失了,向
这个报头中加上一个空字段 。
2.从接收报头中删除任何包含一个通配符‘*’的媒体域 。从接收字符集报头,接收语言
报头,和接收特征报头中删除所有通配符‘*’ 。
这里是另外一个例子,变量{“blah.html”1{languageen-gb}{featuresblebber[x
y]}},假如它的接收报头是
Accept-Language:en-gb,fr
Accept-Features:blebber,x,!y,*和
Accept-Language:en,fr
Accept-Features:blebber,x,*
它的总体品质因数是1并且是确定的
假如接收报头是
Accept-language:en-gb,fr
Accept-Features:blebber,!y,*和
Accept-Language:fr,*
Accept-Features:blebber,x,!y,*
总体品质因数还是1,但是是不确定的,
3.5确定结果
最优变量,由远程变量选择算法决定的,是具有最高总体品质值的变量,或者当有许
多变量具有此相同的最高品质值时,是列表中的第一个具此值的变量 。
推荐阅读
- 远程用户拨号认证系统 RADIUS记帐协议
- IOTP Internet开放贸易协议HTTP 补充
- HTTP 超文本传输协议状态管理的应用
- 没钥匙远程启动能开走汽车吗
- 奔腾x40远程控制怎么装
- Remote Procedure Call protocol RPC:远程过程调用协议
- iPhone远程格式化详细操作
- 使用Axure RP 8设置一个矩形全局变量具体操作流程
- 如何使用ES文件浏览器的远程管理
- WWW的核心—HTTP协议