HTTP請求可以包含一個Accept
標頭,指示客戶端可以接受的響應的媒體類型。服務器應通過提供匹配(請求的媒體類型之一)Content-Type
響應來響應請求。媒體類型可以包括參數。 HTTP是否要求這個內容協商過程尊重參數?HTTP內容協商是否尊重媒體類型參數
也就是說,如果客戶端請求
Accept: application/vnd.example; version=2
(這裏的version
參數具有2
的值),而服務器可以作爲媒體類型application/vnd.example; version=1
,但不application/vnd.example; version=2
,是OK服務器爲用戶提供
Content-Type: application/vnd.example; version=1
響應是否確定爲服務器提供標記的響應
Content-Type: application/vnd.example; version=2
但是對於實際被編碼爲媒體類型的響應正文application/vnd.example; version=1
?也就是說,對於媒體類型的響應的參數是對響應主體的不準確描述?
看來,Spring MVC 4.1.0在進行內容協商時並不尊重媒體類型參數,並給出了響應的媒體類型參數是對響應主體的不準確描述的響應。這似乎是因爲org.springframework.util.MimeType.isCompatibleWith(MimeType)
方法不檢查MimeType
對象的參數。