HTTP 状态码是服务器对客户端请求的响应标识,用于表示请求的处理结果

以下是完整的 HTTP 状态码分类和常见状态码详解:

一、状态码分类(5大类)

分类 范围 描述 常见场景
1xx 100-199 信息性响应 请求已被接收,继续处理
2xx 200-299 成功响应 请求成功处理
3xx 300-399 重定向响应 需要进一步操作
4xx 400-499 客户端错误 请求包含错误
5xx 500-599 服务器错误 服务器处理失败

二、必知状态码详解

1. 成功响应(2xx)
状态码 名称 描述 示例场景
200 OK 请求成功,返回预期结果 获取资源成功(如网页、API数据)
201 Created 资源创建成功(通常伴随Location头返回新资源地址) 提交表单成功创建新用户
204 No Content 请求成功,但无返回内容 删除资源成功/OPTIONS预检请求
2. 重定向(3xx)
状态码 名称 描述 示例场景
301 Moved Permanently 资源永久重定向(浏览器会缓存) 网站改版后旧URL跳转到新URL
302 Found 资源临时重定向(浏览器不缓存) 登录后跳转到首页
304 Not Modified 资源未修改(缓存有效) 协商缓存命中时返回
3. 客户端错误(4xx)
状态码 名称 描述 示例场景
400 Bad Request 请求语法错误或参数无效 必填参数未传/JSON格式错误
401 Unauthorized 未认证(需提供身份凭证) 未登录访问需要权限的API
403 Forbidden 服务器拒绝执行(权限不足) 普通用户尝试访问管理员接口
404 Not Found 资源不存在 访问不存在的URL
429 Too Many Requests 请求过于频繁 API限流触发
4. 服务器错误(5xx)
状态码 名称 描述 示例场景
500 Internal Server Error 服务器内部错误(无具体信息) 代码抛出未捕获的异常
502 Bad Gateway 网关/代理服务器从上游收到无效响应 Nginx反向代理的后端服务崩溃
503 Service Unavailable 服务不可用(临时过载或维护) 服务器维护页面
504 Gateway Timeout 网关超时(上游服务器未及时响应) 后端数据库查询超时

三、特殊状态码

状态码 名称 用途
101 Switching Protocols 协议切换(如WebSocket握手)
206 Partial Content 分块传输(用于大文件断点续传)
418 I'm a teapot 彩蛋状态码(RFC 2324)

四、状态码决策树

五、最佳实践

  1. 前端处理建议

    • 2xx:正常处理数据

    • 401:跳转到登录页

    • 403:显示"无权访问"提示

    • 404:显示友好错误页

    • 5xx:建议用户稍后重试

  2. 后端设计原则

    • 4xx表示客户端问题,响应中应包含error_details

    • 5xx表示服务端问题,避免暴露内部错误信息

  3. 调试技巧

javascript 复制代码
// 在fetch/axios中拦截状态码
fetch(url)
  .then(res => {
    if (!res.ok) throw new Error(`${res.status}: ${res.statusText}`);
    return res.json();
  })
相关推荐
thinkMoreAndDoMore2 小时前
linux内核匹配I2C设备
linux·运维·服务器
PatrickYao04227 小时前
Hydro OJ部署完全指南!
服务器·oj·hydro·在线评测
小政同学7 小时前
【NFS故障】共享的文件无法执行
linux·运维·服务器
不会写DN7 小时前
受保护的海报图片读取方案 - 在不公开静态资源目录下如何获取静态资源
服务器
AI木马人7 小时前
3.【Prompt工程实战】如何设计一个可复用的Prompt系统?(避免每次手写提示词)
linux·服务器·人工智能·深度学习·prompt
挽安学长8 小时前
保姆级教程,通过GACCode使用Claude Code Desktop!
运维·服务器
firstacui9 小时前
MGRE实验
运维·服务器·网络
大卡片10 小时前
IO模型与并发服务器设计
运维·服务器·网络
莎士比亚的文学花园11 小时前
Linux驱动开发(1)——系统移植
linux·运维·服务器
IpdataCloud11 小时前
IPv6商用数据的IP离线库能解决哪些业务问题?适用场景与接入指南
网络·网络协议·tcp/ip