news 2026/5/1 11:14:49

HTTP 状态码详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HTTP 状态码详解

HTTP 状态码(HTTP Status Code)是服务器对客户端请求处理结果的标准化反馈,由3 位数字组成。首位数字定义了状态码所属的大类,后两位用于细分具体语义。

核心作用

  1. 明确请求是否成功
  2. 判断问题来源(客户端 / 服务器)
  3. 指导客户端下一步行为(重试、跳转、修正请求等)

一句话总览

  • 1XX:还在处理(协议层交互)
  • 2XX:成功(不同语义的成功结果)
  • 3XX:需要跳转(资源位置变更)
  • 4XX:客户端错(服务器拒绝请求)
  • 5XX:服务器错(请求合法但服务异常)

一、HTTP 状态码整体分类

分类含义
1XX信息性状态(处理中)
2XX成功
3XX重定向
4XX客户端错误
5XX服务器错误

二、1XX 信息性状态码(请求正在处理中)

仅用于协议层交互,不代表请求完成
浏览器与普通业务代码几乎感知不到

100 Continue(继续)

说明:服务器已收到请求头,允许客户端继续发送请求体。
典型场景

  • 大文件上传
  • POST 提交大量数据
  • 请求头包含Expect: 100-continue
    客户端行为:继续发送请求体;若请求已完成,可忽略该响应。
101 Switching Protocols(切换协议)

说明:服务器同意切换通信协议。
典型场景

  • HTTP → WebSocket
  • HTTP/1.1 → HTTP/2
102 Processing(处理中,WebDAV)

说明:服务器已接收请求并开始处理,但尚未完成。
场景

  • WebDAV 大文件操作
  • 批量远程文件处理

三、2XX 成功状态码(重点)

不同 2XX 状态码代表“成功的不同语义”
不应只使用 200

200 OK(请求成功)
  • 请求成功
  • 返回完整响应体
  • 最通用的成功状态码
    常见场景:网页访问、接口查询、文件下载
201 Created(资源创建成功)

说明:请求成功,并新建了资源
特征

  • 通常返回Location响应头
  • REST API 中非常重要
POST /users → 201 Created Location: /users/123
202 Accepted(请求已接受,尚未处理完成)

说明:请求合法,但处理将在后台异步执行。
典型场景

  • 批量任务
  • 消息投递
  • 异步计算
    注意
  • 不保证最终成功
  • 不返回处理结果
203 Non-Authoritative Information(非权威信息)
  • 返回结果经过代理修改
  • 实际项目中极少使用
204 No Content(成功但无返回内容)

说明

  • 请求成功
  • 响应体为空
  • 不改变当前页面状态
    典型场景
  • DELETE 删除
  • PUT 更新
  • 心跳接口
205 Reset Content(重置内容)
  • 请求成功
  • 提示客户端重置当前视图
  • 浏览器支持有限,实际使用极少
206 Partial Content(部分内容)

说明:服务器返回资源的一部分。
前提:请求头包含Range
典型场景

  • 断点续传
  • 视频 / 音频分段加载
Range: bytes=0-1023 → 206 Partial Content
✅ 2XX 使用建议
场景推荐状态码
查询成功200
创建资源201
异步任务202
删除成功204
分段下载206

四、3XX 重定向状态码

表示资源位置发生变化
客户端需重新请求

300 Multiple Choices(多种选择)
  • 资源存在多个版本
  • 浏览器通常自动选择
  • 实际使用较少
301 Moved Permanently(永久重定向)
  • 资源永久迁移
  • 浏览器会缓存重定向关系
  • SEO 场景常用
302 Found(临时重定向,HTTP/1.0)
  • 临时跳转
  • 可能将 POST 改为 GET
307 Temporary Redirect(临时重定向,HTTP/1.1)
  • 保留请求方法
  • 比 302 更安全
⭐ 308 Permanent Redirect(永久重定向,保留方法)
  • 类似 301
  • 强制保留原请求方法
  • 更适合 API / REST 场景
304 Not Modified(未修改)

说明

  • 资源未发生变化
  • 使用本地缓存
    前提
  • 请求头包含If-Modified-Since
  • 请求头包含If-None-Match

五、4XX 客户端错误状态码(重点)

4XX 的本质是:
服务器拒绝当前请求

1️⃣ 请求格式 / 内容错误
400 Bad Request
  • 参数格式错误
  • JSON 解析失败
  • 请求体不合法
    👉最常见接口错误
415 Unsupported Media Type
  • Content-Type 不被支持
  • 前后端联调高频错误
422 Unprocessable Entity(非常重要)
  • 语法正确
  • 业务校验失败
    示例
{"email":"invalid-email"}

👉 比 400 更“语义正确”,强烈推荐在 REST API 中使用

2️⃣ 身份 & 权限问题
401 Unauthorized
  • 未登录 / Token 无效
  • 需要重新认证
403 Forbidden
  • 已登录
  • 但无权限
3️⃣ 资源相关错误
404 Not Found
  • 资源不存在
  • 接口路径错误
  • ID 不存在
410 Gone(资源永久删除)
  • 与 404 不同
  • 明确表示:永远不会再有
    👉 SEO / 资源下线非常有价值
4️⃣ 请求方式错误
405 Method Not Allowed
  • 方法不被资源支持
  • 通常返回Allow
5️⃣ 请求频率 & 并发限制
408 Request Timeout
  • 客户端请求未完整发送
429 Too Many Requests(非常重要)
  • 请求过于频繁
  • 限流核心状态码
Retry-After: 60
✅ 常见 4XX 状态码速记
状态码含义
400参数错误
401未认证
403无权限
404不存在
405方法不支持
415媒体类型错误
422业务校验失败
429被限流

六、5XX 服务器错误状态码

请求是合法的
错误发生在服务器端

500 Internal Server Error
  • 代码 / 配置 / 运行异常(后端代码异常、数据库错误、配置错误)
  • 万能兜底,但不应滥用
501 Not Implemented
  • 服务器不支持该请求方法
  • 功能尚未实现
502 Bad Gateway
  • 网关收到了上游无效响应
  • 上游服务宕机 / 异常
503 Service Unavailable
  • 服务器暂时不可用(维护 / 过载)
  • 可恢复
  • 通常可重试
504 Gateway Timeout
  • 网关等不到上游响应
  • 上游服务响应超时

七、如何根据 HTTP 状态码进行错误排查(实战重点)

1️⃣ 快速判断原则(开发者排查思路核心)
2XX → 正常流程 3XX → 检查跳转逻辑 4XX → 优先检查客户端 5XX → 优先检查服务器
2️⃣ 客户端 / 前端处理策略
状态码建议处理
200正常渲染
201记录资源地址
204不刷新页面
401跳转登录
403提示无权限
404空态 / 404 页面
429延迟重试
5XX提示稍后重试
3️⃣ 后端接口设计建议(非常重要)

❌ 不要所有错误都返回 200
❌ 不要用 500 表示业务校验失败
✅ 语义正确比“省事”重要

推荐设计

场景状态码
参数错误400 / 422
未登录401
无权限403
不存在404
冲突409
限流429
服务异常5XX
4️⃣ 运维 / 网关排查方向
状态码优先排查
500应用日志
502上游服务
503服务负载
504超时配置

八、终极总结(面试 & 实战版)

状态码本质

HTTP 状态码 = 请求结果 + 问题归属

  • 4XX:你(客户端)的问题
  • 5XX:我(服务器)的问题
必背高频状态码
200 成功 201 创建 301 永久重定向 302 临时重定向 401 未登录 403 无权限 404 不存在 429 限流 500 服务器错误 503 服务不可用

👋 关注我!持续分享 C# 实战技巧、代码示例 & 技术干货

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 3:28:21

无需GPU!轻量级中文情感分析镜像,开箱即用的StructBERT解决方案

无需GPU!轻量级中文情感分析镜像,开箱即用的StructBERT解决方案 1. 背景与需求:为什么需要轻量化的中文情感分析方案? 在自然语言处理(NLP)的实际应用中,中文文本情感分析是一项高频且关键的任…

作者头像 李华
网站建设 2026/5/1 7:56:53

新手教程:如何在Windows上首次运行usblyzer

从零开始:手把手教你第一次在Windows上运行Usblyzer 你有没有遇到过这样的情况——自己做的USB设备插上去就是不识别,或者某个外设通信时数据错乱、响应延迟?这时候光看代码和日志已经无能为力了。你需要的,是 直接“看到”USB线…

作者头像 李华
网站建设 2026/5/1 8:15:47

告别环境配置烦恼,YOLOv9镜像让检测项目秒落地

告别环境配置烦恼,YOLOv9镜像让检测项目秒落地 在工业质检、智能安防和自动驾驶等实时视觉任务中,目标检测模型的部署效率往往决定了整个项目的推进节奏。传统方式下,开发者需要花费大量时间配置CUDA、PyTorch、OpenCV等依赖,处理…

作者头像 李华
网站建设 2026/5/1 5:46:01

LPIPS和FID指标优秀!lama定量评估表现亮眼

LPIPS和FID指标优秀!lama定量评估表现亮眼 1. 引言:图像修复的挑战与LaMa的突破 在图像编辑、内容创作和数字资产管理等领域,图像修复(Image Inpainting)是一项关键任务。其目标是根据图像中未受损区域的内容&#x…

作者头像 李华
网站建设 2026/5/1 5:42:59

混元翻译模型1.8B版:质量保障策略

混元翻译模型1.8B版:质量保障策略 1. 技术背景与问题提出 随着全球化进程的加速,跨语言沟通需求持续增长,高质量、低延迟的机器翻译系统成为智能应用的核心组件。传统大型翻译模型虽然具备较强的语言理解能力,但其高资源消耗和推…

作者头像 李华
网站建设 2026/5/1 5:48:20

Qwen轻量级模型解析:与传统BERT模型的对比优势

Qwen轻量级模型解析:与传统BERT模型的对比优势 1. 引言 1.1 技术背景与行业痛点 在当前自然语言处理(NLP)的实际应用中,情感分析和对话系统常被用于客服、用户反馈监控、智能助手等场景。传统方案通常采用“专用模型堆叠”架构…

作者头像 李华