介绍
RESTful API 是一种基于 HTTP 的 Web API,具有良好的可扩展性和简洁性。状态码是 RESTful API 中的一部分,用于表示请求的处理结果。在使用 RESTful API 进行开发时,了解常用的状态码可以帮助我们更好地处理 API 的返回结果,从而提高系统的稳定性和可靠性。
本文将详细介绍 RESTful API 中常见的状态码及其含义。同时,为了增加文章的实用性,我们将对每个状态码给出示例代码,并结合实际情况,讲解如何在项目中使用状态码进行错误处理。
常见状态码
1XX - 信息性状态码
1XX 状态码表示客户端发送的请求已被服务器收到,但仍处于处理中。这些状态码是信息性的,通常不需要进一步处理。
100 - 继续
客户端可以继续发送请求。例如,当客户端向服务器发送一个包含请求体的请求时,会先发送一个带有 100 状态码的请求,告知服务器可以继续接收请求体内容。
HTTP/1.1 100 Continue
101 - 切换协议
服务器正在切换协议,例如从 HTTP 切换到 WebSocket。
HTTP/1.1 101 Switching Protocols
2XX - 成功状态码
2XX 状态码表示服务器已成功接收并处理了客户端发起的请求,并返回了相应的内容。
200 - OK
请求已成功处理,并返回请求结果。
HTTP/1.1 200 OK
201 - Created
请求已成功处理,并创建了新的资源。通常在 POST 请求中使用。
HTTP/1.1 201 Created Location: http://example.com/resource/1
204 - No Content
请求已成功处理,但没有返回内容。通常用于删除资源,或更新资源时不需要返回任何内容的情况。
HTTP/1.1 204 No Content
3XX - 重定向状态码
3XX 状态码表示需要客户端进一步处理才能完成请求,通常是重定向。
301 - Moved Permanently
请求的资源已经被永久移动到新位置。
HTTP/1.1 301 Moved Permanently Location: http://example.com/new-resource
302 - Found
请求的资源已经临时移动到新位置。
HTTP/1.1 302 Found Location: http://example.com/new-resource
304 - Not Modified
客户端发送的请求中包含 If-Modified-Since 或 If-None-Match 头,并且资源未被修改。
HTTP/1.1 304 Not Modified
4XX - 客户端错误状态码
4XX 状态码表示客户端发送的请求有误,服务器无法处理。
400 - Bad Request
请求有语法错误或参数错误。
HTTP/1.1 400 Bad Request
401 - Unauthorized
需要认证或缺少认证信息。
HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm="example"
403 - Forbidden
请求被服务器拒绝,没有权限访问该资源。
HTTP/1.1 403 Forbidden
404 - Not Found
请求的资源没有找到。
HTTP/1.1 404 Not Found
422 - Unprocessable Entity
请求的参数未通过验证,无法处理请求,例如请求体中有缺失的必选参数,或某个参数的值不符合要求。
HTTP/1.1 422 Unprocessable Entity Content-Type: application/json { "code": "missing_parameter", "message": "Missing required parameter" }
5XX - 服务器错误状态码
5XX 状态码表示服务器在处理请求时出现错误。
500 - Internal Server Error
服务器内部错误。
HTTP/1.1 500 Internal Server Error
502 - Bad Gateway
服务器作为网关或代理,从上游服务器接收到无效的响应。
HTTP/1.1 502 Bad Gateway
503 - Service Unavailable
服务器无法处理请求,通常是由于服务器过载或维护。
HTTP/1.1 503 Service Unavailable Retry-After: 60
错误处理示例
在实际项目中,错误处理是必不可少的一部分。使用正确的状态码可以帮助我们更好地处理错误,提高系统的可维护性。下面是一个示例代码,演示了如何在 Express 中使用状态码进行错误处理:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- -- -- --- -- ------------- ---- ----- -- - ------------------------- -------- --- -- ------ ------------- ---- ---- ----- -- - ------------------------- ------------------------------ ------ -------- --- -----------------
在这个示例中,我们使用了 Express 的中间件机制,拦截了所有请求。如果请求的资源不存在,我们就返回状态码 404,表示资源未找到。如果发生了其它错误,我们就返回状态码 500,并打印错误信息。这样的做法可以让我们在客户端获取到正确的状态码,同时也和用户友好,减少了用户的困惑。
结论
本文详细介绍了 RESTful API 中常见的状态码及其含义。当我们使用 RESTful API 进行开发时,正确使用状态码可以帮助我们更好地处理请求的结果,从而提高系统的可维护性和可靠性。希望本文可以对读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6708efb3d91dce0dc87551f4