2012-11-13 35 views
3

當嘗試執行導致400錯誤請求錯誤的http請求時,nginx服務器以非編碼格式返回「400錯誤請求」,Content-Encoding:gzip和響應。是否可以對http請求錯誤進行響應?

因此,由於Content-Encoding:gzip,我的代碼用一個GZIPInputStream封裝了響應,它引發了一個錯誤。

我的問題是:當狀態碼不是「200 OK」時,gzip是有效的編碼嗎?如果沒有,我可以簡單地檢查狀態碼,並且如果返回200以外的任何內容,則不要嘗試gzip。

有關於此的規則/指導原則嗎?這是記錄在任何地方?

TIA

+2

gzip在任何響應代碼中都有效,但是無論如何,您只能使用狀態代碼進行決定(實際上我不知道爲什麼當狀態代碼不是200時需要內容) – ice

+0

這是針對其他代碼庫的代碼庫開發人員使用,所以在可能的情況下,我們應儘可能多地給他們提供信息,包括導致錯誤的請求。 – isapir

+1

@ice _「實際上我不知道爲什麼當狀態碼不是200時需要內容_--因爲301,302,303:_」響應的實體應該包含一個超鏈接到新的超短文本URI(s)。「_,403:_」如果服務器希望公開爲什麼請求沒有得到滿足,它應該描述實體拒絕的原因「_,... – CodeCaster

回答

4

是的,它是一個有效的編碼。內容編碼(和傳輸編碼)與狀態碼正交。