正在加载,请稍候…

HTTP 状态码:开发者完整参考指南

全面介绍所有 HTTP 状态码:1xx 信息、2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务器错误,附实际示例。

HTTP 状态码:开发者完整参考指南

理解 HTTP 状态码

HTTP 状态码是 Web 服务器返回的三位数字,用于指示 HTTP 请求的结果。它们分为五类,提供关于请求是否成功、失败或需要额外操作的关键信息。

HTTP 状态码:开发者完整参考指南 插图

状态码分类

1xx 信息

临时响应,表示服务器已收到请求并正在继续处理。

  • 100 Continue:服务器已收到头部,客户端应继续发送请求体
  • 101 Switching Protocols:服务器同意升级协议(WebSocket 握手)
  • 103 Early Hints:在服务器准备响应时预加载资源

2xx 成功

请求已成功接收、理解并接受。

  • 200 OK:GET、POST 的标准成功响应
  • 201 Created:资源创建成功(通常在 POST 后)
  • 204 No Content:成功但无响应体(DELETE 操作)
  • 206 Partial Content:服务器提供部分资源(范围请求)

3xx 重定向

客户端必须采取额外操作才能完成请求。

  • 301 Moved Permanently:资源已永久移动;更新你的链接/书签
  • 302 Found:临时重定向;原始 URL 可能再次使用
  • 304 Not Modified:自上次请求后资源未更改;使用缓存版本
  • 307 Temporary Redirect:类似 302 但保留 HTTP 方法
  • 308 Permanent Redirect:类似 301 但保留 HTTP 方法

HTTP 状态码:开发者完整参考指南 插图

4xx 客户端错误

请求包含客户端错误。

  • 400 Bad Request:请求语法错误或参数无效
  • 401 Unauthorized:需要认证或凭据无效
  • 403 Forbidden:已认证但无权访问该资源
  • 404 Not Found:资源在此 URL 不存在
  • 405 Method Not Allowed:该端点不支持此 HTTP 方法
  • 409 Conflict:状态冲突(例如重复资源、版本冲突)
  • 410 Gone:资源已永久移除(不同于 404,确认曾存在)
  • 422 Unprocessable Entity:请求格式正确但语义错误
  • 429 Too Many Requests:触发速率限制

5xx 服务器错误

服务器未能完成有效请求。

  • 500 Internal Server Error:通用服务器端错误
  • 501 Not Implemented:服务器不支持该请求方法
  • 502 Bad Gateway:上游服务器返回无效响应
  • 503 Service Unavailable:服务器暂时不可用(维护、过载)
  • 504 Gateway Timeout:上游服务器未及时响应

REST API 设计中的状态码

语义化使用状态码

良好的 API 使用状态码精确传达信息:

GET /users/123     → 200 OK (用户找到)
GET /users/999     → 404 Not Found (用户不存在)
POST /users        → 201 Created (用户创建)
DELETE /users/123  → 204 No Content (已删除,无响应体)
POST /login        → 401 Unauthorized (密码错误)
GET /admin/data    → 403 Forbidden (非管理员)
POST /users        → 409 Conflict (邮箱已存在)

HTTP 状态码:开发者完整参考指南 插图

常见错误

  • 返回 200 并在响应体中包含错误详情("200 OK" 带 {error: "User not found"})
  • 对未认证请求使用 403(应为 401)
  • 对客户端验证错误使用 500(应为 400/422)
  • 无论结果如何始终返回 200

认证与授权混淆

401 Unauthorized 命名不佳——它实际表示“未认证”:

  • 你未证明身份
  • 发送 WWW-Authenticate 头部指示认证方式

403 Forbidden 表示“未授权”——你已识别但未被允许:

  • 服务器知道你是谁
  • 你的权限不包含该资源

缓存与状态码

状态码影响 HTTP 缓存行为:

  • 200:默认可缓存(配合适当头部)
  • 301:浏览器无限期缓存
  • 302:通常不缓存
  • 404:可缓存(可配置)
  • 5xx:通常不缓存

使用 HTTP 状态码参考

我们的工具提供:

  1. 所有状态码,按类别组织,包含名称和描述
  2. 常见使用示例,针对每个状态码
  3. 搜索——按编号或关键词查找状态码
  4. RFC 参考——链接到官方规范
  5. 复制代码——快速复制状态码编号用于代码中

在设计 API、调试 HTTP 响应和理解 Web 服务器行为时,将其作为参考随时查阅。