南充市网站建设_网站建设公司_RESTful_seo优化
2026/1/17 2:10:36 网站建设 项目流程

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# 实战技巧、代码示例 & 技术干货

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询