使用ASP.NET Core 3.x 构建 RESTful API - 3.3.1 HTTP状态码
HTTP狀態(tài)碼會告訴API的消費者以下事情:?
請求是否執(zhí)行成功了?
如果請求失敗了,那么誰為它負(fù)責(zé)?
?
HTTP的狀態(tài)碼有很多,但是Web?API不一定需要支持所有的狀態(tài)碼。HTTP狀態(tài)碼一共分為5個級別:?
1xx,屬于信息性的狀態(tài)碼。Web?API并不使用1xx的狀態(tài)碼。?
2xx,意味著請求執(zhí)行的很成功。?
200 - Ok,表示請求成功;?
201 - Created,請求成功并創(chuàng)建了資源;?
204 - No Content,請求成功,但是不應(yīng)該返回任何東西,例如刪除操作。?
3xx,用于跳轉(zhuǎn)。例如告訴搜素引擎,某個頁面的網(wǎng)址已經(jīng)永久的改變了。絕大多數(shù)的Web?API都不需要使用這類狀態(tài)碼。?
4xx,客戶端錯誤:?
400 - Bad Request,表示API消費者發(fā)送到服務(wù)器的請求是有錯誤的;?
401 - Unauthorized,表示沒有提供授權(quán)信息或者提供的授權(quán)信息不正確;?
403 - Forbidden,表示身份認(rèn)證已經(jīng)成功,但是已認(rèn)證的用戶卻無法訪問請求的資源;?
404 - Not Found,表示請求的資源不存在;?
405 - Method not allowed,當(dāng)嘗試發(fā)送請求到資源的時候,使用了不被支持的HTTP方法時,就會返回405狀態(tài)碼;?
406 - Not acceptable,這表示API消費者請求的表述格式并不被Web?API所支持,并且API不會提供默認(rèn)的表述格式。例如請求的媒體類型是application/xml,但是Web?API僅支持application/json類型,并且API不會將application/json作為默認(rèn)格式提供;?
409 - Conflict,表示請求與服務(wù)器當(dāng)前狀態(tài)沖突。通常指更新資源時發(fā)生的沖突,例如,當(dāng)你編輯某個資源的時候,該資源在服務(wù)器上又進行了更新,所以你編輯的資源版本和服務(wù)器的不一致。當(dāng)然有時候也用來表示你想要創(chuàng)建的資源在服務(wù)器上已經(jīng)存在了。它就是用來處理并發(fā)問題的狀態(tài)碼。??
415 - Unsupported media type,與406正好相反,有一些請求必須帶著數(shù)據(jù)發(fā)往服務(wù)器,這些數(shù)據(jù)都屬于特定的媒體類型,如果API不支持該媒體類型格式,415就會被返回。?
422 - Unprocessable entity,它是HTTP擴展協(xié)議的一部分。它說明服務(wù)器已經(jīng)懂得了實體的Content?Type,也就是說415狀態(tài)碼肯定不合適;此外,實體的語法也沒有問題,所以400也不合適。但是服務(wù)器仍然無法處理這個實體數(shù)據(jù),這時就可以返回422。所以它通常是用來表示語意上有錯誤,通常就表示實體驗證的錯誤。?
5xx,服務(wù)器錯誤:?
500 - Internal server error,表示服務(wù)器出現(xiàn)了錯誤,客戶端無能為力,只能以后再試試了。?
總結(jié)
以上是生活随笔為你收集整理的使用ASP.NET Core 3.x 构建 RESTful API - 3.3.1 HTTP状态码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WeihanLi.Npoi 支持 Sha
- 下一篇: 微软将中止支持 .NET Core 2.