你需要瞭解的 HTTP Status Code

来源:https://www.cnblogs.com/weihanli/archive/2020/03/29/http-status-code-you-need-know.html
-Advertisement-
Play Games

你需要瞭解的 HTTP Status Code Intro 現在前後端分離的開發模式越來越流行,後端負責開發對應的 API,前端只需要 關註前端頁面的數據展示和前端邏輯即可。 對於前後端分離這種開發模式,我個人還是比較喜歡的,因為這樣可以讓更專業的人做更專業的事情,後端專註於做 API 的開發設計, ...


你需要瞭解的 HTTP Status Code

Intro

現在前後端分離的開發模式越來越流行,後端負責開發對應的 API,前端只需要
關註前端頁面的數據展示和前端邏輯即可。

對於前後端分離這種開發模式,我個人還是比較喜歡的,因為這樣可以讓更專業的人做更專業的事情,後端專註於做 API 的開發設計,前端專註於數據的展示,頁面的樣式。

這樣前後端需要就某些信息達成一些共識,比如說常用的 HTTP 方法, 常用的 HTTP 狀態碼等

HTTP Method 較為簡單,我們常用的習慣如下:

一般查詢我們都會使用 GET 方法,
創建新的記錄使用 POST 方法
更新已有數據使用 PUT 方法
更新已有數據部分屬性使用 PATCH 方法
刪除已有數據使用 DELETE 方法

下麵來詳細介紹一下常用的 HTTP 狀態碼

1xx

1xx 狀態碼一般是一個請求的中間狀態,一般是信息提示,請求協商

100 Continue,請求未結束,應該繼續請求

101 Switching Protocol,協議轉換,在使用 Web Socket 的時候就會遇到,下麵是一個示例,響應會有一個 Connection: Upgrade 的請求頭,Upgrade 會指定要使用的協議名稱

websocket demo

2xx

2xx 一般表示請求處理成功

200 OK,請求處理成功

201 Created,請求處理成功,並且新資源已經創建

202 Accepted,請求已經接受,正在處理,尚未處理完成

204 No Content,響應內容為空,在 asp.net core 中返回一個 Json(null) 的時候就會是一個 NoContent 的結果

3xx

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,資源未發生修改,可以直接使用瀏覽器本地緩存

This is the response code to an If-Modified-Since or If-None-Match header, where the URL has not been modified since the specified date.

4xx

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 格式

The 415 (Unsupported Media Type) status code indicates that the
origin server is refusing to service the request because the payload
is in a format not supported by this method on the target resource.
The format problem might be due to the request's indicated
Content-Type or Content-Encoding, or as a result of inspecting the
data directly.

5xx

5xx 一般表示服務端錯誤

500 Internal Server Error,伺服器內部錯誤

501 Not Implemented 伺服器不支持需要處理請求的功能,比如圖片壓縮等處理

502 Bad Gateway 反向代理或網關找不到處理請求的伺服器

503 Service Unavailable 服務不可用

504 Gateway Timeout 網關超時

505 HTTP Version Not Supported,不支持的 HTTP 版本,伺服器不支持或拒絕處理這個 HTTP 版本的請求

Reference


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我的LeetCode:https://leetcode cn.com/u/ituring/ 我的LeetCode刷題源碼[GitHub]:https://github.com/izhoujie/Algorithmcii LeetCode 820. 單詞的壓縮編碼 題目 給定一個單詞列表,我們將這個列 ...
  • 1 uses 2 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 3 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBa ...
  • Druid簡介 Druid是阿裡開源的資料庫連接池,作為後起之秀,性能比dbcp、c3p0更高,使用也越來越廣泛。 druid的優點 高性能。性能比dbcp、c3p0高很多。 只要是jdbc支持的資料庫,druid都支持,對資料庫的支持性好。並且Druid針對oracle、mysql做了特別優化。 ...
  • public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (map ...
  • A - Coffee 題意:給你一個字元串,要你判斷是否滿足一下條件,全部滿足則輸出“Yes”,否則輸出“No”。 (1)字元串的第3個字母等於字元串的第4個字母 (2)字元串的第5個字母等於字元串的第6個字母 (3)字元串的長度為6,且全部為小寫字母 題解:簽到題,易解 代碼: #include< ...
  • 一、背景 一方面,有時必須從幾個類中派生出一個子類,繼承它們所有的屬性和方法。但是,Java不支持多重繼承。有了介面,就可以得到多重繼承的效果。 另一方面,有時必須從幾個類中抽取出一些共同的行為特征,而它們之間又沒有is-a的關係,僅僅是具有相同的行為特征而已。 二、圖示 三、介面的使用 1.介面: ...
  • 隨著繼承層次中一個個新子類的定義,類變得越來越具體,而父類則更一般,更通用。類的設計應該保證父類和子類能夠共用特征。有時將一個父類設計得非常抽象,以至於它沒有具體的實例,這樣的類叫做抽象類。 舉例: public class test { public static void main(String ...
  • 發現按照教程操作破解Eplan,破解一直不成功。主要原因是MultiKey64在win10上運行不成功。可以通過設備管理看到是否有下圖的驅動 需要關閉win10的簽名認證,這個鏈接就是關閉的方法https://jingyan.baidu.com/article/624e74594dbc8d34e8b ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...