2011-01-13 82 views
4

我正在阅读HTTP Header Field Definitions以便正确解析接受标题,并且我正在勉强接受accept-extension字段定义。他们表示接受头优先级,这将给予下列顺序的一部分:HTTP是否接受扩展独占?

text/html;level=1;param=other 
// Less specific : 
text/html;level=1 
// Less specific: 
text/html 
// Even less specific 
text/* 

我不知道会发生什么,如果一个客户端请求的text/html;水平= 1,但我只有一个内容提供商为text/html。我是否发送文本/ html内容或406(不可接受)错误?

+1

请注意,根据RFC,在您提供的示例中level = 1,param = other是媒体范围参数,并且没有接受扩展名。接受扩展是质量价值之后的任何事情,并且据我所知,在实践中几乎完全没有使用。 – 2014-01-01 12:44:15

+0

接受参数在API版本化中越来越流行,例如`Accept:application/json; version = 1`。根据[RFC7231](https://tools.ietf.org/html/rfc7231#section-5.3.2),q =质量因子是完全可选的。 – ioquatix 2016-02-04 04:53:18

回答

1

在你的榜样,你会发回406。如果他们也能接受一个基本的text/html,他们应该把这个:

Accept: text/html, text/html;level=1 

注意顺序并不重要,最具体始终优先。