2011-11-09 19 views

回答

14

這不是必需的。但RFC2616並不禁止它。請注意,它確實禁止某些狀態的郵件正文,如204304。如果302同樣如此,那麼它肯定會被明確提及。

據我所知,所有現代瀏覽器都忽略了302的消息體,以響應GET或POST,並直接轉到如Location標題中指定的URL。

3

身體是需要的,但它可以是空的。請參閱HTTPbis Part 1, Section 3.3

+0

提供一個空的身體和不提供身體之間有什麼區別? – Barmar

+1

內容長度或分塊傳輸編碼。 –

2

AFAICT規範描述了至少兩個規則:

  1. HEAD請求所需要的響應於包含一個位置標頭。 HEAD響應不應該在響應主體中包含任何內容。

  2. GET請求要求至少一個描述一個超鏈接被包含在響應體。

您的計劃是隻填充位置標題嗎?

至於相對於明知的響應具有空體的GET請求的任何實際危險你的問題,我可以預見唯一的問題是功能性的,當用戶打開自動重定向關閉。機器人也可能期望超鏈接。正如@BalusC所提到的,您可能在204無內容響應中有其他選擇。如果說用戶正在以ajaxy方式更改應用程序中的內容,則客戶端代碼可以維護文檔和實體狀態,並且服務器可以用204進行響應。但是現在我快速前進,並假設我知道關於您的用例的一些信息。