RESTfull api 狀態(tài)碼

200 OK - [GET]:服務(wù)器成功返回用戶請求的數(shù)據(jù),該操作是冪等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用戶新建或修改數(shù)據(jù)成功。
202 Accepted - []:表示一個請求已經(jīng)進入后臺排隊(異步任務(wù))
204 NO CONTENT - [DELETE]:用戶刪除數(shù)據(jù)成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發(fā)出的請求有錯誤,服務(wù)器沒有進行新建或修改數(shù)據(jù)的操作,該操作是冪等的。
401 Unauthorized - [
]:表示用戶沒有權(quán)限(令牌、用戶名、密碼錯誤)。
403 Forbidden - [] 表示用戶得到授權(quán)(與401錯誤相對),但是訪問是被禁止的。
404 NOT FOUND - [
]:用戶發(fā)出的請求針對的是不存在的記錄,服務(wù)器沒有進行操作,該操作是冪等的。
406 Not Acceptable - [GET]:用戶請求的格式不可得(比如用戶請求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用戶請求的資源被永久刪除,且不會再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 當創(chuàng)建一個對象時,發(fā)生一個驗證錯誤。
500 INTERNAL SERVER ERROR - [*]:服務(wù)器發(fā)生錯誤,用戶將無法判斷發(fā)出的請求是否成功。

200這個最容易理解,就是正確的請求返回正確的結(jié)果,如果不想細分正確的請求結(jié)果都可以直接返回200。

201表示資源被正確的創(chuàng)建。比如說,我們 POST 用戶名、密碼正確創(chuàng)建了一個用戶就可以返回 201。

202請求是正確的,但是結(jié)果正在處理中,沒法返回對應(yīng)的結(jié)果。比如說,我們請求一個需要大量計算的結(jié)果,但是并沒有計算結(jié)束時,可以返回這個,這時候客戶端可以通過輪詢等機制繼續(xù)請求。

203請求的代理服務(wù)器修改了源服務(wù)器返回的 200 中的內(nèi)容,一般用不到。比如說,我們通過代理服務(wù)器向服務(wù)器 A 請求用戶信息,服務(wù)器 A 正常響應(yīng),但代理服務(wù)器命中了緩存并返回了自己的緩存內(nèi)容,這時候它返回 203 告訴我們這部分信息不一定是最新的,我們可以自行判斷并處理。

204請求正確,但是沒有需要返回的內(nèi)容。比如說,我們請求刪除某個用戶,刪除成功可以返回 204。205類似 204,但是要求請求者重置視圖,一般也用不到。比如說,我們請求刪除某個用戶,服務(wù)器返回 205 的話,我們就刷新現(xiàn)在的用戶列表。

206請求成功,但根據(jù)請求頭只返回了部分內(nèi)容。比如說,我們下載一部片,共有 10 部分,我們把請求也分成了 10 次(防止一次請求過大),這時候服務(wù)器就可以返回 206 并在其頭部告訴我們這是哪一部分,然后再根據(jù)這個信息進行拼裝。

300請求成功,但結(jié)果有多種選擇。比如說,我們下載一部片,服務(wù)器有 avi、mp4 等格式,這時候可以返回 300,并在 body 里告知有哪些格式,然后用戶可以根據(jù)這些格式再次請求。

301請求成功,但是資源被永久轉(zhuǎn)移。比如說,我們要下載葫蘆娃,但是由于舊的存儲服務(wù)商漲價了,現(xiàn)在要使用新的存儲服務(wù)了,要去新地址下載,這時候可以返回 301,并在 header 的 Location 中告知新的地址,以后也應(yīng)當?shù)竭@個地址下載。

302請求成功,但是資源被臨時轉(zhuǎn)移了。和 301 不同的是,除非是 HEAD 請求,否則新地址的信息應(yīng)當在 body 中返回,并且資源只是臨時轉(zhuǎn)移,以后不應(yīng)當通過新地址來下載。303類似 302,但要求使用 GET 來訪問新的地址來獲取資源。

304請求的資源并沒有被修改過。比如說,我們發(fā)送請求想看看 5.20 后的情侶信息,服務(wù)器查詢沒有新的情侶信息產(chǎn)生,這時候可以返回 304,然后客戶端可以繼續(xù)用舊的數(shù)據(jù)。

305請求的資源必須通過代理訪問。比如說,我們想請求服務(wù)器 A 上新的 iPhone 的信息,但是需要通過代理服務(wù)器才能訪問,如果直接請求了服務(wù)器 A,沒有經(jīng)過代理服務(wù)器,這時候服務(wù)器 A 就可以返回 305 從而告訴我們應(yīng)當訪問代理服務(wù)器。306不用了。307類似 302,但要求使用原有的請求方式來通過新地址獲取資源。308類似 301,但要求使用原有的請求方式來通過新地址獲取資源。// 分割線

400請求出現(xiàn)錯誤,比如請求頭不對等,所有不想明確區(qū)分的客戶端請求出錯都可以返回 400。401沒有提供認證信息。比如說,請求的時候沒有帶上 Token 等。

402為將來的需要所保留的狀態(tài)碼。403請求的資源不允許訪問。比如說,你使用普通用戶的 Token 去請求管理員才能訪問的資源。

404請求的內(nèi)容不存在。

405請求的方法不允許使用。比如說,服務(wù)器只實現(xiàn)了 PATCH 了局部更新資源,并沒有實現(xiàn) PUT 來替換資源,而我們使用了 PUT,這時候服務(wù)器可以返回 405 來告知并沒有實現(xiàn)對 PUT 的相關(guān)處理。406請求的資源并不符合要求。比如說,我們 header 里請求 JSON 格式的數(shù)據(jù),但是服務(wù)器只有 XML 格式的數(shù)據(jù),這時候可以返回 406 告知。407類似 401,但是要求必須去同代理服務(wù)器進行認證。

408客戶端請求超時。我們想 POST 創(chuàng)建一個用戶,雖然建立了連接,但是網(wǎng)絡(luò)不好,服務(wù)器在規(guī)定時間內(nèi)沒有得到我們的請求信息,這時候服務(wù)器可以返回 408 告訴我們超時了。然后我們可以重新發(fā)送請求。409請求沖突。比如說,服務(wù)器要求不同用戶不能重名,服務(wù)器已經(jīng)有了一個名叫小偉的用戶,這時候我們又想創(chuàng)建一個名叫小偉的用戶,服務(wù)器可以返回 409,告訴我們沖突了,也可以在 body 中明確告知是什么沖突了。410請求資源曾經(jīng)存在,但現(xiàn)在不存在了。比如說,我們下載葫蘆娃,但是因為版權(quán)被刪了,下載不了了,這時候服務(wù)器返回 410,告訴我們洗洗早點睡。411沒有提供請求資源的長度。比如說,我們下載葫蘆娃,服務(wù)器只允許我們分部分下載,我們?nèi)绻桓嬖V服務(wù)器我們要下載哪部分,服務(wù)器就返回 411 警告我們。412請求的資源不符合請求頭中的 IF-* 的某些條件。比如說,我們下載葫蘆娃,然后在請求頭告知服務(wù)器要 5.20 后更新過的,服務(wù)器沒有,于是返回了 412。413請求體過大。比如說,服務(wù)器要求上傳文件不能超過 5M,但是我們 POST 了 10M,這時候就返回 413。
414請求的 URI 太長了。比如說,我們提供了太多的 Query 參數(shù),以至于超過了服務(wù)器的限制,這時候可以返回 414。415不支持的媒體類型。比如說,我們上傳了一張七娃的 GIF 動圖,而服務(wù)器只允許你上傳 PNG 圖片,這時候就返回 415。416請求的區(qū)間無效。比如說,我們分部分下載時請求葫蘆娃的 10 分鐘到 12 分鐘的內(nèi)容,但是這部葫蘆娃只有 1 分鐘的內(nèi)容,這時候就返回 416。417預(yù)期錯誤。指服務(wù)器沒法滿足我們在請求頭里的 Expect 相關(guān)的信息。418我是個茶壺。這是一個愚人節(jié)的玩笑,這個狀態(tài)碼就是用來搞笑的。// 分割線
500服務(wù)器錯誤。沒法明確定義的服務(wù)器錯誤都可以返回這個。501請求還沒有被實現(xiàn)。比如說,我們請求一個接口來自動拒絕項目經(jīng)理的要求,但是這個接口只是美好的想象,并沒有被實現(xiàn),這時候可以返回 501。502網(wǎng)關(guān)錯誤。比如說,我們向服務(wù)器 A 請求下載葫蘆娃,但是 A 其實只是一個代理服務(wù)器,他得向 B 請求葫蘆娃,但是不知道為啥 B 不理他或者給他錯誤,這時候哦可以 A 返回 502 用來表示 B 這家伙傲嬌了。503服務(wù)暫時不可用。比如說,服務(wù)器正好在更新代碼重啟。504類似 502,但是這時候是 B 不理 A,超時了 。505請求的 HTTP 版本不支持。比如說,現(xiàn)在強行根據(jù) HTTP 1000 來請求。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,034評論 25 709
  • API定義規(guī)范 本規(guī)范設(shè)計基于如下使用場景: 請求頻率不是非常高:如果產(chǎn)品的使用周期內(nèi)請求頻率非常高,建議使用雙通...
    有涯逐無涯閱讀 2,927評論 0 6
  • 在我們開發(fā)過程中,尤其是和后臺調(diào)試接口的時候,經(jīng)常會有訪問服務(wù)器失敗的情況,我們打印錯誤日志可以看出 后臺給我們返...
    啊哈哈哈哈哈群閱讀 11,540評論 4 3
  • 你的每一次自我介紹,其實都是自我推銷,那么如何顯示你的獨特之處呢? 第一步,不要做任何會讓自己感到羞恥的事; 第二...
    大寫的李閱讀 493評論 0 2

友情鏈接更多精彩內(nèi)容