【HTTP】HTTP状态码全分类表(1xx/2xx/3xx/4xx/5xx)(附:《思维导图》)

简介: HTTP状态码是服务器对客户端请求的3位数字响应,依据RFC 7231分为5类:1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)。本文系统梳理各分类核心码(如200、404、500等),明确语义、场景、特性及常见误区,兼顾规范性与工程实践。

HTTP状态码

HTTP状态码是HTTP协议中,服务器向客户端告知请求处理结果的3位数字代码,核心规范来自RFC 7231(HTTP/1.1语义标准),首位数字固定划分5个基础分类,覆盖请求处理的全流程结果。以下按分类结构化梳理,标注核心常用码、标准定义、适用场景及关键特性,兼顾规范严谨性与开发运维的实际使用。


一、1xx 信息性状态码(Informational)

核心定义:服务器已接收请求,正在处理中,需客户端等待后续最终响应。属于临时响应,仅包含状态行和可选响应头,无响应体。

状态码 核心标识 标准定义与适用场景 关键特性
100 Continue 核心常用 服务器已校验并接收请求头,通知客户端继续发送请求体(POST/PUT等大体积请求) 用于客户端带Expect: 100-continue头的场景,避免大文件传输无效浪费带宽
101 Switching Protocols 常用 服务器同意客户端的协议切换请求(通过Upgrade头指定) 典型场景:WebSocket连接建立、HTTP/1.1升级至HTTP/2,响应头会明确切换后的协议
103 Early Hints 近年常用 服务器在最终响应前,提前返回带Link头的预加载指令 用于浏览器提前预加载CSS、JS等静态资源,优化页面首屏加载性能,RFC 8297规范定义
102 Processing 扩展常用 服务器已接收请求并正在处理,暂无可用响应,避免客户端超时 WebDAV扩展(RFC 2518),用于耗时较长的批量文件操作场景

二、2xx 成功状态码(Success)

核心定义:服务器已成功接收、理解并处理客户端的请求,是请求的理想响应类别。

状态码 核心标识 标准定义与适用场景 关键特性
200 OK 最核心最常用 请求完全成功,服务器已返回请求的目标资源 适配GET/POST/PUT等绝大多数请求:GET返回资源体,POST/PUT返回操作结果,是HTTP最通用的成功码
201 Created 核心常用 请求成功,且服务器已创建新的资源 用于POST/PUT创建资源的场景(如新增用户、上传文件),响应头通常带Location指向新资源的URI
202 Accepted 常用 服务器已接收请求,但尚未完成处理 用于异步任务场景(如批量导入、视频转码、邮件发送),可返回任务ID供客户端轮询,不保证最终处理成功
204 No Content 核心常用 请求成功,但服务器无任何响应体返回 用于DELETE删除资源、PUT更新资源无需返回内容的场景,客户端无需刷新页面,仅需确认操作成功
206 Partial Content 核心常用 服务器成功处理客户端的范围请求,仅返回资源的指定片段 用于断点续传、视频分片加载,请求头带Range,响应头带Content-Range标注分块字节范围
205 Reset Content 补充 请求成功,要求客户端重置文档视图(如清空表单内容) 与204的核心区别:强制要求客户端重置UI,典型场景为表单提交后自动清空所有输入项
207 Multi-Status WebDAV扩展 一次请求返回多个独立子操作的处理状态,响应体包含每个子操作的状态码 用于WebDAV批量操作文件/文件夹,一次性返回多个资源的处理结果

三、3xx 重定向状态码(Redirection)

核心定义:客户端需要执行额外操作才能完成请求,主要用于资源跳转、缓存控制,核心分为永久重定向临时重定向,关键差异为是否保留原始请求方法、是否被浏览器缓存。

状态码 核心标识 标准定义与适用场景 关键特性
301 Moved Permanently 核心常用(永久重定向) 资源已永久移动到新URI,后续所有请求应使用新地址 浏览器会永久缓存重定向地址;部分旧浏览器会将原始POST请求改为GET;典型场景:域名更换、页面永久迁移、SEO权重转移
302 Found 核心常用(临时重定向) 资源临时移动到新URI,客户端本次使用新地址,后续仍使用原地址 浏览器不缓存重定向地址;历史规范问题,多数旧浏览器会将POST改为GET;典型场景:未登录跳转登录页、临时活动页跳转
303 See Other 常用 请求处理成功,引导客户端使用GET方法跳转到新URI获取结果 强制将POST/PUT/DELETE请求改为GET跳转,无缓存;典型场景:表单POST提交成功后跳转结果页,避免用户刷新重复提交
304 Not Modified 核心常用(缓存专用) 资源未发生修改,客户端可直接使用本地缓存 无响应体;触发条件为客户端带If-Modified-Since/If-None-Match头,服务器校验资源未变更;典型场景:浏览器静态资源(图片、CSS、JS)缓存,减少带宽消耗
307 Temporary Redirect 核心常用(临时重定向) 资源临时移动到新URI,严格保留原始请求方法和请求体 与302的核心区别:强制不修改请求方法,不会转为GET;无缓存;典型场景:RESTful API POST/PUT请求的临时跳转,避免业务异常
308 Permanent Redirect 常用(永久重定向) 资源已永久移动到新URI,严格保留原始请求方法和请求体 与301的核心区别:强制不修改请求方法,不会转为GET;浏览器永久缓存;典型场景:API接口域名永久更换,需保留非GET请求的方法和body

补充:305、306状态码已被RFC 7231弃用,存在安全风险,现代浏览器均不支持,无实际使用场景。


四、4xx 客户端错误状态码(Client Error)

核心定义:请求存在语法、权限、参数、资源等问题,服务器无法或拒绝处理,错误根源在客户端,是开发调试中最常遇到的类别。

状态码 核心标识 标准定义与适用场景 关键特性
400 Bad Request 核心常用 服务器无法理解请求,因客户端请求存在语法错误、格式无效 通用客户端错误码,典型场景:JSON请求体格式错误、URL编码异常、请求参数格式非法、请求头过大
401 Unauthorized 核心常用 请求需要用户身份认证,客户端未提供凭证或凭证无效 响应头必须带WWW-Authenticate标注认证方式(如Bearer Token、Basic认证);典型场景:未携带Token访问接口、Token过期/签名错误、账号密码错误;语义为「未认证」,而非「未授权」
403 Forbidden 核心常用 服务器已理解请求,但拒绝执行,即使认证成功也无权访问 与401核心区别:401是「身份无效/未登录」,403是「已登录,但无权限」;典型场景:普通用户访问管理员接口、IP被封禁、跨域请求被拦截、CSRF令牌无效
404 Not Found 最常用客户端错误 服务器无法找到请求的资源,URI无效或资源已删除/不存在 典型场景:URL拼写错误、资源已永久删除、路由未配置、接口地址写错
405 Method Not Allowed 核心常用 请求的URI存在,但不支持客户端使用的HTTP方法 响应头必须带Allow,列出该URI支持的合法方法;典型场景:仅支持GET的接口被POST请求访问、RESTful接口方法使用错误
409 Conflict 核心常用 请求与服务器资源的当前状态存在冲突,无法完成处理 典型场景:并发修改同一资源(乐观锁冲突)、创建已存在的唯一资源(重复注册用户名)、资源状态不允许操作(已付款订单重复支付)
413 Payload Too Large 核心常用 客户端请求体大小超过服务器限制,服务器拒绝处理 典型场景:上传超大文件、POST提交的JSON体过大,超出Nginx/后端服务的body上限
414 URI Too Long 常用 客户端请求的URI长度超过服务器限制,服务器拒绝处理 典型场景:GET请求带超长query参数、URL拼接过多参数,超出浏览器/服务器的URI长度限制
415 Unsupported Media Type 核心常用 服务器不支持客户端请求的Content-Type格式,无法处理请求体 典型场景:接口要求application/json,客户端携带form-data/text/plain、上传文件格式不被支持
422 Unprocessable Entity 核心常用(API开发) 服务器已理解请求的Content-Type、语法正确,但无法处理请求的语义内容 与400核心区别:400是语法错误,422是业务语义校验失败;典型场景:请求参数格式正确,但密码长度不足、手机号格式非法、必填参数为空
429 Too Many Requests 核心常用(限流防刷) 客户端单位时间内请求数超过服务器限制,触发限流 响应头通常带Retry-After告知重试间隔;典型场景:API接口限流、防爬虫、短信验证码防刷、登录失败次数限制
431 Request Header Fields Too Large 常用 客户端请求头单个字段或总大小超过服务器限制 典型场景:Cookie体积过大、自定义请求头超长,超出Nginx等服务器的header上限
451 Unavailable For Legal Reasons 常用 因法律合规要求,服务器拒绝提供该资源 典型场景:版权保护内容、地域限制内容、被依法封禁的资源,命名致敬《华氏451》
418 I'm a teapot 彩蛋非标准 超文本咖啡壶控制协议(RFC 2324)愚人节彩蛋,服务器拒绝用茶壶煮咖啡 无正式业务场景,多用于开发者调试、反爬虫、趣味页面

补充:402 Payment Required为预留状态码,最初用于数字支付场景,目前未被广泛标准化使用;407、408、410、411、412、416、417、421、426、428等为标准补充码,用于特定细分场景,日常开发中使用频率较低。


五、5xx 服务器错误状态码(Server Error)

核心定义:服务器处理合法请求时,发生了内部错误,无法完成请求,错误根源在服务端,是运维、后端开发重点监控的类别。

状态码 核心标识 标准定义与适用场景 关键特性
500 Internal Server Error 最核心最常用服务端错误 服务器处理请求时发生未预期的内部错误,无更精准的错误码可用 通用服务端错误码,典型场景:后端代码运行时异常(空指针、SQL执行错误)、业务逻辑崩溃、服务器配置错误
501 Not Implemented 常用 服务器不支持客户端请求的功能,无法完成处理 与405核心区别:405是方法存在但URI不支持,501是服务器根本不支持该方法/功能;典型场景:客户端使用服务器未实现的HTTP方法、请求的功能未开发完成
502 Bad Gateway 核心常用 作为网关/代理的服务器,从上游源服务器收到了无效的响应 典型场景:Nginx反向代理的后端服务崩溃、端口未监听、PHP-FPM未启动、网关与上游服务通信协议错误
503 Service Unavailable 核心常用 服务器当前无法处理请求,属于临时过载或维护,稍后可恢复 响应头通常带Retry-After告知恢复时间;典型场景:服务停机维护、服务器流量过载、熔断降级触发、服务重启中
504 Gateway Timeout 核心常用 作为网关/代理的服务器,等待上游源服务器响应超时 与502核心区别:502是收到了无效响应,504是超时未收到响应;典型场景:后端慢SQL、死循环、第三方接口超时,超出网关的超时时间限制
505 HTTP Version Not Supported 补充 服务器不支持客户端请求使用的HTTP协议版本 典型场景:客户端使用HTTP/0.9、HTTP/3等服务器不兼容的协议版本发送请求
507 Insufficient Storage WebDAV扩展 服务器存储空间不足,无法完成请求操作 典型场景:WebDAV上传文件时服务器磁盘已满、数据库存储空间不足
511 Network Authentication Required 常用 客户端需要完成网络身份认证才能访问网络 典型场景:酒店、机场、咖啡厅的Wi-Fi门户认证,未登录前访问网页会返回该状态码

补充说明与使用规范

  1. 规范来源:核心状态码由RFC 7231定义,扩展码来自RFC 2518(WebDAV)、RFC 6585(附加状态码)、RFC 8297(103 Early Hints)等官方标准。
  2. 业务自定义规范:企业通常在标准HTTP状态码基础上,通过响应体的code字段定义细分业务错误码;HTTP状态码仅负责标识HTTP协议层的处理状态,业务错误码负责细分业务场景的错误原因。
  3. 常见使用误区
    • 混淆401与403:401是「未登录/身份无效」,403是「已登录,但无权限」;
    • 混淆302与307:302可能将POST转为GET,307严格保留原始请求方法;
    • 滥用500:所有服务端错误都返回500,应根据场景使用更精准的状态码;
    • 全量200返回:无论成功失败都返回200,仅通过body标识错误,不符合HTTP语义规范,不利于网关监控、CDN缓存与SEO。

六、思维导图

HTTP状态码全分类——思维导图

相关文章
|
缓存 UED 开发者
HTTP常用状态码详解
HTTP常用状态码详解
|
22天前
|
数据采集 缓存 安全
【HTTP】HTTP协议核心体系:请求方法与状态码全结构化解析(附《思维导图》)
本文系统解析HTTP/1.1请求方法与状态码:厘清安全/幂等本质,详解9种方法语义、约束与误区;全覆盖状态码全分类(1xx/2xx/3xx/4xx/5xx核心场景)的定义、场景及关键区分(如301/308、401/403、502/504);强调RESTful实践与高频红线,助力构建健壮、规范的Web服务。
|
28天前
|
人工智能 弹性计算 数据可视化
阿里云OpenClaw部署实操教程:轻量应用服务器+百炼免费大模型
OpenClaw(“小龙虾”)是一款开源AI智能体,不仅能聊天,更能自动处理文件、运行代码、收发邮件等任务。本教程教你用阿里云轻量服务器+百炼免费大模型,零代码10分钟部署专属AI数字员工!
616 25
|
27天前
|
SQL 前端开发 Java
【分层架构】Spring MVC三层架构 / DDD领域驱动四层架构 / 微服务分布式架构(DAO/Mapper/Repository/Service/Controller/Manager)
本文系统解析Java企业级分层架构(Controller/Service/Manager/Repository/DAO/Mapper),阐明各层职责边界、设计原则与典型误区,强调单一职责、依赖倒置、关注点分离等核心思想,助力构建高内聚、低耦合、易维护的可扩展系统。
639 11
|
23天前
|
自然语言处理 测试技术 API
动动嘴就能编程!阿里云千问Qwen3.5-Omni发布:全模态全球最强,支持113种语言,免费体验
阿里云发布全模态大模型Qwen3.5-Omni官网:https://t.aliyun.com/U/JbblVp 测试全球第一,支持113种语言识别与36种语音合成,首创“音视频Vibe Coding”——对镜头口述需求即可生成APP/网页/游戏代码。免费开放体验,开发者可通过阿里云百炼调用API。
1339 2
|
22天前
|
人工智能 Java API
【SpringAIAlibaba新手村系列】(5)Prompt 提示词基础与多种消息类型
本章详解Spring AI 1.1.2中Prompt核心机制:以System/User/Assistant/Tool四类消息构建结构化提示,强调“角色决定语义”;涵盖多模型配置、链式API与底层Message组装两种实践方式,并给出系统消息设计最佳实践。
343 7
|
22天前
|
人工智能 机器人 API
零技术上手!2026年4月阿里云轻量服务器OpenClaw一键部署与钉钉快速接入保姆级教程
2026年,阿里云轻量服务器部署OpenClaw已实现**一键购买、自动初始化、钉钉快速接入**的全流程标准化,零基础用户无需掌握任何技术,只需按本文步骤操作,15分钟即可搭建专属AI助理,实现钉钉群聊自动回复、任务自动化、内容生成等功能。核心关键在于**正确选择地域、放行18789端口、准确配置API Key与钉钉凭证、及时重启服务**,配合阿里云千问高性能模型或Coding Plan免费模型,即可长期稳定使用OpenClaw,把重复工作交给AI,专注高价值事务。
187 4
|
1月前
|
设计模式 前端开发 Java
【Filter / Interceptor】过滤器(Filter)与拦截器(Interceptor)全方位对比解析(附底层原理 + 核心对比表)
本文系统梳理Filter与Interceptor的8大维度:从核心定位、底层原理到执行流程、场景选型。明确Filter属Servlet规范、容器级拦截,覆盖所有HTTP请求;Interceptor属Spring规范、MVC级拦截,专注业务请求且可注入Bean。附对比表、时序图、避坑指南与最佳实践。
412 10
|
19天前
|
Python Windows
Python 3.14 安装教程:详细步骤+自定义路径+环境变量配置(64位)
Python是简单易学、开源免费的面向对象编程语言。本文详解Python 3.14在64位Windows系统的安装全流程:下载解压、管理员运行、配置PATH与安装路径、创建IDLE桌面快捷方式,并通过启动交互界面验证安装成功。(239字)

热门文章

最新文章