3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果“驗(yàn)證失敗”表示請(qǐng)求中存在某些客戶端錯(cuò)誤,請(qǐng)使用HTTP 400(錯(cuò)誤請(qǐng)求)。例如,如果URI應(yīng)該具有ISO-8601日期,而您發(fā)現(xiàn)它的格式錯(cuò)誤或引用的日期是2月31日,則您將返回HTTP400。如果您希望實(shí)體主體中格式正確的XML,則返回同上。它無(wú)法解析。
(1/2016):在過(guò)去的五年中,WebDAV更為特定的HTTP 422(不可處理實(shí)體)已成為HTTP 400的非常合理的替代品。例如,請(qǐng)參見(jiàn)JSON API中的用法。但是請(qǐng)注意,HTTP 422 尚未將其納入HTTP 1.1,RFC-7231中。
Richardson和Ruby的RESTful Web服務(wù)包含了有關(guān)何時(shí)使用各種HTTP響應(yīng)代碼的非常有用的附錄。他們說(shuō):
400(“錯(cuò)誤請(qǐng)求”)的
重要性:高。
這是一般的客戶端錯(cuò)誤狀態(tài),在沒(méi)有其他合適的4xx錯(cuò)誤代碼時(shí)使用。當(dāng)客戶端與PUT或POST請(qǐng)求一起提交表示形式且表示形式格式正確時(shí),通常會(huì)使用該格式,但這沒(méi)有任何意義。(第381頁(yè))
和:
401(“未授權(quán)”)
重要性:高。
客戶端嘗試在受保護(hù)的資源上操作而未提供適當(dāng)?shù)纳矸蒡?yàn)證憑據(jù)。它可能提供了錯(cuò)誤的憑據(jù),或者根本沒(méi)有提供。憑據(jù)可以是用戶名和密碼,API密鑰或身份驗(yàn)證令牌,無(wú)論所涉及的服務(wù)期望什么??蛻舳送ǔ?huì)發(fā)出一個(gè)URI請(qǐng)求并接受一個(gè)401,以便它知道要發(fā)送哪種憑證以及采用哪種格式。[...]

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
這里是:
rfc2616#section-10.4.1-400錯(cuò)誤的請(qǐng)求
由于語(yǔ)法格式錯(cuò)誤,服務(wù)器無(wú)法理解該請(qǐng)求。客戶不應(yīng)在沒(méi)有修改的情況下重復(fù)請(qǐng)求。
rfc7231#section6.5.1-6.5.1。400錯(cuò)誤的要求
400(錯(cuò)誤請(qǐng)求)狀態(tài)代碼表示服務(wù)器由于某些原因(例如格式錯(cuò)誤的請(qǐng)求語(yǔ)法,無(wú)效的請(qǐng)求消息框架或欺騙性的請(qǐng)求路由)而無(wú)法或?qū)⒉粫?huì)處理請(qǐng)求。
指格式錯(cuò)誤(格式不正確)的情況!
rfc4918-11.2。422無(wú)法處理的實(shí)體
422(不可處理實(shí)體)狀態(tài)代碼表示服務(wù)器
理解請(qǐng)求實(shí)體的內(nèi)容類型(因此415(不支持的媒體類型)狀態(tài)代碼不合適),并且請(qǐng)求實(shí)體的語(yǔ)法正確(因此400(錯(cuò)誤請(qǐng)求) )狀態(tài)代碼不合適),但無(wú)法處理其中的說(shuō)明。例如,如果XML請(qǐng)求主體包含格式正確(即,語(yǔ)法正確)但語(yǔ)義錯(cuò)誤的 XML指令,則可能發(fā)生此錯(cuò)誤情況。
結(jié)論
經(jīng)驗(yàn)法則:[_] 00涵蓋最普通的情況以及指定代碼未涵蓋的情況。
422最適合對(duì)象驗(yàn)證錯(cuò)誤(精確地是我的建議:)
至于語(yǔ)義上的錯(cuò)誤-考慮類似“此用戶名已存在”驗(yàn)證之類的事情。
400錯(cuò)誤地用于對(duì)象驗(yàn)證
- 3 回答
- 0 關(guān)注
- 1235 瀏覽
添加回答
舉報(bào)