2011-12-31 123 views
1

當我嘗試發送PUT請求與空身體時,我得到了400錯誤。 似乎nginx認爲這不是一個有效的請求。 是否有任何方法來改變nginx設置或如何設置客戶端以避免400錯誤如何避免nginx 400時PUT空體

回答

0

Nginx不支持分塊請求,所以客戶端代碼必須指定正確的Content-Length標頭。 Nginx在缺乏的情況下返回411。

我不確定你爲什麼會得到400.我的建議是至少設置error_log級別爲info,看看Nginx抱怨什麼。

0

您的問題可能是因爲您試圖CRUD(創建,檢索,更新和刪除)的語義HTTP規範REST動詞(GET,PUT,POST,DELETE,HEAD)與不完全性映射關聯:

  1. 創建= PUT
  2. 檢索= GET
  3. 更新= POST
  4. 刪除=刪除

但是,「PUT」表示要在服務器上「放置」某些內容,並且存在空的內容時,該內容無效,並且應始終得到400響應。

  • 創建= PUT(如果,且僅當您要發送創建內容所需的資源 )。

  • 創建= POST(如果你發送命令到服務器 創建使用服務器端資源的內容)

  • 檢索= GET。

  • 更新= PUT(如果,且僅當您發送更新內容所需的資源 )

  • 更新= POST(如果您向服務器發送一個命令 更新內容使用服務器端資源)

  • Delete = DELETE。

閱讀上Post vs PUT

+0

謝謝您的回答。在Rails世界中,我們使用「PUT」作爲更新資源,這裏爲什麼我發送PUT請求與空體,因爲我需要通過PUT「resource/cancel」更改資源狀態 – allenwei 2012-01-03 02:55:43