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