API 状态码详解
API 状态码(HTTP Status Code)是服务器对客户端请求的响应代码,用于表示请求的处理结果,状态码由三位数字组成,分为以下五类:
类别 | 范围 | 含义 |
---|---|---|
1xx | 100–199 | 信息响应(请求已接收,继续处理) |
2xx | 200–299 | 成功(请求已成功处理) |
3xx | 300–399 | 重定向(需进一步操作完成请求) |
4xx | 400–499 | 客户端错误(请求存在异常) |
5xx | 500–599 | 服务器错误(服务器处理失败) |
分类详解与常见状态码
1xx(信息响应)
表示请求已收到,需继续处理。
| 状态码 | 含义 | 场景 |
|——–|————————–|——————————|
| 100 | Continue | 服务器已接收请求头,客户端可继续发送请求体 |
| 101 | Switching Protocols | 协议切换(如 HTTP → WebSocket) |
2xx(成功)
表示请求已成功处理。
| 状态码 | 含义 | 场景 |
|——–|————————–|——————————|
| 200 | OK | 正常请求,返回所请求资源 |
| 201 | Created | 资源创建成功(POST 请求) |
| 204 | No Content | 请求成功但无返回内容(DELETE) |
3xx(重定向)
表示需进一步操作才能完成请求。
| 状态码 | 含义 | 场景 |
|——–|————————–|——————————|
| 301 | Moved Permanently | 永久重定向(如域名变更) |
| 302 | Found | 临时重定向(如权限验证) |
| 304 | Not Modified | 资源未修改,客户端可缓存 |
4xx(客户端错误)
表示客户端请求有误。
| 状态码 | 含义 | 场景 |
|——–|————————–|——————————|
| 400 | Bad Request | 请求参数不合法 |
| 401 | Unauthorized | 未授权(需认证) |
| 403 | Forbidden | 禁止访问(权限不足) |
| 404 | Not Found | 资源不存在 |
| 429 | Too Many Requests | 请求频率过高(限流) |
5xx(服务器错误)
表示服务器处理请求失败。
| 状态码 | 含义 | 场景 |
|——–|————————–|——————————|
| 500 | Internal Server Error | 服务器内部错误 |
| 502 | Bad Gateway | 网关或代理服务器错误 |
| 503 | Service Unavailable | 服务不可用(如维护中) |
| 504 | Gateway Timeout | 网关超时(依赖服务未响应) |
状态码与错误处理
- 客户端处理:
- 根据状态码分类处理(如 4xx 提示用户修正输入,5xx 提示稍后重试)。
- 使用
try-catch
捕获异常,结合状态码进行逻辑分支。
- 服务器端处理:
- 明确业务逻辑对应的状态码(如资源创建返回
201
,删除返回204
)。 - 记录日志(尤其是 5xx 错误)以便排查问题。
- 明确业务逻辑对应的状态码(如资源创建返回
相关问题与解答
问题 1:如何区分 401 Unauthorized
和 403 Forbidden
?
解答:
- 401 表示用户未认证(如未登录或 token 过期),需重新认证。
- 403 表示用户已认证但无权限访问资源(如普通用户尝试访问管理员接口)。
问题 2:为什么 API 返回 204 No Content
而不是 200 OK
?
解答:
- 204 用于表示请求成功但无需返回数据(如 DELETE 请求删除资源后)。
- 200 通常需要返回具体数据(如 JSON 格式的响应体)。
- 使用
204
可减少带宽消耗,明确告知客户端“无内容
各位小伙伴们,我刚刚为大家分享了有关“api 状态码”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复