你需要了解的 HTTP Status Code
現在前後端分離的開發模式越來越流行,後端負責開發對應的 API,前端只需要
關注前端頁面的資料展示和前端邏輯即可。 |
對於前後端分離這種開發模式,我個人還是比較喜歡的,因為這樣可以讓更專業的人做更專業的事情,後端專注於做 API 的開發設計,前端專注於資料的展示,頁面的樣式。
這樣前後端需要就某些資訊達成一些共識,比如說常用的 HTTP 方法, 常用的 HTTP 狀態碼等
HTTP Method 較為簡單,我們常用的習慣如下:
- 一般查詢我們都會使用 GET 方法
- 建立新的記錄使用 POST 方法
- 更新已有資料使用 PUT 方法
- 更新已有資料部分屬性使用 PATCH 方法
- 刪除已有資料使用 DELETE 方法
下面來詳細介紹一下常用的 HTTP 狀態碼
1xx 狀態碼一般是一個請求的中間狀態,一般是資訊提示,請求協商
100 Continue,請求未結束,應該繼續請求
101 Switching Protocol,協議轉換,在使用 Web Socket 的時候就會遇到,下面是一個示例,響應會有一個
Connection: Upgrade
的請求頭,
Upgrade
會指定要使用的協議名稱
2xx 一般表示請求處理成功
200 OK,請求處理成功
201 Created,請求處理成功,並且新資源已經建立
202 Accepted,請求已經接受,正在處理,尚未處理完成
204 No Content,響應內容為空,在 asp.net core 中返回一個 Json(null) 的時候就會是一個 NoContent 的結果
3xx 一般表示重定向
301 Moved Permanently 永久重定向
302 Found 臨時重定向
307 Temporary Redirect 臨時重定向請求
308 Permanent Redirect 永久重定向請求
這幾個重定向的區別:
- 301、302 只支援 GET 請求,如果是 POST 請求,重定向後會使用 GET 請求且 Body 資料會丟失
- 307、308 支援 POST 請求,在 POST 重定向的時候會帶上原來請求的 body 再請求新的地址,body 資料不會丟失
- 302、307 是臨時重定向
- 301、308 是永久重定向,是允許快取的,瀏覽器可以快取
- 304 Not Modified,資源未發生修改,可以直接使用瀏覽器本地快取
4xx 一般表示客戶端請求錯誤
400 BadRequest,錯誤請求,一般用來表示請求引數異常,比如請求的某一個引數不能為空,但實際請求是空
401 Unauthorized,未授權,資源需要授權或登入,而使用者沒有登入或者沒有提供訪問所需的 Token 等
403 Forbidden,禁止訪問,當前使用者沒有許可權訪問資源,如需要Admin角色的使用者,但是請求的使用者沒有這個角色
404 NotFound,未找到資源,資源不存在
405 Method Not Allowed,不允許的方法呼叫,資源不支援的請求方法,比如資源只允許 GET 請求,但是實際請求使用了 POST 或 DELETE 方法
406 Not Acceptable,請求的資源客戶端不支援處理,比如客戶端希望獲取 xml 的響應,但是伺服器端只支援 JSON 響應
408 Request Timeout, 請求處理超時
409 Conflict,請求資源衝突,常發生在 PUT 更新資源資訊時發生,比如更新時指定資源的 ETAG,但是PUT請求時,資源的 ETAG 已經發生變化
410 Gone,請求資源在源伺服器上不再可用
411 Length Required,請求需要攜帶 Content-Length 請求頭
412 Precondition Failed,請求預檢失敗,請求的某些引數不符合條件
The pre condition given in the request evaluated to false by the server.
413 Payload Too Large,請求的引數太大,請求的 body 過大,伺服器拒絕處理
414 URI Too Long,請求的 URI 地址太長,伺服器拒絕處理
415 Unsupported Media Type,不支援的媒體型別或不支援的編碼,比如伺服器只支援處理 JSON 請求,但是請求是 xml 格式
5xx 一般表示服務端錯誤
500 Internal Server Error,伺服器內部錯誤
501 Not Implemented 伺服器不支援需要處理請求的功能,比如圖片壓縮等處理
502 Bad Gateway 反向代理或閘道器找不到處理請求的伺服器
503 Service Unavailable 服務不可用
504 Gateway Timeout 閘道器超時
505 HTTP Version Not Supported,不支援的 HTTP 版本,伺服器不支援或拒絕處理這個 HTTP 版本的請求
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2702146/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 你需要了解的HTTP協議HTTP協議
- HTTP協議狀態碼詳解(HTTP Status Code)HTTP協議
- 前端需要了解的http知識前端HTTP
- SAP ABAP應用伺服器的HTTP響應狀態碼(Status Code)伺服器HTTP
- 你需要了解API介面API
- 精讀《Deno 1.0 你需要了解的》
- jQuery : ajax獲取Status CodejQuery
- 關於等保2.0,你需要了解的
- 關於redis,你需要了解的幾點!Redis
- HTTP Status 400 – Bad RequestHTTP
- 你需要知道的HTTP常識HTTP
- 你需要知道的http協議HTTP協議
- 六款你需要了解的實用軟體
- 學習 webpack 前,你需要了解的那些概念Web
- 關於 HTTP 後端人員需要了解的 20+ 圖片!HTTP後端
- HTTP Status 404 的詳細解決思路HTTP
- 接觸Mac初期,你需要了解的那點事Mac
- RESTful API 中的 Status code 是否要遵守規範RESTAPI
- 關於GDPR,你需要了解的的5件事
- 關於 React19,你需要了解的前因後果React
- 學習Flutter,你需要了解的Dart 編碼規範FlutterDart
- Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the processErrorExceptionAI
- 入門Java你需要了解的幾個知識要點!Java
- 從 Python 2 切換到 Python 3 你所需要了解的Python
- 你需要了解下Android View的更新requestLayout與重繪invalidateAndroidView
- 你需要了解的伺服器託管收費標準伺服器
- [譯] 關於 CSS 變數,你需要了解的一切CSS變數
- 你需要了解的有關.NET日期時間的必要資訊
- status 返回當前請求的http狀態碼HTTP
- 更全面的記錄缺陷,你需要了解這些
- 20 道 Spring Boot 面試題你需要了解下Spring Boot面試題
- 面試 Netflix 前,你至少需要了解以下內容面試
- 關於響應式佈局,你需要了解的知識點
- 微服務架構盛行的時代,你需要了解點 Spring Boot微服務架構Spring Boot
- 2019摺疊屏手機來了 你需要了解的幾點
- 關於內容稽核,你需要了解的東西,這裡都有!
- 小白必看!入門嵌入式你需要了解這些!
- 上傳報錯 Status Code: 413 Payload Too Large 請教!