当前位置: 首页 > news >正文

常见的 HTTP 状态码有哪些:从 1xx 到 5xx 全解及排错流程图

常见的 HTTP 状态码有哪些:从 1xx 到 5xx 全解及排错流程图

    • 01. 前言:状态码是服务器与客户端之间的“暗号”
    • 02. 状态码分类总览
    • 03. 1xx:信息性响应(很少见到)
    • 04. 2xx:成功(一切正常)
      • 4.1 200 OK
      • 4.2 201 Created
      • 4.3 204 No Content
    • 05. 3xx:重定向(你去别处找)
      • 5.1 301 vs 302 区别
      • 5.2 304 流程图(缓存机制)
    • 06. 4xx:客户端错误(你的问题)
      • 6.1 400 Bad Request
      • 6.2 401 Unauthorized
      • 6.3 403 Forbidden
      • 6.4 404 Not Found
      • 6.5 405 Method Not Allowed
      • 6.6 429 Too Many Requests
    • 07. 5xx:服务器错误(服务器的问题)
      • 7.1 502 vs 504 区别(重要)
      • 7.2 5xx 排查思路流程图
    • 08. 完整排错流程图(从请求到响应)
    • 09. 快速记忆口诀(面试/日常用)
    • 10. 总结

🌺The Begin🌺点点关注,收藏不迷路🌺

01. 前言:状态码是服务器与客户端之间的“暗号”

当我们访问一个网站或调用一个 API,服务器除了返回数据,还会返回一个三位数字的HTTP 状态码。它告诉客户端:请求是否成功?是否需要重定向?客户端是否有权限?服务器是否出错了?

掌握常见状态码,是排查网络问题、调试 API、优化 Web 性能的必备基本功。本文按 1xx ~ 5xx 分类,逐一讲解含义、典型场景,并附上排错决策流程图


02. 状态码分类总览

分类范围含义通俗解释
1xx100-199信息性响应“服务器收到请求了,正在处理”
2xx200-299成功“搞定,你要的东西在这里”
3xx300-399重定向“你去找另一个地址”
4xx400-499客户端错误“你发的东西有问题”
5xx500-599服务器错误“服务器自己出毛病了”

03. 1xx:信息性响应(很少见到)

状态码名称说明
100Continue客户端可继续发送请求体(用于大文件上传前确认)
101Switching Protocols服务器同意切换协议(如 WebSocket 升级)

普通网页访问几乎不会看到 1xx,主要出现在底层 HTTP 库或 WebSocket 握手。


04. 2xx:成功(一切正常)

4.1 200 OK

  • 含义:请求成功,返回内容在响应体中。
  • 场景:GET 获取资源、POST 提交数据成功。

4.2 201 Created

  • 含义:请求成功且服务器创建了新资源。
  • 场景:POST 创建用户、上传文件成功后返回。

4.3 204 No Content

  • 含义:请求成功,但响应体无内容。
  • 场景:DELETE 删除资源成功、PUT 更新但不需要返回数据。
2xx 决策小流程: 收到响应 ↓ 状态码 200? → 是 → 读取 body,正常渲染 ↓ 否 状态码 201? → 是 → 检查 Location 头获取新资源 URL ↓ 否 状态码 204? → 是 → 请求成功,无需处理 body

05. 3xx:重定向(你去别处找)

状态码名称说明典型场景
301Moved Permanently永久重定向,以后都用新 URL网站换域名,http→https
302Found临时重定向,本次用新 URL,下次还用旧 URL未登录用户跳转到登录页
304Not Modified资源未变化,使用缓存协商缓存生效,节省带宽

5.1 301 vs 302 区别

客户端 GET /old ↓ 服务器返回 301 + Location: /new ↓ 客户端:以后所有请求 /old 都自动改为 /new (永久) 客户端 GET /temp ↓ 服务器返回 302 + Location: /login ↓ 客户端:本次访问 /login,下次 /temp 仍请求原地址(临时)

5.2 304 流程图(缓存机制)

客户端请求资源(带 If-Modified-Since) ↓ 服务器检查资源是否修改 ↓ 未修改 → 返回 304(无 body) ↓ 客户端使用本地缓存

06. 4xx:客户端错误(你的问题)

6.1 400 Bad Request

  • 含义:请求语法错误或参数格式不对。
  • 常见原因:JSON 格式错误、缺少必填参数、Content-Type 不匹配。

6.2 401 Unauthorized

  • 含义:未认证,需要登录或提供有效 token。
  • 场景:访问需要登录的接口但没带 Authorization 头。

6.3 403 Forbidden

  • 含义:已认证但无权限访问该资源。
  • 场景:普通用户尝试访问管理员接口。

6.4 404 Not Found

  • 含义:资源不存在。
  • 场景:URL 拼写错误、资源已被删除。

6.5 405 Method Not Allowed

  • 含义:HTTP 方法不允许。
  • 场景:接口只支持 POST,你却发了 GET。

6.6 429 Too Many Requests

  • 含义:请求过于频繁,触发限流。
  • 场景:爬虫、API 超出频率限制。
4xx 排错决策树: 收到 4xx ↓ 是 400? → 检查请求参数格式、JSON 语法、Content-Type ↓ 否 是 401? → 检查是否携带 token / 登录态 ↓ 否 是 403? → 确认当前用户是否有权限访问该资源 ↓ 否 是 404? → 检查 URL 路径、资源是否存在 ↓ 否 是 405? → 改用正确的 HTTP 方法(GET/POST/PUT/DELETE) ↓ 否 是 429? → 降低请求频率,增加延时

07. 5xx:服务器错误(服务器的问题)

状态码名称说明
500Internal Server Error服务器内部错误(代码异常、空指针等)
502Bad Gateway网关/代理收到上游无效响应(后端崩溃)
503Service Unavailable服务器过载或正在维护
504Gateway Timeout网关等待上游响应超时

7.1 502 vs 504 区别(重要)

客户端 → Nginx(网关) → 后端服务器(如 Java/Go/PHP) 502 Bad Gateway: Nginx 收到了后端返回的无效响应(后端进程挂了、返回格式错误) 504 Gateway Timeout: Nginx 等了很久(如 60 秒),后端没返回任何响应 → 超时

7.2 5xx 排查思路流程图

收到 5xx ↓ 500? → 查看后端服务日志,检查代码异常、数据库连接 ↓ 否 502? → 检查后端服务是否存活、端口是否正确监听 ↓ 否 503? → 检查是否过载(CPU/内存),是否有维护开关 ↓ 否 504? → 检查后端处理时间,是否需调大网关超时配置

08. 完整排错流程图(从请求到响应)

发起 HTTP 请求 ↓ 收到响应状态码 ↓ ┌─────────────────────────────────┐ │ 2xx ? → 成功,解析 body │ │ 3xx ? → 处理重定向(Location) │ │ 4xx ? → 检查客户端请求参数/权限│ │ 5xx ? → 检查服务器日志/负载 │ └─────────────────────────────────┘ ↓ 如果是 301/302 → 自动跳转到新 URL 如果是 304 → 使用本地缓存 如果是 4xx → 提示用户修改请求 如果是 5xx → 报警 + 查后端日志

09. 快速记忆口诀(面试/日常用)

1xx 告诉你:收到了 2xx 告诉你:成功了 3xx 告诉你:去别处 4xx 告诉你:你错了 5xx 告诉你:我错了 常见重点: 200 OK → 一切正常 201 Created → 创建成功 204 No Content → 成功但没数据 301 永久搬家 → 换域名用 302 临时跳转 → 登录跳转用 304 没变化 → 用缓存 400 参数不对 → 检查请求体 401 没登录 → 去登录 403 没权限 → 找管理员 404 找不到 → 检查 URL 429 请求太频繁 → 限流了 500 服务器炸了 → 查代码 502 网关收到坏响应 → 后端挂了 503 服务器忙 → 过载/维护 504 网关超时 → 后端响应慢

10. 总结

HTTP 状态码是 Web 开发者的“第二语言”。

  • 2xx让人安心,
  • 3xx默默跳转,
  • 4xx提醒你改代码,
  • 5xx催你起床修服务器。

下次遇到接口报错,先看状态码,再按流程图排查,能解决 80% 的问题。



🌺The End🌺点点关注,收藏不迷路🌺
http://www.jsqmd.com/news/594003/

相关文章:

  • 五次多项式换道轨迹规划+MPC轨迹跟踪控制simulink模型(有说明文档) 版本
  • 开发实战:asp.net core + ef core 实现动态可扩展的分页方案
  • 电力电子新手必看:SPWM单极性倍频调制在Simulink中的实现与优化
  • 告别数据孤岛:手把手教你用ArcMap的Join功能,把Excel数据精准‘贴’到地图上
  • 用AirSim和Habitat手把手教你搭建第一个无人机VLN仿真环境(避坑指南)
  • 知新研学 |AlignMamba:AlignMamba:通过局部和全局跨模态对齐增强多模态 Mamba 技术
  • HTTP 请求包含哪些内容:请求行、请求头、请求体三大结构及类型详解
  • Doris查询优化指南:PHP开发者必知的5个参数调优技巧
  • 文章标题:专业ASIC FPGA IP加密代码解密工具
  • 快至1天开通企业来电名片!高性价比号码认证服务商推荐(适配中小企业) - 企业服务推荐
  • 从Logistic曲线到疫情预测:用Python和SciPy复现SI传染病模型(附代码)
  • 连登IEEE/Elsevier一区TOP刊!PINN+强化学习新突破!
  • HTTP 2.0 与 HTTP 3.0 核心区别详解:从 TCP 到 UDP,彻底解决队头阻塞
  • **基于ARKit的增强现实手势交互开发实战:从零构建沉浸式用户界面**
  • UG NX 合并曲面减少面得数量
  • HTTP 和 HTTPS 有什么区别:从明文传输到安全加密的完整演进
  • ollama环境变量全解析:从数据路径到端口优化的高效配置指南
  • 第25课:让 Qt 从 GPIO 子系统一路进阶到平台驱动与设备树控制
  • 智能电池充电:使用PID控制器优化SOC附Matlab代码
  • 保姆级教程:用MS-Swift在本地电脑上跑通Qwen2.5-VL多模态大模型(附WebUI界面)
  • **Rollup方案实战:基于Vite的模块化构建优化与性能提升**在现代前端工程化实践中,**构建
  • 实测对比:美信POC方案中磁珠选型的5个关键陷阱(附PSpice仿真文件)
  • AI 驱动的代码理解神器:DeepWiki 让代码库秒变交互式 Wiki
  • 【GitHub开源项目专栏】黑客松获奖项目技术深潜:从垂直领域AI到安全基础设施的创新实践
  • 51单片机(一) --- 入门
  • 国产DSP
  • DJI Windows SDK避坑指南:从环境配置到示例程序运行的完整流程(VS2019实测)
  • c.语言完美演绎6-22
  • 字节跳动开源Coze后,个人开发者如何快速上手?保姆级教程来了
  • HTTP 中 GET 和 POST 的区别是什么:从语义到安全、从参数到缓存