RESTful API 中的状态码(Status Code)指南

在构建和使用 RESTful API 时,状态码是非常重要的一部分。它们可以向客户端通知请求的结果,以及指示客户端下一步应该采取哪些行动。

本文将为您提供有关 RESTful API 中常见的状态码的详细说明,以及它们的含义、作用和示例代码。

1xx:信息状态码

1xx 客户端请求已被服务端接收,但是还需要进一步操作才能完成请求。

100 Continue

客户端应该继续发送请求,服务端需要进一步处理才能完成请求。

101 Switching Protocols

服务端已经理解并接受请求,客户端应该切换协议以完成请求。

2xx:成功状态码

2xx 表示服务端已经成功接收、处理和返回请求。

200 OK

请求已成功,服务端已经返回相应的资源。

201 Created

资源已经成功被创建,服务端返回了新资源的 URI。

204 No Content

请求已经成功完成,但是服务端没有返回任何内容。

3xx:重定向状态码

3xx 表示客户端必须执行额外的操作才能完成请求。

301 Moved Permanently

请求的资源已经永久移动到了新位置,客户端应该更新自己的 URI。

302 Found

请求的资源已经暂时移动到了新位置,客户端应该继续使用原来的 URI。

303 See Other

服务端已经完成请求,但是新的资源在不同的 URI 上可用,客户端应该使用新的 URI 发出 GET 请求。

304 Not Modified

客户端已经发送了一个带有条件的 GET 请求,并且请求的资源没有被修改。服务端返回了一个空的响应。

4xx:客户端错误状态码

4xx 表示客户端包含错误或无法被正确处理。

400 Bad Request

客户端发送了一个无效的请求,服务端无法理解。

401 Unauthorized

客户端无法验证自己的身份,服务端需要认证。

403 Forbidden

客户端请求被拒绝,客户端没有访问所请求资源的权限。

404 Not Found

请求的资源不存在。

409 Conflict

请求与当前资源状态冲突(例如,在对同一个资源进行并发更新时)。

5xx:服务端错误状态码

5xx 表示服务端无法完成有效的请求。

500 Internal Server Error

服务端出现了一个未知的错误。

503 Service Unavailable

服务端当前无法处理请求,因为每个请求都需要消耗太多资源。

结论

状态码是 RESTful API 设计中不可缺少的一部分,它为客户端提供了关于请求结果的详细信息,并指导客户端采取下一步的行动。使用正确的状态码不仅能够有效优化 API 的使用效率,还能提升用户体验和降低服务端的负担。

在实际开发中,我们应该密切关注状态码的使用,根据不同的情况选择不同的状态码,并在返回状态码时提供详细的响应信息,从而为用户提供更好的体验和服务。

示例代码

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

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67145e80ad1e889fe2137d34