RESTful API 中的状态码一览表

阅读时长 5 分钟读完

状态码是 RESTful API 中非常重要的一部分,通过状态码来表示服务器返回的响应状态和信息。了解 RESTful API 中的各个状态码及其含义,可以帮助我们更好地理解 API 的使用和开发,也有助于我们处理请求时更加高效和准确。本文将为大家介绍 RESTful API 中的状态码一览表及其含义。

1xx - 信息状态码

1xx 状态码表示服务器已经接收到请求,正在处理中,但尚未完成处理。主要包括以下两种状态码。

  • 100 - Continue:表示服务器已经接收到请求头,客户端可以继续发送请求体。例如,当客户端向服务器提交大文件时,服务器会先检查用户权限等情况,此时服务器返回 100 状态码告知客户端可以继续发送文件内容。
  • 101 - Switching Protocols:表示服务器正在切换协议。例如,当客户端请求从 HTTP 协议切换到 WebSocket 协议时,服务器返回 101 状态码表示正在进行协议切换。

2xx - 成功状态码

2xx 状态码表示服务器已经成功接收、理解并处理了请求。主要包括以下状态码。

  • 200 - OK:表示服务器成功处理了请求。例如,当客户端请求某个资源成功时,服务器会返回 200 状态码,并携带请求结果。
  • 201 - Created:表示服务器成功创建了资源。例如,当客户端使用 POST 方法向服务器提交数据,服务器成功创建新的资源时,返回 201 状态码。
  • 204 - No Content:表示服务器已经成功处理了请求,但是没有返回任何内容。通常使用在 DELETE 或 PUT 请求时。

3xx - 重定向状态码

3xx 状态码表示客户端需要进行进一步的操作才能完成请求。主要包括以下状态码。

  • 301 - Moved Permanently:表示请求的资源已经被永久移动,客户端需要使用新的 URI 进行请求。例如,当客户端请求的资源已经被删除或者迁移时,服务器会返回 301 状态码,同时告知新的 URI。
  • 302 - Found:表示请求的资源被暂时移动,客户端需要使用新的 URI 进行请求。例如,当客户端请求的资源正在维修或者被重新部署时,服务器会返回 302 状态码,同时告知新的 URI。
  • 304 - Not Modified:表示客户端的缓存资源是最新的,可以直接使用。当服务器接收到包含 If-Modified-Since 或 If-None-Match 请求头的请求时,且客户端缓存的资源没有更新时,服务器会返回 304 状态码。

4xx - 客户端错误状态码

4xx 状态码表示客户端请求有错误,常见的状态码有以下类型。

  • 400 - Bad Request:表示客户端请求有语法错误,服务器无法理解。例如,请求参数格式不对、缺失参数等。
  • 401 - Unauthorized:表示客户端请求需要身份验证,但是没有提供凭证。例如,需要登录授权的 API,需要在请求头中携带正确的身份验证数据。
  • 403 - Forbidden:表示客户端请求有权限问题,服务器拒绝请求。例如,客户端请求的资源不允许访问、访问限制等。
  • 404 - Not Found:表示请求的资源不存在,服务器没有找到。例如,客户端请求的 API 地址或资源已删除或未创建等。
  • 405 - Method Not Allowed:表示客户端请求的 HTTP 方法不适用于资源。例如,一个 HTTP POST 请求不适用于只读的 API。
  • 409 - Conflict:表示客户端请求的资源与服务器上的现有资源冲突。例如,上传同名文件或者资源等。
  • 429 - Too Many Requests:表示客户端请求的访问次数超过了 API 的限制。例如,服务器对用户的请求频率进行限制,当客户端请求次数超过限制时,服务器返回此状态码。

5xx - 服务器错误状态码

5xx 状态码表示服务器内部错误,无法完成客户端请求。主要包括以下状态码。

  • 500 - Internal Server Error:表示服务器内部错误,无法完成客户端请求。
  • 503 - Service Unavailable:表示服务器暂时无法提供服务,通常是由于服务器维护或过载等原因,导致服务暂时无法响应请求。

总结

RESTful API 中的状态码是非常重要的一环,它能够准确的描述出客户端请求的返回状态,帮助客户端快速的进行下一步操作。熟悉和掌握 RESTful API 中的状态码,可以帮助我们更好的处理请求并开发更加优秀的 API。下面是一个示例代码,实际中可能还需要在状态码准确之后,按照状态码的含义来对返回信息进行处理,我们可以在完整的业务逻辑中体现。

-- -------------------- ---- -------
----------------------------
  -------------- -- -
    -- ---------------- --- ---- -
      ------ ----------------
    - ---- -- ---------------- --- ---- -
      ----- --- -----------------
    - ---- -- ---------------- --- ---- -
      ----- --- --------------
    - ---- -- ---------------- --- ---- -
      ----- --- ---------------------
    - ---- -
      ----- --- --------------------
    -
  --
  ---------- -- -
    ------------------
  --
  ------------ -- -
    -----------------------------
  ---

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c32b4a83d39b488171ec53

纠错
反馈