http返回状态码有几种类型

HTTP 返回状态码是服务器对客户端请求的三位数字响应标识,其核心分类规则由第一位数字定义,后两位数字仅用于细化具体场景,不影响类别归属。根据 HTTP 协议标准,所有状态码被统一划分为五大类型,覆盖从请求接收、处理成功到错误异常的全流程,是客户端与服务器之间的 “沟通语言”。
一、1xx 信息类状态码:请求接收,持续处理
1xx 类型状态码属于临时响应,用于告知客户端 “服务器已接收请求,需继续执行后续操作”,这类状态码在日常浏览中出现频率较低,主要用于复杂请求的流程协同。其核心作用是建立客户端与服务器的通信同步,避免因请求中断导致的数据传输失败。
典型状态码包括 100 Continue(继续)和 101 Switching Protocols(切换协议)。其中 100 Continue 最为常用,当客户端发送大文件上传、长表单提交等请求时,会先发送包含Expect: 100-continue的请求头试探服务器;服务器返回 100 Continue 后,客户端才会传输完整数据,这一机制能有效避免无效数据传输,提升通信效率。101 Switching Protocols 则用于协议升级场景,例如客户端请求从 HTTP/1.1 切换到 WebSocket 时,服务器通过该状态码确认支持切换,保障实时通信功能的实现。
二、2xx 成功类状态码:请求处理,执行完毕
2xx 类型状态码表示服务器已成功接收、解析并处理客户端请求,是最理想的响应结果,覆盖从资源获取到数据提交的各类成功场景。这类状态码的核心特征是 “请求目的已达成”,客户端可根据具体代码判断后续操作(如展示数据、结束请求等)。
200 正常;请求已完成。
201 正常;紧接 POST 命令。
202 正常;已接受用于处理,但处理尚未完成。
203 正常;部分信息 — 返回的信息只是一部分。
204 正常;无响应 — 已接收请求,但不存在要回送的信息。
三、3xx 重定向类状态码:需补操作,完成请求
3xx 类型状态码指示客户端需执行额外操作(通常是跳转访问)才能完成请求,核心应用于资源地址变更、缓存复用等场景,既能保障用户访问连续性,又能优化搜索引擎权重传递。这类状态码的关键是 “引导客户端到正确的资源位置”,避免无效请求。
301 Moved Permanently(永久重定向),表示资源已永久迁移到新 URI,常用于网站域名更换、页面路径重构,搜索引擎会将旧地址的权重转移到新地址,不影响 SEO 效果;
302 Found(临时重定向),资源临时位于新 URI,适用于活动页面跳转、临时维护等场景,但需注意其可能存在的 URL 劫持风险;
303 请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应;
304 Not Modified(未修改),客户端发送条件请求时(如带缓存时间戳的 GET 请求),服务器确认资源未更新,返回该状态码让客户端复用缓存,减少带宽消耗;
305 使用代理 — 必须通过位置字段中提供的代理来访问请求的资源;
306 未使用 — 不再使用;保留此代码以便将来使用;
307 Temporary Redirect(临时重定向),与 302 功能类似,但严格保留客户端的原始请求方法(如 POST 请求不会转为 GET),安全性更高。
四、4xx 客户端错误类状态码:请求有误,无法处理
4xx 类型状态码表示请求失败的原因在于客户端(如语法错误、权限不足、资源不存在),服务器未执行请求操作,需客户端修正后重新提交。这类状态码的核心是 “客户端操作不当”,错误排查需聚焦请求参数、权限、地址等客户端因素。
400 Bad request(错误请求)
401.1 Logon failed(登录失败)
401.2 Logon failed due to server configuration(由于服务器配置,登录失败)
401.3 Unauthorized due to ACL on resource(由于资源上的 ACL,未授权)
401.4 Authorization failed by filter(由于筛选器,授权失败)
401.5 Authorization failed by ISAPI/CGI application (由于 ISAPI/CGI 应用程序,授权失败)
403.1 Execute access forbidden(执行访问被禁止)
403.2 Read access forbidden(读取访问被禁止)
403.3 Write access forbidden(写入访问被禁止)
403.4 SSL required(要求 SSL )
403.5 SSL 128 required(要求 SSL 128)
403.6 IP address rejected (IP 地址被拒绝)
403.7 Client certificate required(要求客户证书)
403.8 Site access denied(站点访问被拒绝)
403.9 Too many users(用户太多)
403.10 Invalid configuration(无效的配置)
403.11 Password change(密码更改)
403.12 Mapper denied access(映射程序拒绝访问)
403.13 Client certificate revoked(客户证书被取消)
403.14 Directory listing denied(目录列表被拒绝)
403.15 Client Access Licenses exceeded(超出客户访问许可证)
403.16 Client certificate untrusted or invalid(客户证书不受信任或无效)
403.17 Client certificate has expired or is not yet valid(客户证书已过期或无效)
404 Not found(没有找到)
404.1 Site not found(站点没有找到)
405 Method not allowed(不允许使用该方法)
406 Not acceptable(不接受)
407 Proxy authentication required(要求代理身份验证)
412 Precondition Failed(前提条件不正确)
414 Request-URL too long(请求的 URL 太长)
五、5xx 服务器错误类状态码:服务异常,处理失败
5xx 类型状态码表示服务器在处理请求过程中发生内部错误,无法完成请求,责任在于服务器端(如程序 bug、资源过载、硬件故障),客户端通常需稍后重试或联系服务提供者排查问题。这类状态码的核心是 “服务器端故障”,与客户端操作无关。
500 Internal server error(内部服务器错误)
500.12 Application restarting(应用程序重新启动)
500.13 Server too busy(服务器太忙)
500.15 Requests for Global.asa not allowed(不允许请求 Global.asa)
500-100.asp ASP 错误
501 Not implemented(没有实施)
502 Bad gateway(错误网关)
HTTP 返回状态码的五大类型构建了客户端与服务器的标准化通信体系,其分类逻辑既体现了请求处理的全流程(接收 - 成功 - 重定向 - 客户端错误 - 服务器错误),又为问题排查提供了明确方向:1xx 关注通信同步,2xx 确认处理成功,3xx 引导资源定位,4xx 排查客户端问题,5xx 定位服务器故障。理解这些分类及典型状态码的含义,不仅能帮助开发者快速排查网络问题、优化系统交互,还能提升用户体验(如合理配置 404 页面、301 重定向),是 Web 开发与运维的基础必备知识。

