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();
  })
相关推荐
YuMiao3 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
不可能的是1 天前
前端 SSE 流式请求三种实现方案全解析
前端·http
Jony_3 天前
高可用移动网络连接
网络协议
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
chilix3 天前
Linux 跨网段路由转发配置
网络协议
Rockbean4 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩4 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
海天鹰5 天前
【免费】PHP主机=域名+解析+主机
服务器
不是二师兄的八戒5 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
芝士雪豹只抽瑞克五5 天前
Nginx 高性能Web服务器笔记
服务器·nginx