你需要瞭解的 HTTP Status Code

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

你需要瞭解的 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


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

更多相關文章
  • 我的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 ...
一周排行
  • 一:背景 1. 講故事 如果你常翻看FCL的源碼,你會發現這裡面有不少方法藉助了C/C++的力量讓C#更快更強悍,如下所示: [DllImport("QCall", CharSet = CharSet.Unicode)] [SecurityCritical] [SuppressUnmanagedCo ...
  • 上一篇(https://www.cnblogs.com/meowv/p/12966092.html)文章使用AutoMapper來處理對象與對象之間的映射關係,本篇主要圍繞定時任務和數據抓取相關的知識點並結合實際應用,在定時任務中迴圈處理爬蟲任務抓取數據。 開始之前可以刪掉之前測試用的幾個Hello ...
  • 首先創建實體類 1 public class MacState 2 { 3 /// <summary> 4 /// 請求狀態 5 /// </summary> 6 public string success { get; set; } 7 /// <summary> 8 /// 錯誤信息 9 /// ...
  • 0. 前言 前幾天FreeSql的作者向我推薦了FreeSql框架,想讓我幫忙寫個文章介紹一下。嗯,想不到我也能帶個貨了。哈哈,開個玩笑~看了下覺得設計的挺有意思的,所以就謝了這篇文章。 簡單介紹一下,FreeSql 是NCC組織的沙盒級項目,是一款功能強大的 ORM 組件,支持 .NET Core ...
  • 0. 前言 這是一個新的系列,名字是《ASP.NET Core 入門到實戰》。這個系列主講ASP.NET Core MVC,輔助一些前端的基礎知識(能用來實現我們需要的即可,並非主講)。同時這個系列也會在後續介紹ASP.NET Core 平臺的其它類型的項目,並帶領大家以各個類型的項目為主要架構開發 ...
  • 我寫了一個Winform測試程式,用的System.Timers.Timer,在事件里,設置label1.Text,然後,居然句柄泄漏、用戶對象泄漏! 百思不得其解,最後換成System.Windows.Forms.Timer,居然不泄漏了! 最近睡眠不足,哪怕一個很小的問題,隨便搞搞,都半夜了! ...
  • leetcode-7. 整數反轉。 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 註意: 假設環境只能存儲得下 32 位的有符號整數,則其 ...
  • 1. Java 虛擬機是什麼? 1.1 虛擬機 虛擬機:虛擬的電腦,一個用來執行虛擬電腦指令的軟體。 虛擬機分為系統虛擬機和程式虛擬機。 系統虛擬機:提供一個可運行完整操作系統的軟體平臺,如 Visual Box、VMware。 程式虛擬機:專門執行單個程式的,典型代表 Java 虛擬機。Jav ...
  • 前言 - strlen 概述 無意間掃到 glibc strlen.c 中代碼, 久久不能忘懷. 在一無所知的編程生涯中又記起點點滴滴: 編程可不是兒戲 ❀, 有些難, 也有些不捨. 隨軌跡一同重溫, 曾經最熟悉的 strlen 手感吧 ~ /* Copyright (C) 1991-2020 Fr ...
  • 背景 隊列[Queue]:是一種限定僅在表頭進行刪除操作,僅在表尾進行插入操作的線性表;即先進先出(FIFO-first in first out):最先插入的元素最先出來。 本文通過編碼實現鏈式隊列類,並模擬一個有趣的應用,能夠幫助我們對鏈式隊列有更深度的理解。 基本概念 結點 每個元素,除了存儲 ...