2011-01-13 64 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 

注意順序並不重要,最具體始終優先。