常见的 HTTP 状态码有哪些从 1xx 到 5xx 全解及排错流程图01. 前言状态码是服务器与客户端之间的“暗号”02. 状态码分类总览03. 1xx信息性响应很少见到04. 2xx成功一切正常4.1 200 OK4.2 201 Created4.3 204 No Content05. 3xx重定向你去别处找5.1 301 vs 302 区别5.2 304 流程图缓存机制06. 4xx客户端错误你的问题6.1 400 Bad Request6.2 401 Unauthorized6.3 403 Forbidden6.4 404 Not Found6.5 405 Method Not Allowed6.6 429 Too Many Requests07. 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 → 是 → 请求成功无需处理 body05. 3xx重定向你去别处找状态码名称说明典型场景301Moved Permanently永久重定向以后都用新 URL网站换域名http→https302Found临时重定向本次用新 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点点关注收藏不迷路