news 2026/4/16 14:00:03

HTTP 状态码清单大全

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HTTP 状态码清单大全

HTTP 状态码清单大全

目录

  • HTTP 状态码总览表
  • 概述
  • HTTP 状态码分类概览
  • 一、1xx 信息性状态码
  • 二、2xx 成功状态码
  • 三、3xx 重定向状态码
  • 四、4xx 客户端错误状态码
  • 五、5xx 服务器错误状态码
  • 状态码分类关系图
  • 常见状态码速查表
  • 重定向状态码对比
  • 规范文档与查阅来源
  • 总结与记忆技巧

HTTP 状态码总览表

下表按类别列出文档中涉及的所有 HTTP 状态码,便于快速查阅。

状态码短语类别简要含义
100Continue1xx 信息请继续发送请求体
101Switching Protocols1xx 信息协议切换(如升级到 WebSocket)
103Early Hints1xx 信息预发送部分响应头(如 Link 预加载)
200OK2xx 成功请求成功
201Created2xx 成功资源已创建
202Accepted2xx 成功已接受,尚未处理完成
204No Content2xx 成功成功且无返回体
206Partial Content2xx 成功部分内容(断点续传等)
301Moved Permanently3xx 重定向永久重定向
302Found3xx 重定向临时重定向
303See Other3xx 重定向用 GET 访问另一 URI
304Not Modified3xx 重定向未修改,使用缓存
307Temporary Redirect3xx 重定向临时重定向,不改变请求方法
308Permanent Redirect3xx 重定向永久重定向,不改变请求方法
400Bad Request4xx 客户端错误请求有语法/格式错误
401Unauthorized4xx 客户端错误需要身份认证
403Forbidden4xx 客户端错误拒绝执行(无权限)
404Not Found4xx 客户端错误资源未找到
405Method Not Allowed4xx 客户端错误请求方法不被允许
406Not Acceptable4xx 客户端错误无法返回可接受的内容
408Request Timeout4xx 客户端错误请求超时
409Conflict4xx 客户端错误请求与当前资源状态冲突
410Gone4xx 客户端错误资源已永久删除
413Payload Too Large4xx 客户端错误请求体过大
414URI Too Long4xx 客户端错误URI 过长
429Too Many Requests4xx 客户端错误请求过多(限流)
500Internal Server Error5xx 服务器错误服务器内部错误
501Not Implemented5xx 服务器错误功能未实现
502Bad Gateway5xx 服务器错误网关收到无效上游响应
503Service Unavailable5xx 服务器错误服务暂时不可用
504Gateway Timeout5xx 服务器错误网关等待上游超时
507Insufficient Storage5xx 服务器错误存储空间不足

概述

**HTTP 状态码(Status Code)**是服务器对客户端请求的响应状态的三位数字代码,对 Web 开发和调试至关重要。状态码由三位数字组成,第一位数字定义响应的类别。

本文档整理从 1xx 到 5xx 的常用 HTTP 状态码清单,并说明规范来源与查阅方式。内容基于 IETF RFC 及常见实践整理,供开发与排查参考。


HTTP 状态码分类概览

第一位数字 → 类别含义 1xx ── 信息性:请求已接收,继续处理 2xx ── 成功:请求已成功被接收、理解并接受 3xx ── 重定向:需要客户端进一步操作才能完成请求 4xx ── 客户端错误:请求有误或无法满足(责任在客户端) 5xx ── 服务器错误:服务器处理请求时出错(责任在服务器)
类别范围含义
1xx信息性请求已被接收,继续处理
2xx成功请求已成功被服务器接收、理解并接受
3xx重定向需要客户端采取进一步操作才能完成请求
4xx客户端错误请求有误或服务器拒绝处理(客户端责任)
5xx服务器错误服务器在处理请求时发生错误(服务器责任)

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

表示请求已被接收,需要继续处理。日常开发中较少直接使用。

状态码短语含义
100Continue客户端应继续发送请求体。服务器已收到请求头,允许客户端继续发送 body(常用于Expect: 100-continue)。
101Switching Protocols服务器根据客户端的升级请求切换协议(如从 HTTP 升级到 WebSocket)。
103Early HintsLink头一起使用,允许在最终响应前先返回部分响应头,用于预加载等优化。

典型流程(100 Continue)

客户端 服务器 │ │ │ POST /api (Expect: 100-continue) │ Headers only ───────────────>│ │ │ │ 100 Continue │ │ <────────────────────────────│ │ │ │ Request Body ───────────────>│ │ │ │ 200 OK + Body │ │ <────────────────────────────│

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

表示请求已成功完成。

状态码短语含义
200OK最常用。请求成功,一般用于 GET 和 POST 的成功响应。
201Created请求成功且服务器创建了新资源,常用于 POST 或 PUT。
202Accepted请求已接受,但尚未处理完成;可能异步执行。
204No Content成功处理,但不返回实体内容,常用于 DELETE 或更新后无需返回 body。
206Partial Content成功处理了部分 GET 请求,用于断点续传、分片下载、视频流等。

常见用法对照

方法成功时常用状态码
GET200 OK(有内容)/ 206 Partial Content(范围请求)
POST200 OK 或 201 Created
PUT/PATCH200 OK 或 204 No Content
DELETE200 OK 或 204 No Content

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

表示需要客户端采取进一步操作(如跳转到新 URL)才能完成请求。

状态码短语含义
301Moved Permanently永久重定向。资源已永久移动到新 URL,后续请求应使用新 URL;搜索引擎会更新索引。
302Found临时重定向。资源临时从另一 URI 提供;历史上不少实现会把它当 303 用(POST→GET)。
303See Other响应在另一 URI;用 POST 时,应改用 GET 访问该资源(防止重复提交)。
304Not Modified非常常见。条件 GET 未修改,可直接使用缓存;用于缓存控制。
307Temporary Redirect临时重定向,与 302 类似,但不允许把 POST 改成 GET。
308Permanent Redirect永久重定向,与 301 类似,但不允许把 POST 改成 GET。

常见混淆点

  • 301 vs 302:301 永久,搜索引擎会更新索引;302 临时,一般保留原链接。
  • 302 vs 307:307 明确禁止在重定向时改变请求方法(POST 仍为 POST)。
  • 301 vs 308:308 明确禁止在重定向时改变请求方法。

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

表示错误来自客户端(请求有误、未认证、无权限、资源不存在等)。

状态码短语含义
400Bad Request常用。请求有语法或格式错误,服务器无法理解。
401Unauthorized需要身份认证。注意:401 是“未认证”,403 是“已认证但无权限”。
403Forbidden常用。服务器理解请求但拒绝执行;通常表示已认证但无权限。
404Not Found最著名。服务器找不到请求的资源(URL 不存在或未暴露)。
405Method Not Allowed该资源不支持请求中使用的方法(如对只读接口发 POST)。
406Not Acceptable无法根据 Accept 等头返回客户端可接受的内容。
408Request Timeout服务器等待请求时间过长,超时。
409Conflict请求与当前资源状态冲突(如并发更新冲突)。
410Gone资源曾存在但已永久删除;与 404 不同,410 明确表示“曾经有,现在没了”。
413Payload Too Large请求体超过服务器允许或能够处理的范围。
414URI Too Long请求的 URI 长度超过服务器能处理的限制。
429Too Many Requests常用。请求过于频繁,触发了限流(Rate Limit),常见于 API。

401 与 403 区别

401 Unauthorized 403 Forbidden ───────────────── ───────────────── 「你是谁?」 「我知道你是谁, 未认证 / 未登录 但你不许访问」 应返回 WWW-Authenticate 不应再提示登录

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

表示服务器在处理请求时发生错误,责任在服务端。

状态码短语含义
500Internal Server Error最著名。服务器遇到未预期错误,无法完成请求;多为后端代码或配置问题。
501Not Implemented服务器不支持当前请求所需的功能(如未实现的 HTTP 方法)。
502Bad Gateway常用。网关或代理从上游收到无效响应(如上游服务挂掉、崩溃)。
503Service Unavailable常用。服务暂时不可用(过载、维护等),通常为暂时状态。
504Gateway Timeout常用。网关或代理在等待上游响应时超时。
507Insufficient Storage服务器存储空间不足,无法完成请求。

网关/代理场景示意

客户端 → [Nginx/网关] → 上游应用 502:上游返回无效响应或连接失败 504:上游在规定时间内未响应

状态码分类关系图

HTTP 响应 │ ┌───────────────┼───────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ 1xx │ │ 2xx │ │ 3xx │ │ 信息 │ │ 成功 │ │ 重定向 │ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ │ │ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ │ 4xx │ │ 5xx │ │ 客户端 │ │ 服务器 │ │ 错误 │ │ 错误 │ └─────────┘ └─────────┘

常见状态码速查表

开发中最常遇到的状态码可重点掌握:

状态码短语一句话
200OK成功
201Created创建成功
204No Content成功且无返回体
301Moved Permanently永久跳转
302Found临时跳转
304Not Modified用缓存
400Bad Request请求错误
401Unauthorized未认证
403Forbidden无权限
404Not Found未找到
429Too Many Requests请求过多/限流
500Internal Server Error服务器内部错误
502Bad Gateway网关错误(上游异常)
503Service Unavailable服务不可用
504Gateway Timeout网关超时

重定向状态码对比

状态码永久/临时是否允许改变请求方法典型用途
301永久允许(很多实现会改为 GET)域名迁移、URL 永久变更
302临时历史上常被改为 GET临时跳转、登录后跳回
303-必须用 GET 访问新 URIPOST 后防重复提交
307临时不允许临时重定向且保持方法
308永久不允许永久重定向且保持方法

规范文档与查阅来源

HTTP 状态码的语义由IETF RFC定义,以下为常用规范与查阅途径。

核心规范文档

文档说明
RFC 9110– HTTP Semantics当前最新、最权威的 HTTP 语义规范(2022),包含状态码含义、方法、头字段等。状态码章节:“6. Response Status Codes”
RFC 9112– HTTP/1.1HTTP/1.1 的语法与连接管理,语义引用 RFC 9110。
RFC 9113– HTTP/2HTTP/2 的帧层协议,消息语义仍遵循 RFC 9110。

历史规范(了解即可):RFC 7231(已被 RFC 9110 取代)、RFC 2616(已过时)。

查阅方式

来源适合人群优点缺点
RFC 9110协议/架构权威、精确篇幅大、偏技术化
IANA 状态码注册表需要完整清单最全、实时更新、结构化无详细解释,仅为登记表
MDN Web Docs所有开发者解释清晰、示例多、易读非官方、可能略滞后
HTTPWG Wiki关注标准的人信息新、准确、贴近 RFC社区维护,普及度不如 MDN

推荐链接

  • RFC 9110(HTML):https://www.rfc-editor.org/rfc/rfc9110.html
  • IANA HTTP 状态码注册表:https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
  • MDN HTTP 状态码:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

实践建议

  • 日常开发与学习:优先查MDN
  • 确认冷门状态码或官方定义:查IANA 注册表
  • 深度研究或争议问题:查RFC 9110对应章节。

总结与记忆技巧

  • 2xx 开心:请求顺利,成功一类。
  • 3xx 转发:要去别处找(重定向、缓存 304)。
  • 4xx 你错了:检查请求(URL、参数、权限、限流等)。
  • 5xx 我错了:服务器或上游有问题,需运维/开发介入。

实际开发中出现频率最高的状态码通常包括:200、301/302、304、400、401、403、404、429、500、502、503、504,建议重点掌握其含义与使用场景。

代码中设置状态码示例

Node.js (Express)

// 成功res.status(200).json({data:result});res.status(201).location('/api/users/1').json({id:1,name:'Alice'});res.status(204).send();// 客户端错误res.status(400).json({error:'Invalid parameters'});res.status(401).set('WWW-Authenticate','Bearer').send('Unauthorized');res.status(403).json({error:'Forbidden'});res.status(404).json({error:'Not Found'});res.status(429).set('Retry-After','60').json({error:'Too Many Requests'});// 服务器错误res.status(500).json({error:'Internal Server Error'});res.status(503).json({error:'Service Unavailable'});

Python (Flask)

fromflaskimportjsonify# 成功returnjsonify({"data":result}),200returnjsonify({"id":1}),201return'',204# 客户端错误returnjsonify({"error":"Bad Request"}),400returnjsonify({"error":"Unauthorized"}),401returnjsonify({"error":"Not Found"}),404returnjsonify({"error":"Too Many Requests"}),429# 服务器错误returnjsonify({"error":"Internal Server Error"}),500

本文档基于 IETF RFC 及公开技术资料整理,供开发与排查参考。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:25:52

技术思维陷阱:当用例设计变成产品枷锁

作为拥有十年支付系统测试经验的工程师&#xff0c;我将测试思维完美“复制”到跨境电商工具开发中&#xff1a; 过度追求覆盖率&#xff1a;用边界值分析法设计30种优惠券组合功能&#xff0c;但实际用户仅需3种常用场景。冗余开发耗时4个月&#xff0c;导致错过圣诞销售季 混…

作者头像 李华
网站建设 2026/4/16 12:13:50

Java高频面试题:为什么CAP原则不能全部满足?

大家好&#xff0c;我是锋哥。今天分享关于【高频面试题&#xff1a;为什么CAP原则不能全部满足&#xff1f;】面试题。希望对大家有帮助&#xff1b;Java高频面试题&#xff1a;为什么CAP原则不能全部满足&#xff1f;CAP原则&#xff08;一致性、可用性、分区容错性&#xff…

作者头像 李华
网站建设 2026/4/11 19:24:03

PHP续传大文件时进度条如何同步更新?

大文件上传系统开发指南&#xff08;PHP原生JS&#xff09; 项目概述 兄弟&#xff0c;你这需求可真够硬的&#xff01;20G文件上传、文件夹层级保留、全浏览器兼容、加密传输存储、断点续传…这活儿不轻松啊&#xff01;不过既然你找到我了&#xff0c;咱们就一起啃下这块硬…

作者头像 李华
网站建设 2026/4/16 11:05:36

ArcGIS Python零基础脚本开发教程---10.6 错误处理

编写稳健的脚本,让地理处理工作流程更加顺畅可靠。 为什么需要异常处理? 错误总是在所难免。编写可预见和处理错误的脚本可让您节省大量时间,同时避免很多令人头疼的问题。 当工具返回错误消息时,ArcPy 会生成系统错误或异常。在 Python 中,您能够提供多种可用于处理异常的…

作者头像 李华
网站建设 2026/4/16 12:27:16

React → Angular 的架构对照手册

一、React → Angular 架构一一对照&#xff08;工程级&#xff09;1️⃣ 项目入口 & 启动方式ReactAngular说明main.tsxmain.ts启动入口App.tsxAppComponent应用根createRoot().render()bootstrapApplication()启动方式&#x1f449; 完全等价 2️⃣ 模板 & 组件React…

作者头像 李华
网站建设 2026/4/16 11:02:00

PHP大文件秒传时进度条是否需要显示?

大文件上传系统开发指南&#xff08;PHP原生JS&#xff09; 项目概述 兄弟&#xff0c;你这需求可真够硬的&#xff01;20G文件上传、文件夹层级保留、全浏览器兼容、加密传输存储、断点续传…这活儿不轻松啊&#xff01;不过既然你找到我了&#xff0c;咱们就一起啃下这块硬…

作者头像 李华