跳转到内容

HTTP 状态码

HTTP 状态码用于表示服务器对请求的处理结果。状态码由三位数字组成,第一个数字定义了响应的类型:

1xx - 信息提示

这一类状态码表示服务器已接收请求,需要请求者继续执行操作。

  • 100 Continue: 继续。客户端应继续其请求
  • 101 Switching Protocols: 切换协议。服务器根据客户端的请求切换协议
  • 102 Processing: 处理中。服务器收到并正在处理请求,但无响应可用

2xx - 成功

表示服务器成功处理了请求。

  • 200 OK: 请求成功。一般用于 GET 与 POST 请求
  • 201 Created: 已创建。成功请求并创建了新的资源
  • 202 Accepted: 已接受。已经接受请求,但未处理完成
  • 204 No Content: 无内容。服务器成功处理,但未返回内容
  • 206 Partial Content: 部分内容。服务器成功处理了部分请求

3xx - 重定向

表示要完成请求,需要进一步的操作。

  • 300 Multiple Choices: 多种选择。请求的资源可包括多个位置
  • 301 Moved Permanently: 永久移动。请求的资源已被永久移动到新位置
  • 302 Found: 临时移动。请求的资源临时被移动
  • 303 See Other: 查看其它地址。使用 GET 和 POST 请求查看
  • 304 Not Modified: 未修改。所请求的资源未修改,使用缓存
  • 307 Temporary Redirect: 临时重定向。与 302 类似
  • 308 Permanent Redirect: 永久重定向。与 301 类似

4xx - 客户端错误

表示客户端可能出现错误,导致服务器无法处理。

  • 400 Bad Request: 客户端请求的语法错误,服务器无法理解
  • 401 Unauthorized: 请求要求用户的身份认证
  • 403 Forbidden: 服务器理解请求但拒绝执行
  • 404 Not Found: 服务器无法根据客户端的请求找到资源
  • 405 Method Not Allowed: 客户端请求中的方法被禁止
  • 406 Not Acceptable: 服务器无法根据客户端请求的内容特性完成请求
  • 408 Request Time-out: 服务器等待客户端发送的请求时间过长
  • 409 Conflict: 服务器处理请求时发生了冲突
  • 413 Request Entity Too Large: 请求的实体过大,服务器无法处理
  • 414 Request-URI Too Large: 请求的 URI 过长
  • 415 Unsupported Media Type: 服务器无法处理请求附带的媒体格式
  • 429 Too Many Requests: 用户在给定的时间内发送了太多请求

5xx - 服务器错误

表示服务器在处理请求的过程中发生了错误。

  • 500 Internal Server Error: 服务器内部错误,无法完成请求
  • 501 Not Implemented: 服务器不支持请求的功能,无法完成请求
  • 502 Bad Gateway: 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
  • 503 Service Unavailable: 由于临时的服务器维护或者过载,服务器当前无法处理请求
  • 504 Gateway Time-out: 作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器收到响应
  • 505 HTTP Version not supported: 服务器不支持请求的 HTTP 协议的版本

常见应用场景

身份验证

  • 需要登录时返回 401
  • 无权限访问时返回 403

资源访问

  • 成功获取资源返回 200
  • 成功创建资源返回 201
  • 资源不存在返回 404

重定向

  • 资源永久移动使用 301
  • 临时重定向使用 302
  • 使用缓存返回 304

请求错误

  • 请求格式错误返回 400
  • API 调用频率超限返回 429

服务器问题

  • 服务器错误返回 500
  • 服务维护时返回 503