2011-11-20 75 views
3

我有一個REST資源,例如返回一個jpeg圖像。用戶設置爲他的接受標題「image/jpeg」。但是,服務器上會發生問題,例如圖像不存在。我們想要將該異常返回給用戶。通常這個異常可以作爲xml,json或html返回。在處理異常時,Accept HTTP頭文件如何影響返回的內容?

默認爲html異常還是應該返回異常爲jpeg類型,因此是亂碼?

+0

我在規範中沒有看到任何內容,但是我認爲發送一個「Content-Type」不是發送錯誤所要求的內容就可以。無論如何,僅發送所請求類型的響應的要求只是應該的,而不是必須的。 – Celada

+0

我們添加了使用逗號的約定。換句話說,您可以發送預期的內容類型,但也可以發送異常的內容類型。比如image/jpeg,text/html – slbruce

回答

2

正如Celeda在上面的評論中所說的,返回不同於「Accept」中聲明的內容類型是完全正確的。當錯誤條件存在時,作者鼓勵在正文中返回錯誤消息。

Accept頭只是一種確保服務器生成客戶端認爲「可接受」響應的方式。根據定義,錯誤是不可接受的(至少它們不是我的客戶:)所以這種格式是無關緊要的。當然,jpeg亂碼不會被接受。