HTTP Status Code 指南
搜索所有 HTTP 状态码并查看说明的工具。
Loading...
主要功能
- 完整状态码:包含 60 多个所有 HTTP 状态码
- 分类筛选:按 1xx、2xx、3xx、4xx、5xx 筛选
- 实时搜索:按代码编号、名称、说明搜索
- 详细说明:每个状态码的含义和使用示例
- 颜色区分:按分类用颜色一目了然地展示
状态码分类
1xx (Informational) - 信息响应
已收到请求,继续处理中。一般不常用。
2xx (Success) - 成功
请求已成功处理。最常见的成功响应。
- 200 OK:最常见的成功响应
- 201 Created:成功创建新资源
- 204 No Content:成功但无响应正文
3xx (Redirection) - 重定向
需要额外操作来完成请求。
- 301 Moved Permanently:永久移动
- 302 Found:临时移动
- 304 Not Modified:可使用缓存
4xx (Client Error) - 客户端错误
请求有错误。客户端需要修改。
- 400 Bad Request:错误的请求
- 401 Unauthorized:需要身份验证
- 403 Forbidden:无权限
- 404 Not Found:找不到资源
- 429 Too Many Requests:超过请求限制
5xx (Server Error) - 服务器错误
服务器无法处理请求。
- 500 Internal Server Error:服务器内部错误
- 502 Bad Gateway:网关错误
- 503 Service Unavailable:服务不可用
常用状态码详解
200 OK
GET /api/users/123
Response: 200 OK
{
"id": 123,
"name": "张三"
}
最常见的成功响应。请求已成功处理并返回结果。
201 Created
POST /api/users
Response: 201 Created
Location: /api/users/456
{
"id": 456,
"name": "李四"
}
成功创建新资源。通常在 POST 请求后返回。
204 No Content
DELETE /api/users/123
Response: 204 No Content
成功但无内容返回。通常用于 DELETE 或 PUT 请求。
400 Bad Request
POST /api/users
{
"name": "" // 名称为空
}
Response: 400 Bad Request
{
"error": "名称是必填项"
}
请求格式错误或缺少必需参数。
401 Unauthorized
GET /api/users/me
Response: 401 Unauthorized
{
"error": "需要身份验证"
}
需要身份验证。通常需要登录或提供 token。
403 Forbidden
DELETE /api/users/admin
Response: 403 Forbidden
{
"error": "无权限执行此操作"
}
已认证但无权限。与 401 不同,即使提供凭据也无法访问。
404 Not Found
GET /api/users/999999
Response: 404 Not Found
{
"error": "用户不存在"
}
找不到请求的资源。
429 Too Many Requests
GET /api/data
Response: 429 Too Many Requests
Retry-After: 60
{
"error": "请求过多,请稍后重试"
}
超过速率限制。需要等待后重试。
500 Internal Server Error
GET /api/users
Response: 500 Internal Server Error
{
"error": "服务器错误"
}
服务器内部错误。通常是代码错误或数据库问题。
502 Bad Gateway
GET /api/data
Response: 502 Bad Gateway
{
"error": "上游服务器错误"
}
作为网关或代理的服务器从上游服务器收到无效响应。
503 Service Unavailable
GET /api/users
Response: 503 Service Unavailable
Retry-After: 120
{
"error": "服务暂时不可用"
}
服务器暂时无法处理请求。通常是维护或过载。
REST API 中的使用
GET 请求
200 OK - 成功获取资源
404 Not Found - 资源不存在
POST 请求
201 Created - 成功创建资源
400 Bad Request - 请求数据错误
409 Conflict - 资源已存在
PUT/PATCH 请求
200 OK - 成功更新并返回资源
204 No Content - 成功更新但无返回
404 Not Found - 要更新的资源不存在
DELETE 请求
204 No Content - 成功删除
404 Not Found - 要删除的资源不存在
状态码选择指南
成功时
- 获取数据 →
200 OK - 创建资源 →
201 Created - 更新/删除 →
204 No Content或200 OK
客户端错误时
- 请求格式错误 →
400 Bad Request - 未认证 →
401 Unauthorized - 无权限 →
403 Forbidden - 资源不存在 →
404 Not Found - 请求冲突 →
409 Conflict - 请求过多 →
429 Too Many Requests
服务器错误时
- 一般错误 →
500 Internal Server Error - 上游错误 →
502 Bad Gateway - 服务不可用 →
503 Service Unavailable
使用场景
- API 开发:选择适当的状态码
- 调试:理解错误状态码的含义
- 学习:理解 HTTP 协议
- 文档编写:状态码参考
最佳实践
1. 使用标准状态码
// ✅ 好
res.status(404).json({ error: '用户不存在' });
// ❌ 差
res.status(200).json({ error: true, message: '用户不存在' });
2. 提供清晰的错误消息
// ✅ 好
res.status(400).json({
error: '验证失败',
details: {
name: '名称是必填项',
email: '邮箱格式无效'
}
});
// ❌ 差
res.status(400).json({ error: 'Error' });
3. 适当使用重定向
// 永久移动
res.status(301).redirect('/new-url');
// 临时移动
res.status(302).redirect('/temp-url');
4. 实现速率限制
app.use((req, res, next) => {
if (rateLimitExceeded) {
return res.status(429).json({
error: '请求过多',
retryAfter: 60
});
}
next();
});
常见问题
问:401 和 403 有什么区别?
- 401 Unauthorized:未认证,需要登录
- 403 Forbidden:已认证但无权限
问:400 和 422 有什么区别?
- 400 Bad Request:请求格式错误
- 422 Unprocessable Entity:请求格式正确但数据无效
问:应该何时使用 204?
删除或更新成功但无需返回数据时使用 204 No Content。
问:所有错误都应该是 200 OK 吗?
不是。应该使用适当的错误状态码(4xx、5xx)。有些 API 错误地对所有响应使用 200。
相关工具
💬 这个工具对您有帮助吗?
如果您觉得 HTTP 状态码指南有用,请分享给需要的朋友!我们持续改进工具以提供更好的服务。
隐私保护
此工具完全在客户端运行。您输入的数据不会发送到服务器,仅在浏览器中处理。