RESTful API 是一种基于 HTTP 协议的 Web API 设计风格,它通过 HTTP 方法和 URL 来实现资源的增删改查操作。在 RESTful API 中,状态码是非常重要的一部分,它用来表示客户端请求的处理结果。本文将详细介绍 RESTful API 中常用的状态码及其含义,并给出相关的示例代码。
1XX:信息性状态码
100 Continue
表示服务器已经接收到客户端的请求头部,并且客户端应该继续发送请求体部分。这个状态码通常在客户端需要发送大量数据时使用。示例代码:
HTTP/1.1 100 Continue
101 Switching Protocols
表示服务器已经理解了客户端的 Upgrade 请求头部,并且正在切换到另一个协议。这个状态码通常在客户端需要切换到 WebSocket 协议时使用。示例代码:
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade
2XX:成功状态码
200 OK
表示服务器已经成功处理了客户端的请求。这个状态码通常在 GET 和 POST 请求成功时使用。示例代码:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "name": "John", "age": 30 }
201 Created
表示服务器已经成功创建了资源,并且返回了新创建资源的 URL。这个状态码通常在 POST 请求创建资源成功时使用。示例代码:
HTTP/1.1 201 Created Location: /users/1
204 No Content
表示服务器已经成功处理了客户端的请求,但是没有返回任何内容。这个状态码通常在 DELETE 请求删除成功时使用。示例代码:
HTTP/1.1 204 No Content
3XX:重定向状态码
301 Moved Permanently
表示请求的资源已经被永久移动到另一个 URL,客户端应该使用新的 URL 访问该资源。这个状态码通常在网站的 URL 发生变化时使用。示例代码:
HTTP/1.1 301 Moved Permanently Location: http://www.example.com/new-url
302 Found
表示请求的资源临时被移动到另一个 URL,客户端应该使用新的 URL 访问该资源。这个状态码通常在网站的 URL 临时发生变化时使用。示例代码:
HTTP/1.1 302 Found Location: http://www.example.com/new-url
304 Not Modified
表示客户端请求的资源没有发生变化,服务器返回客户端缓存的资源。这个状态码通常在客户端使用缓存时使用。示例代码:
HTTP/1.1 304 Not Modified
4XX:客户端错误状态码
400 Bad Request
表示客户端发送的请求有错误,服务器无法理解。这个状态码通常在客户端发送的请求参数错误时使用。示例代码:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "Invalid parameter" }
401 Unauthorized
表示客户端请求需要认证的资源,但是客户端没有提供正确的认证信息。这个状态码通常在客户端没有提供正确的身份认证信息时使用。示例代码:
HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm="Restricted Area"
403 Forbidden
表示客户端请求被服务器拒绝,客户端没有访问该资源的权限。这个状态码通常在客户端没有足够的权限访问该资源时使用。示例代码:
HTTP/1.1 403 Forbidden Content-Type: application/json { "error": "Access denied" }
404 Not Found
表示客户端请求的资源不存在。这个状态码通常在客户端请求的资源不存在时使用。示例代码:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "Resource not found" }
409 Conflict
表示客户端请求的动作与当前资源的状态冲突,服务器无法处理该请求。这个状态码通常在客户端请求的操作与当前资源状态不一致时使用。示例代码:
HTTP/1.1 409 Conflict Content-Type: application/json { "error": "Resource is locked" }
5XX:服务器错误状态码
500 Internal Server Error
表示服务器出现了未知的错误,无法完成客户端的请求。这个状态码通常在服务器内部出现错误时使用。示例代码:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "Internal server error" }
502 Bad Gateway
表示服务器作为网关或代理,从上游服务器接收到无效的响应。这个状态码通常在服务器作为代理时出现错误时使用。示例代码:
HTTP/1.1 502 Bad Gateway Content-Type: application/json { "error": "Bad gateway" }
503 Service Unavailable
表示服务器当前无法处理客户端的请求,因为服务器过载或维护中。这个状态码通常在服务器无法处理请求时使用。示例代码:
HTTP/1.1 503 Service Unavailable Content-Type: application/json { "error": "Service unavailable" }
总结
状态码是 RESTful API 中非常重要的一部分,它用来表示客户端请求的处理结果。在实际开发中,开发者需要根据业务逻辑和 RESTful API 规范来选择合适的状态码,并返回相关的响应信息。通过本文的介绍,相信读者已经掌握了 RESTful API 中常用的状态码及其含义,并能够在实际开发中灵活运用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f5586d2b3ccec22fd7c280