当前位置: 首页 > article >正文

restful 状态码

状态码是服务器向客户端反馈请求处理结果的重要方式

一、1xx:信息性状态码

表示请求已被接收,需要继续处理。不过在实际的 RESTful API 开发中,1xx 状态码使用得相对较少。

1. 100 Continue

客户端在发送包含 `Expect: 100-continue` 请求头的请求时,服务器如果愿意接受后续的数据,就会返回此状态码,告知客户端可以继续发送请求的其余部分。

2. 101 Switching Protocols

当客户端通过请求头(如 `Upgrade`)要求切换协议时,若服务器同意切换,就会返回该状态码,比如从 HTTP 切换到 WebSocket。

二、2xx:成功状态码

表示请求已成功被服务器接收、理解并处理。

1. 200 OK

这是最常见的成功状态码,表明请求已成功处理,响应包含请求所需要的信息。比如客户端请求获取用户列表,服务器正常返回用户列表数据时就使用此状态码。

2. 201 Created

用于表示请求已经成功,并在服务器上创建了一个新的资源。通常在 POST 请求创建新资源后返回,响应中可能包含指向新创建资源的 URL。例如,客户端向服务器发送一个创建新用户的请求,服务器成功创建用户后返回 201 状态码。

3. 202 Accepted

表示请求已经被接受进行处理,但处理尚未完成。这通常用于异步处理的场景,服务器会返回一个状态信息,告知客户端稍后可以通过特定的方式查询处理结果。

4. 204 No Content

请求已经成功处理,但响应中不包含任何实体内容。常用于客户端发送 DELETE 请求成功删除资源,或者 PUT 请求成功更新资源但不需要返回更新后的数据时。

三、3xx:重定向状态码

表示需要客户端采取进一步的操作才能完成请求,通常是重定向到另一个 URL。

1. 301 Moved Permanently

表示请求的资源已经永久移动到了新的 URL,客户端今后应该使用新的 URL 进行请求。搜索引擎在遇到此状态码时,会更新索引信息。

2. 302 Found

请求的资源临时移动到了另一个 URL,客户端应该继续使用原 URL 进行后续请求。不过,浏览器在处理 302 状态码时,有时会将 POST 请求转换为 GET 请求,这可能会导致一些问题。

3. 303 See Other

告知客户端应该使用另一个 URL 来获取请求的资源,通常用于 POST 请求后,服务器希望客户端通过 GET 请求访问新的资源。

4. 304 Not Modified

当客户端发送一个带有缓存验证信息(如 `If-Modified-Since` 或 `If-None-Match`)的请求时,如果资源自上次请求后没有发生变化,服务器会返回此状态码,客户端可以使用本地缓存的资源。

四、4xx:客户端错误状态码

表示客户端可能存在错误,导致请求无法被服务器处理。

1. 400 Bad Request

请求无效,可能是由于请求格式错误、缺少必要的参数等原因导致。例如,客户端发送的 JSON 数据格式不正确时,服务器可以返回此状态码。

2. 401 Unauthorized

请求需要用户进行身份验证,但客户端没有提供有效的身份验证信息。客户端需要提供正确的用户名和密码等凭证后重新发起请求。

3. 403 Forbidden

客户端已经通过身份验证,但没有权限访问请求的资源。这可能是因为用户角色权限不足,或者资源本身不允许该用户访问。

4. 404 Not Found

请求的资源不存在,可能是 URL 拼写错误或者资源已经被删除。这是一个非常常见的状态码,当用户访问一个不存在的页面时,服务器通常会返回 404。

5. 405 Method Not Allowed

客户端使用的 HTTP 请求方法(如 GET、POST 等)不被该资源支持。例如,某个资源只允许 POST 请求,但客户端发送了一个 GET 请求,服务器就会返回此状态码。

6. 409 Conflict

请求与服务器上的当前状态冲突。比如在创建资源时,资源的某个唯一标识已经存在,就会产生冲突,服务器返回 409 状态码。

五、5xx:服务器错误状态码

表示服务器在处理请求时发生了错误,无法完成请求。

1. 500 Internal Server Error

这是最常见的服务器错误状态码,表示服务器在处理请求时遇到了意外情况,无法完成请求。可能是服务器代码出现了 bug、数据库连接失败等原因导致。

2. 502 Bad Gateway

服务器作为网关或代理,从上游服务器接收到无效的响应。例如,服务器在转发请求到另一个服务器时,另一个服务器返回了错误的响应,就会返回 502 状态码。

3. 503 Service Unavailable

服务器目前无法处理请求,通常是由于服务器过载、维护或者临时故障等原因导致。服务器可以在响应中包含一个 `Retry-After` 头,告知客户端在多长时间后可以再次尝试请求。

4. 504 Gateway Timeout

服务器作为网关或代理,在等待上游服务器的响应时超时。这可能是由于上游服务器响应过慢或者网络问题导致。


http://www.kler.cn/a/552000.html

相关文章:

  • es6新特性
  • Python Spider
  • linux篇---输入sudo后不需要输入密码
  • 【etcd】ubuntu22安装,与redis对比的区别
  • 深入解析 MySQL 数据删除操作:DELETE、TRUNCATE 与 DROP 的原理与选择
  • JavaScript系列(76)--浏览器API深入
  • 最新智能优化算法: 中华穿山甲优化( Chinese Pangolin Optimizer ,CPO)算法求解23个经典函数测试集,MATLAB代码
  • Scikit-Learn系列:BaseEstimator类实践指南
  • 用户管理中心---前端页面设计测试登录功能
  • js闭包,跨域
  • UDP与TCP
  • 神经网络实验——MLP
  • IM 即时通讯系统-06-聊一聊 IM 要如何保证扩展性?
  • 进程的延伸——线程(上)
  • 利用爬虫获取淘宝商品描述:实战案例指南
  • 大模型工具大比拼:SGLang、Ollama、VLLM、LLaMA.cpp 如何选择?
  • 功能测试与接口测试详解
  • 网页五子棋——匹配模块
  • 基于暗通道先验的图像去雾算法解析与实现
  • 百度地图接入DeepSeek技术解析:AI如何重塑地图搜索体验?