Skip to content

HTTP 网络状态码完全解析

HTTP 状态码是服务器对客户端请求的「响应状态标识」,由 3 位数字组成,第一位数字定义了状态码的类别,核心用于 Web 开发中定位请求失败原因、处理接口响应逻辑。

一、状态码分类(按首位数字)

类别首位数字含义典型场景
信息型1xx服务器已接收请求,继续处理仅临时响应,极少主动处理
成功型2xx请求成功处理并返回结果接口调用成功、页面加载成功
重定向3xx需要客户端进一步操作完成请求页面跳转、资源永久迁移
客户端错误4xx客户端请求有误,服务器无法处理参数错误、权限不足、资源不存在
服务器错误5xx服务器处理请求时出错服务器崩溃、接口逻辑异常

二、开发中高频使用的状态码

1. 成功型(2xx)—— 核心是「请求没问题」
状态码名称含义 & 开发场景
200OK最常用:请求成功,服务器返回数据(如接口查询成功、静态资源加载成功)
201Created请求成功并创建了新资源(如提交表单创建用户、上传文件到OSS成功)
204No Content请求成功,但服务器无数据返回(如删除操作成功,仅告知结果无需返回内容)
2. 重定向(3xx)—— 核心是「需要跳转/重新请求」
状态码名称含义 & 开发场景
301Moved Permanently永久重定向(如旧域名跳转到新域名、资源永久迁移,浏览器会缓存跳转规则)
302Found临时重定向(如未登录用户访问需要权限的页面,跳转到登录页,不缓存)
304Not Modified协商缓存命中:客户端缓存的资源未过期,服务器无需返回资源(优化加载速度)
3. 客户端错误(4xx)—— 核心是「客户端的问题」
状态码名称含义 & 开发场景
400Bad Request请求参数错误(如接口传参格式不对、缺少必传字段)
401Unauthorized未授权:需要登录/Token失效(如前端未带token请求需要权限的接口)
403Forbidden拒绝访问:已登录但无权限(如普通用户访问管理员接口、IP被封禁)
404Not Found资源不存在(如访问不存在的接口、图片链接失效、页面路径错误)
405Method Not Allowed请求方法错误(如用GET请求仅支持POST的接口、DELETE请求用成PUT)
408Request Timeout请求超时(如前端请求后端接口超过设定超时时间,需检查网络或接口响应速度)
413Payload Too Large请求体过大(如上传文件超过服务器限制、表单数据量超标)
429Too Many Requests请求过于频繁(触发接口限流/反爬机制,需加限流提示或重试逻辑)
4. 服务器错误(5xx)—— 核心是「服务器的问题」
状态码名称含义 & 开发场景
500Internal Server Error服务器内部错误(如接口代码bug、数据库连接失败,最常见的服务端错误)
502Bad Gateway网关错误(如反向代理服务器(Nginx)联系不上后端服务、接口集群故障)
503Service Unavailable服务不可用(如服务器维护、过载,临时无法处理请求,可提示“服务繁忙请稍后重试”)
504Gateway Timeout网关超时(如Nginx等待后端响应超时,需检查后端接口响应速度或服务器负载)
5. 信息型(1xx)—— 极少处理,了解即可
状态码名称含义
100Continue服务器已接收请求头,客户端可继续发送请求体(如大文件上传的预检)
101Switching Protocols协议切换(如HTTP升级为WebSocket,实现双向通信)

三、开发中实用技巧

  1. 前端处理逻辑

    • 2xx:正常解析返回数据(如渲染列表、展示图片);
    • 3xx:根据状态码处理跳转(如302跳登录页,304使用缓存资源);
    • 4xx:给用户提示(如404提示“页面不存在”,429提示“操作太频繁”);
    • 5xx:提示“服务器异常”,并记录错误日志(便于排查)。
  2. 常见排错场景

    • 调用接口返回404:先检查接口URL是否拼写错误,再确认后端是否部署该接口;
    • 上传图片到OSS返回403:检查OSS的访问权限、Token是否过期、跨域配置;
    • 接口返回502/504:大概率是后端服务挂了或响应超时,联系后端排查;
    • 静态资源返回304:是正常的缓存优化,无需处理。
  3. 状态码自定义扩展 部分项目会在200基础上自定义业务码(如{ code: 200, msg: '成功' }{ code: 20001, msg: '参数缺失' } ),注意:HTTP状态码仍用标准值,业务码放在响应体中。

这是我的个人文档