Skip to content

常见 HTTP 状态码

常见 HTTP 状态码是服务器与客户端通信的关键标识,用于表示请求的处理结果。以下是常见状态码的区别和典型场景:


1xx(信息响应)

  • 用途:临时响应,表示请求已被接收,需要继续处理。
  • 常见状态码
    • 100 Continue:客户端应继续发送请求体(常用于大文件上传前的确认)。

2xx(成功)

  • 用途:请求已成功被服务器接收、理解并处理。
  • 典型状态码
    • 200 OK
      • 场景:请求成功,响应中包含请求结果(如网页内容、API 数据)。
    • 201 Created
      • 场景:资源创建成功(如通过 POST 新增数据后返回新资源的 URL)。
    • 204 No Content
      • 场景:请求成功,但无返回内容(如 DELETE 请求成功后的响应)。

3xx(重定向)

  • 用途:需要客户端进一步操作以完成请求(如跳转新 URL)。
  • 典型状态码
    • 301 Moved Permanently
      • 场景:资源永久迁移到新 URL(如网站改版后旧链接跳转到新地址)。
    • 302 Found
      • 场景:资源临时重定向(如未登录用户跳转到登录页)。
    • 304 Not Modified
      • 场景:资源未修改,客户端可使用本地缓存(配合 If-Modified-Since 使用)。

4xx(客户端错误)

  • 用途:客户端请求有误,服务器无法处理。
  • 典型状态码
    • 400 Bad Request
      • 场景:请求语法错误(如 JSON 格式错误、必填参数缺失)。
    • 401 Unauthorized
      • 场景:未通过身份验证(如未登录用户访问需认证的接口)。
      • 与 403 的区别:401 表示未认证,需提供有效凭据(如 Token)。
    • 403 Forbidden
      • 场景:认证成功但无权访问(如普通用户尝试访问管理员接口)。
    • 404 Not Found
      • 场景:请求的资源不存在(如 URL 拼写错误、资源已被删除)。
    • 429 Too Many Requests
      • 场景:客户端请求频率过高(如 API 限流)。

5xx(服务器错误)

  • 用途:服务器处理请求时发生错误。
  • 典型状态码
    • 500 Internal Server Error
      • 场景:服务器内部错误(如代码异常、数据库连接失败)。
    • 502 Bad Gateway
      • 场景:代理服务器从上游服务器收到无效响应(如反向代理后的服务宕机)。
    • 503 Service Unavailable
      • 场景:服务器暂时不可用(如维护中或过载)。
    • 504 Gateway Timeout
      • 场景:代理服务器等待上游服务器响应超时。

关键区别速查表

状态码类型典型场景解决方向
200成功正常请求成功-
301重定向资源永久迁移更新书签或链接
400客户端错请求参数/格式错误检查请求体格式或参数
401客户端错未提供身份验证凭据添加 Token 或登录
403客户端错已认证但权限不足联系管理员调整权限
404客户端错资源不存在检查 URL 或资源状态
500服务器错服务器代码异常查看服务器日志排查问题
503服务器错服务器过载或维护稍后重试或联系运维

常见混淆点

  • 401 vs 403:401 是“未认证”,需登录;403 是“已认证但无权限”。
  • 404 vs 410 Gone:404 是资源不存在(可能从未存在),410 是资源曾存在但被永久删除。
  • 500 vs 503:500 是服务器内部错误(代码问题),503 是服务器暂时不可用(维护或过载)。

合理使用状态码有助于提高 API 的清晰度和调试效率,同时优化用户体验(如精准的错误提示)。

/src/technology/dateblog/2025/04/20250419-%E5%B8%B8%E8%A7%81-http-%E7%8A%B6%E6%80%81%E7%A0%81.html