在浏览器发出的请求.Accept requcse字段表明浏览器希望服务器以何种方式回送服务器上的资源。在这个字段中可以使用通配符来表示媒体类型,比如image/*”业“*/*”,这里*可以与任何字符串匹配。如果一个请求包括.
Acccpt: image/*,*/*则表明任何以“image/”打头的类型都可以被接受,筇二项*/*表明一切类型都可以。一些浏览器通常发送通配符来确定它们可用的类型。例如:
Accept: txtl/html, text/plain image/gif,image/jpcg,*/*
这样作是为了向服务器表明浏览器优先选择的类型,但如果服务器无法提供最合适的表达方式,其他类型也可以作为响应送回浏览器。*/*通配符可以代表其它所有类型,因此在浏览器所发出的请求中*.*的权重,比如:
Accept: text/html, text/plain,image/gif,image/jpeg,*/*;qs=0.01
前四种明确指定的类型没有权重系数,故缺省值为值1.0。通配符*/*具有低权重值0.01,即只要没有与列出类型想匹配的变变量时返回其他文件类型。
如果Accept: header根本没没有包含qs系数,Apache服务器会将*/*的qs值缺省赋为O.O1以达到预期的效果;Apache服务器同时为type/*赋值为0.02,所以它的优先级比*/*高。如果浏览器在它的Accept: header中为每个媒体炎型指定了一个qs,那么服务器为*/*和type/*指定的这些特殊值是无效的,此时浏览器可以发送出正确的信息请求。
如果服务器为某种资源提供了多种描述方式,其中一些指明了语言属性,而其它一些却没有,那么后者将被指定一个非常低的语言特性权重0.001。这样做目的是:当服务器无法提供预览器需要的表达方式时,选用不带有语言属性的表述方式作为响应,比如下面的三种变量:
foo.en.html,language en
foo fr html,language en
foo.html, no language
在上述三种变量中不带有语言属性的表达方式对所有浏览器都是可以接受的。如果浏览器发出的请求中Accept-Language部分指明它适用的语言包括英语(en)或法语(fr)或两者都叫,那么foo.en.html或too.fr.html中的一个会被作为响应返回给浏览器。如果浏览器发出的请求中既没有列出en也没有列出fr作为可接受对象,则服务器返回foo.html。