HTTP远程变量选择算法—RVSA/1.0( 三 )
当下列所有条件都满足时,远程变量选择算法的最终结果是选择响应:
a. 最优变量的总体品质值大于0 。
b. 最优变量的总体品质值是一个确定的品质值 。
c. 变量资源和可协商资源相邻 。这个条件的存在确保了一个对选择响应的安全相关限
制得到满足 。参见[2]的10.2和10.4节 。
在所有其它情况下,最终结果都是列表响应 。
上面对确定性的要求以一种戏剧性的方式影响对接收报头的解释 。比如,它使得远程算
法将报头
Accept:image/gif;q=0.9,*/*;q=1.0解释成
‘我接收品质值为0.9的image/gif,并把其它媒体类型的品质类型赋为1.0 。假如此信息
不够我自己作出选择,就不作选择而是发送变量列表" 。
没有以上要求的话,解释就会是
‘我接收品质值为0.9的image/gif,和品质值为1.0的所有其它媒体类型" 。
4.算法的使用
这一节讨论用户代理怎样以一种最佳方式使用远程算法 。这节是非标准化的,把它包括
进来只是出于提供信息的目的 。
4.1使用品质因数为参数划分等级
使用品质因数,用户代理不仅可以为一个非凡接收报头里的元素划分等级,而且也能表
示不同接收报头之间的优先等级 。比如考虑下面的变量列表:
{"paper.english"1.0{languageen}{charsetISO-8859-1}},
{"paper.greek"1.0{languageel}{charsetISO-8859-7}}
并且假设用户选择“el”而不是“en”,这时用户代理能使“ISO-8859-1”的品质比“ISO-8859-7”
的高 。假如接收报头是:
Accept-Language:gr,en;q=0.8
Accept-Charset:ISO-8859-1,ISO-8859-7;q=0.6,*
那么远程变量选择算法会选择English变量,因为这个变量的总体品质退化最少 。但是假如
接收报头是
Accept-Language:gr,en;q=0.8
Accept-Charset:ISO-8859-1,ISO-8859-7;q=0.95,*
那么算法就会选择Greek变量 。一般地,品质因数之间差额最大的接收报头获得最高优先权 。
假如用户代理答应用户为一些报头设置品质因数,同时其它因数都是hard-coded的,它就
应该对hard-coded的因数使用一个低差额,对用户提供的因数提供一个高差额,所以用户
设置比内置设置具有更高的优先权 。
4.2短请求的构造
在对透明可协商资源的一个请求中,用户代理不需要发送一个列出所有功能的长接收报
头 。比如,不发送
Accept:image/gif;q=0.9,image/jpeg;q=0.8,image/png;q=1.0,
image/tiff;q=0.5,image/ief;q=0.5,image/x-xbitmap;q=0.8,
application/plugin1;q=1.0,application/plugin2;q=0.9
用户代理发送
Accept:image/gif;q=0.9,*/*;q=1.0
它能发送短报头,从而不冒获得一个次等image/tiff变量的选择响应的危险 。例如,对变
量列表
{"x.gif"1.0{typeimage/gif}},{"x.tiff"1.0{typeimage/tiff}},
远程算法将为x.gif计算一个确定的总体品质0.9,并为x.tiff计算一个不确定的总体品
质因值1.0 。因为最优变量拥有一个不确定的品质值,算法不会选择x.tiff,而是返回一个
列表响应,在此之后用户代理的选择算法会正确地选择x.gif 。最终结果和发送长接收报头
得到的结果相同 。
因此,用户能改变接收报头的长度以在首次请求发送速度,和远程算法拥有足够信息消除第
二次请求的机会之间获得最佳平衡 。
4.2.1折叠接收报头元素
这节讨论一个列出所有功能和参数的长接收报头如何被安全地缩短 。远程变量算法按某
种方式设计,使得它总可以这安全地缩短接收或接收字符集报头,它提取两个报头元素
‘A;q=f’和‘B;q=g’并用一个元素‘P;q=m’代替它们,这里P是一个匹配A和B的通配
推荐阅读
- 远程用户拨号认证系统 RADIUS记帐协议
- IOTP Internet开放贸易协议HTTP 补充
- HTTP 超文本传输协议状态管理的应用
- 没钥匙远程启动能开走汽车吗
- 奔腾x40远程控制怎么装
- Remote Procedure Call protocol RPC:远程过程调用协议
- iPhone远程格式化详细操作
- 使用Axure RP 8设置一个矩形全局变量具体操作流程
- 如何使用ES文件浏览器的远程管理
- WWW的核心—HTTP协议