回答
使用400如果請求參數是錯誤的。如果其中一個If-*
請求標頭像If-Match
,If-Modified-Since
等其中一個是錯誤的,請使用412。
爲什麼?這正是RFC所說的。例如見這種提取物If-Match
規格:
如果沒有實體標籤匹配,或者如果「*」,並給出當前沒有實體存在,服務器不能執行所請求的方法,並且必須返回一個412 (先決條件失敗)響應。當客戶端要阻止更新方法(如PUT)修改自客戶端上次檢索到的資源時發生更改時,此行爲非常有用。
412當您的服務器不符合客戶端指定的條件時使用。
在你的情況下,你應該使用400.這只是一個不好的要求。
請參閱此link瞭解有關預處理標題的一些說明。
Etag標頭通常是一個字符串,代表我們在HTTP標頭中的資源 。您要求具有If-Match的資源是一個 預先規定的HTTP標頭。如果它不符合您發送的代碼 ,它將發送一個412。
如果-None-Match通知服務器僅當 Etag與客戶端發送的Etag不同時才處理整個響應。
爲什麼downvote?答案有什麼問題? – nunespascal
認爲有人度過了一個糟糕的一天。只要忽略它,讓系統完成它的工作:) – BalusC
有一個upvote來平衡它。 –
你可以使用狀態碼422.如果你不想,400是好的。
- 1. 角4 HTTP狀態代碼= 400
- 2. HTTP狀態代碼200-299或400
- 3. Google.Apis.Admin.Email_Migration_v2 [HTTP狀態代碼412 - 數量達到限額]
- 4. HTTP狀態碼200 vs 202
- 5. HTTP狀態代碼
- 6. Facebook SDK 3.1 - 錯誤:HTTP狀態碼:400
- 7. 什麼是正確的HTTP錯誤代碼返回,404 vs 412?
- 8. HTTP請求狀態400
- 9. Spring MVC的HTTP狀態400
- 10. Jetty客戶端http錯誤代碼412
- 11. 我需要$ HTTP POST狀態代碼400,但得到200
- 12. 預檢的響應具有無效的HTTP狀態代碼400
- 13. 中東國家的http狀態代碼400
- 14. 400使用Parse.Cloud.httpRequest時的狀態代碼
- 15. 亞馬遜s3 | MalformedXML狀態代碼:400
- 16. 不良請求-400狀態代碼
- 17. HTTP狀態代碼:在GCMDemo
- 18. 蟒蛇HTTP狀態代碼
- 19. 設置http狀態代碼
- 20. PUT的HTTP狀態代碼
- 21. 開關HTTP狀態代碼
- 22. HTTP狀態代碼413
- 23. 替代HTTP狀態碼401?
- 24. 502 HTTP狀態代碼
- 25. 檢測HTTP狀態代碼
- 26. 獲取HTTP狀態代碼
- 27. HTTP狀態500而不是HTTP狀態的JAX-RS響應400
- 28. Internet Explorer Internet失敗HTTP狀態代碼
- 29. AppsFlyer返回狀態碼400
- 30. HTTP錯誤代碼:400
它還表示,由於400的語法格式不正確,請求無法實現。 – Rob
本頁幫助我 - http://odino.org/don-t-rape-http-if-none-match-the- 412-http-status-code/- 使用'PUT'請求上下文使我更容易理解它的用途,因爲濫用某些狀態碼總是容易的。 – Charlie