你需要瞭解的 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
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...