HTTP 常見狀態碼技術解析(應用層)

引言

????????HTTP 狀態碼是服務器對客戶端請求的標準化響應標識,屬于應用層協議的核心機制。其采用三位數字編碼,首位數字定義狀態類別,后兩位細化具體場景。

????????狀態碼不僅是服務端行為的聲明,更是客戶端處理響應的關鍵依據。本文將從協議規范出發,系統性解析常見狀態碼及其工程應用。


一、狀態碼分類標準

根據 RFC 9110 標準,HTTP 狀態碼按首位數字分為五類

常見狀態碼類別以及原因
類別定義典型場景
1xx信息性響應請求已被接收,繼續處理
2xx成功操作請求已被正確處理完
3xx重定向需客戶端進一步操作
4xx客戶端錯誤請求包含語法錯誤,
5xx服務器錯誤服務器處理請求失敗

看著挺多的是不是?不用慌!下面我們來用通俗的語言逐個講解,確保大家看完都難聽懂學會!

二、1xx 信息性狀態碼

1xx?狀態碼表示請求已被接收,需繼續處理。此類狀態碼在實際開發中較為少見,這部分大家看看就行了,通常由服務器或代理自動處理,無需客戶端干預。常見狀態碼包括:

  • 100 Continue:客戶端應繼續發送請求體。
  • 101 Switching Protocols:服務器同意切換協議(如從 HTTP 升級到 WebSocket)。

二、2xx 成功類狀態碼

2xx 狀態碼表示請求已被服務器成功接收、理解并處理。

200 OK(最常見的)

  • 定義:請請求成功,響應中包含請求的結果數據。

  • 場景

    • GET 請求獲取資源數據

    • POST 請求返回創建結果

  • 示例:查詢用戶信息時,服務器返回用戶數據。

    HTTP/1.1 200 OK
    Content-Type: application/json{"id": 2337504725, "name": "Xiaoliang"}

201 Created

  • 定義:請求成功并在服務器創建了一個或多個新資源。

  • 場景

    • RESTful API 創建新資源

    • 批量創建操作(返回多個資源地址)

  • 技術細節:響應頭應包含 Location 字段指向新資源的 URI(如 /users/2337504725)。

  • 示例:提交表單創建新用戶,服務器返回 201 及用戶 ID。

    HTTP/1.1 201 Created
    Location: /api/users/2337504725

202 Accepted

  • 定義:請求已接收但未完成處理,適用于異步任務

  • 場景

    • 大數據導出任務

    • 耗時計算任務

  • 實現細節

    • 需配合任務隊列機制

    • 應返回任務狀態查詢接口

  • 示例:觸發數據導出后,服務器返回 202 表示任務已排隊。


204 No Content

  • 定義:成功執行但無實體返回,響應頭可能包含更新元數據。

  • 場景

    • DELETE 操作成功

    • 表單提交無需刷新頁面

  • 技術要求

    • 必須不包含消息體

    • 客戶端不應改變當前文檔視圖

  • 示例:刪除資源后,服務器返回 204 表示操作成功。

三、3xx 重定向狀態碼(常見且重要)

3xx?狀態碼表示客戶端需采取進一步操作以完成請求。

301 Moved Permanently

  • 定義:資源已被永久重定向到新 URI。
  • 場景:網站域名變更或資源路徑永久調整。比如你經常看的某個網站的網址更換了。
  • 技術細節:客戶端應緩存新 URI,后續請求直接訪問新地址。

302 Found

  • 定義:資源臨時重定向到新 URI。
  • 場景:短期的維護頁面跳轉或 A/B 測試。比如你經常訪問的網站的某些資源被暫時轉移到另外一個網址了。
  • 技術細節:客戶端后續請求仍使用原 URI。

四、4xx 客戶端錯誤狀態碼

4xx?狀態碼表示客戶端請求存在錯誤。

400 Bad Request

  • 定義:請求語法或參數錯誤,服務器無法解析。
  • 場景:表單字段格式錯誤、JSON 數據格式無效。
  • 示例:提交的 JSON 缺少必填字段。

401 Unauthorized

  • 定義:請求需要身份認證。
  • 場景:未登錄用戶訪問需認證的 API。
  • 技術細節:響應頭需包含?WWW-Authenticate?字段指明認證方式。

403 Forbidden

  • 定義:服務器理解請求但拒絕執行。
  • 場景:權限不足(如普通用戶訪問管理員接口)。
  • 與 401 的區別:401 表示未認證,403 表示已認證但無權限。

404 Not Found(是不是很熟悉)

  • 定義:請求資源在服務器里面不存在。相信大家都試過吧?嘿嘿
  • 場景:訪問的 URL 路徑錯誤或資源已被刪除。

409 Conflict

  • 定義:請求與服務器當前狀態沖突。
  • 場景:資源版本沖突(如并發編輯)、重復創建唯一性資源。
  • 示例:用戶注冊時郵箱已存在。

五、5xx 服務端錯誤狀態碼(重要)

5xx?狀態碼表示服務器處理請求時發生錯誤。

500 Internal Server Error

  • 定義:服務器內部錯誤,無法完成請求。
  • 場景:代碼異常未捕獲、數據庫連接失敗。
  • 排查方向:檢查服務器日志及錯誤堆棧。

502 Bad Gateway

  • 定義:網關或代理服務器從上游服務器收到無效響應。
  • 場景:反向代理后的服務崩潰或超時。
  • 示例:Nginx 代理的后端服務無響應。

附:快速參考表

狀態碼名稱適用場景
200OK標準成功響應
201Created資源創建成功
204No Content成功無返回體
301Moved Permanently永久重定向
302Found臨時重定向
400Bad Request客戶端請求錯誤
401Unauthorized需要身份認證
403Forbidden拒絕訪問
404Not Found資源不存在
500Internal Server Error服務器內部錯誤
502Bad Gateway網關代理服務器收到無效響應
503Service Unavailable服務不可用(臨時過載或維護)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896096.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896096.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896096.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity中的鍵位KeyCode

目錄 主要用途 檢測按鍵事件: 處理鍵盤輸入: 基本鍵位 常用鍵: 字母鍵: 數字鍵: 功能鍵: 方向鍵: 控制鍵: 鼠標鍵: 其他特殊鍵: 代碼示例 按下…

高考或者單招考試需要考物理這科目

問題:幫忙搜索一下以上學校哪些高考或者單招考試需要考物理這科目的 回答: 根據目前獲取的資料,明確提及高考或單招考試需考物理的學校為湖南工業職業技術學院,在部分專業單招時要求選考物理;其他學校暫未發現明確提…

【設計模式】 代理模式(靜態代理、動態代理{JDK動態代理、JDK動態代理與CGLIB動態代理的區別})

代理模式 代理模式是一種結構型設計模式,它提供了一種替代訪問的方法,即通過代理對象來間接訪問目標對象。代理模式可以在不改變原始類代碼的情況下,增加額外的功能,如權限控制、日志記錄等。 靜態代理 靜態代理是指創建的或特…

Redis 限流

Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface AccessLimit {/*** 限制次數*/int count() default 15;/*** 時間窗口,單位為秒*/int seconds() default 60; }Aspect Component public class AccessLimitAspect {private static …

Android Coil3縮略圖、默認占位圖placeholder、error加載錯誤顯示,Kotlin(1)

Android Coil3縮略圖、默認占位圖placeholder、error加載錯誤顯示&#xff0c;Kotlin&#xff08;1&#xff09; implementation("io.coil-kt.coil3:coil-core:3.1.0")implementation("io.coil-kt.coil3:coil-network-okhttp:3.1.0") <uses-permission …

DeepSeek 助力 Vue 開發:打造絲滑的 鍵盤快捷鍵(Keyboard Shortcuts)

前言&#xff1a;哈嘍&#xff0c;大家好&#xff0c;今天給大家分享一篇文章&#xff01;并提供具體代碼幫助大家深入理解&#xff0c;徹底掌握&#xff01;創作不易&#xff0c;如果能幫助到大家或者給大家一些靈感和啟發&#xff0c;歡迎收藏關注哦 &#x1f495; 目錄 Deep…

uniapp引入uview組件庫(可以引用多個組件)

第一步安裝 npm install uview-ui2.0.31 第二步更新uview npm update uview-ui 第三步在main.js中引入uview組件庫 第四步在uni.scss中引入import "uview-ui/theme.scss"樣式 第五步在文件中使用組件

Jmeter進階篇(34)如何解決jmeter.save.saveservice.timestamp_format=ms報錯?

問題描述 今天使用Jmeter完成壓測執行,然后使用命令將jtl文件轉換成html報告時,遇到了報錯! 大致就是說jmeter里定義了一個jmeter.save.saveservice.timestamp_format=ms的時間格式,但是jtl文件中的時間格式不是標準的這個ms格式,導致無法正常解析。對于這個問題,有如下…

React 低代碼項目:網絡請求與問卷基礎實現

&#x1f35e;吐司問卷&#xff1a;網絡請求與問卷基礎實現 Date: February 10, 2025 Log 技術要點&#xff1a; HTTP協議XMLHttpRequest、fetch、axiosmock.js、postmanWebpack devServer 代理、craco.js 擴展 webpackRestful API 開發要點&#xff1a; 搭建 mock 服務 …

安裝海康威視相機SDK后,catkin_make其他項目時,出現“libusb_set_option”錯誤的解決方法

硬件&#xff1a;雷神MIX G139H047LD 工控機 系統&#xff1a;ubuntu20.04 之前運行某項目時&#xff0c;處于正常狀態。后來由于要使用海康威視工業相機&#xff08;型號&#xff1a;MV-CA013-21UC&#xff09;&#xff0c;便下載了并安裝了該相機的SDK&#xff0c;之后運行…

人工智能之自動駕駛技術體系

自動駕駛技術體系 自動駕駛技術是人工智能在交通領域的重要應用&#xff0c;旨在通過計算機視覺、傳感器融合、路徑規劃等技術實現車輛的自主駕駛。自動駕駛不僅能夠提高交通效率&#xff0c;還能減少交通事故和環境污染。本文將深入探討自動駕駛的技術體系&#xff0c;包括感…

淺談模組-相機鬼像

一&#xff0e;前言 在成像中&#xff0c;我們常常會遇到肉眼觀測的真實世界中&#xff0c;不存在的異常光影出現在畫面中&#xff0c;并伴有各種顏色&#xff0c;我們將這個物體稱為鬼像。某些鬼像可能會對圖像產生美感的體驗&#xff0c;但是大多數的鬼像都會對圖像的質量以…

vmware虛擬機Ubuntu Desktop系統怎么和我的電腦相互復制文件、內容

1、先安裝vmware workstation 17 player&#xff0c;然后再安裝Ubuntu Desktop虛擬機&#xff0c;然后再安裝vmware tools&#xff0c;具體可以參考如下視頻&#xff1a; VMware虛擬機與主機實現文件共享&#xff0c;其實一點也不難_嗶哩嗶哩_bilibili 2、本人親自試過了&…

Spring Boot項目中解決跨域問題(四種方式)

目錄 一&#xff0c;跨域產生的原因二&#xff0c;什么情況下算跨域三&#xff0c;實際演示四&#xff0c;解決跨域的方法 1&#xff0c;CrossOrigin注解2&#xff0c;添加全局過濾器3&#xff0c;實現WebMvcConfigurer4&#xff0c;Nginx解決跨域5&#xff0c;注意 開發項目…

Oracle JDK、Open JDK zulu下載地址

一、Oracle JDK https://www.oracle.com/java/technologies/downloads/ 剛進去是最新的版本&#xff0c;往下滑可以看到老版本 二、Open JDK的 Azul Zulu https://www.azul.com/downloads/ 直接可以選版本等選項卡

軟件測試:1、單元測試

1. 單元測試的基本概念 單元&#xff08;Unit&#xff09;&#xff1a;軟件系統的基本組成單位&#xff0c;可以是函數、模塊、方法或類。 單元測試&#xff08;Unit Testing&#xff09;&#xff1a;對軟件單元進行的測試&#xff0c;驗證代碼的正確性、規范性、安全性和性能…

Leetcode.264 丑數 II

題目鏈接 Leetcode.264 丑數 II mid 題目描述 給你一個整數 n n n &#xff0c;請你找出并返回第 n n n 個 丑數 。 丑數 就是質因子只包含 2 2 2、 3 3 3 和 5 5 5 的正整數。 示例1&#xff1a; 輸入&#xff1a;n 10 輸出&#xff1a;12 解釋&#xff1a;[1, 2, 3,…

瑞芯微RV1126部署YOLOv8全流程:環境搭建、pt-onnx-rknn模型轉換、C++推理代碼、錯誤解決、優化、交叉編譯第三方庫

目錄 1 環境搭建 2 交叉編譯opencv 3 模型訓練 4 模型轉換 4.1 pt模型轉onnx模型 4.2 onnx模型轉rknn模型 4.2.1 安裝rknn-toolkit 4.2.2 onn轉成rknn模型 5 升級npu驅動 6 C++推理源碼demo 6.1 原版demo 6.2 增加opencv讀取圖片的代碼 7 交叉編譯x264 ffmepg和op…

【Python爬蟲(32)】從單飛 to 團戰:Python多線程爬蟲進化史

【Python爬蟲】專欄簡介&#xff1a;本專欄是 Python 爬蟲領域的集大成之作&#xff0c;共 100 章節。從 Python 基礎語法、爬蟲入門知識講起&#xff0c;深入探討反爬蟲、多線程、分布式等進階技術。以大量實例為支撐&#xff0c;覆蓋網頁、圖片、音頻等各類數據爬取&#xff…

C#初級教程(1)——C# 與.NET 框架:探索微軟平臺編程的強大組合

圖片來源&#xff1a; https://www.lvhang.site/docs/dotnettimeline 即夢AI - 一站式AI創作平臺 一、歷史發展脈絡 在早期的微軟平臺編程中&#xff0c;常用的編程語言有 Visual Basic、C、C。到了 20 世紀 90 年代末&#xff0c;Win32 API、MFC&#xff08;Microsoft Found…