2012-05-21 29 views
2

我正在實現一個特殊用途的HTTP服務器,並且偶然發現了一個場景,我無法弄清楚RFC要求我做什麼。客戶不得發送帶有正文的TRACE請求(參見第9.8節)。但是,如果客戶端發送一個體相關的頭在跟蹤請求(即一個Content-Length或Transfer-Encoding頭),我似乎對如何使服務器像兩個選項:如果HTTP TRACE請求具有正文,該怎麼辦?

  1. 閱讀違法正文並忽略它
  2. 將頭文件與客戶端一樣處理對HEAD方法的響應,即作爲關於尚未包含的主體的信息,並假設沒有主體。

我沒有看到任何有利於這兩種解決方案的RFC。那麼,我應該選哪個?我還沒有看到另一種選擇嗎?

回答

1

您讀取正文,然後忽略它或返回4xx狀態碼。見http://trac.tools.ietf.org/wg/httpbis/trac/ticket/19

+0

TRACE上的消息正文與GET上的消息正文不同 - RFC僅僅沒有說明GET請求應該如何處理正文,但是明確指出TRACE請求不能有一個。 – Jules

+1

是的。這是一個客戶端錯誤。但是如果你想保持連接打開,你需要消耗有效載荷。然後您可以忽略它,或發出客戶端錯誤信號。 –

相關問題