HTTP状态码速查

按类别速查HTTP状态码含义与使用场景,含常见易混淆状态码的辨析与Nginx非标准码

HTTP 状态码速查

共收录 51 个状态码
全部1xx 信息2xx 成功3xx 重定向4xx 客户端错误5xx 服务端错误
状态码英文名中文名含义与常见场景
100Continue继续客户端发送了 Expect: 100-continue,服务器允许继续发送请求体。常用于上传大文件前的预检。
101Switching Protocols切换协议服务器同意升级协议,WebSocket 握手成功时返回的就是 101。
102Processing处理中WebDAV 扩展,表示服务器已收到请求但尚未完成,避免客户端超时。
103Early Hints早期提示在最终响应前先返回部分头(通常是 Link: preload),让浏览器提前预加载资源。
200OK成功请求成功,响应体包含结果。GET/POST/PUT 最常见的成功状态。
201Created已创建资源创建成功,建议同时返回 Location 头指向新资源。POST 新增数据的规范返回值。
202Accepted已接受请求已接受但尚未处理完成,适用于异步任务(如提交转码、导出任务)。
204No Content无内容处理成功但没有响应体。常用于 DELETE 成功、PUT 更新后不返回数据的场景。
206Partial Content部分内容范围请求(Range)成功,用于断点续传和视频拖动播放。
301Moved Permanently永久重定向资源永久换了地址,搜索引擎会转移权重。旧域名换新域名用它。允许把 POST 改成 GET。
302Found临时重定向资源临时在别处,后续请求仍用原地址。历史实现允许把 POST 改成 GET。
303See Other查看其他位置要求客户端用 GET 去访问另一个地址,常用于表单提交后跳转到结果页。
304Not Modified未修改协商缓存命中(If-None-Match / If-Modified-Since),响应无正文,客户端复用本地缓存。
307Temporary Redirect临时重定向(保持方法)与 302 类似,但严格要求保持原请求方法与请求体。
308Permanent Redirect永久重定向(保持方法)与 301 类似,但严格要求保持原请求方法与请求体。
400Bad Request请求错误语法错误或参数不合法,服务器无法理解。参数校验失败最常用这个码。
401Unauthorized未认证缺少或无效的身份凭证,应带 WWW-Authenticate 头。Token 过期属于这一类。
402Payment Required需要付费保留状态码,部分 API 用于表示额度用尽或需要升级套餐。
403Forbidden禁止访问身份已确认但没有权限,重试无意义。越权访问、IP 黑名单、防盗链拦截都属于此类。
404Not Found未找到资源不存在,或服务器不愿透露其存在。路由拼错、资源被删除都会返回它。
405Method Not Allowed方法不允许资源存在但不支持该方法,响应必须带 Allow 头列出支持的方法。
406Not Acceptable不可接受服务器无法产生符合 Accept 头要求的响应格式。
407Proxy Authentication Required需要代理认证需要先通过代理服务器的身份认证。
408Request Timeout请求超时服务器等待客户端发完请求的时间过长,主动关闭了连接。
409Conflict冲突与资源当前状态冲突,如并发编辑、唯一键重复、版本号不一致。
410Gone已永久删除资源曾存在但已永久移除,比 404 语义更明确,利于搜索引擎清理索引。
411Length Required需要 Content-Length服务器要求请求带上 Content-Length 头。
412Precondition Failed前置条件失败If-Match / If-Unmodified-Since 等条件不满足,常用于乐观锁。
413Content Too Large请求体过大上传内容超过服务器限制(Nginx 的 client_max_body_size)。旧名 Payload Too Large。
414URI Too LongURI 过长请求 URL 超长,通常是把大量参数拼在 query 上导致,应改用 POST。
415Unsupported Media Type不支持的媒体类型Content-Type 不被支持,如后端只收 application/json 却发了表单。
416Range Not Satisfiable范围无法满足Range 请求的区间超出资源实际大小。
417Expectation Failed预期失败无法满足 Expect 请求头中的要求。
418I'm a teapot我是茶壶出自愚人节 RFC 2324(超文本咖啡壶控制协议),非正式规范,只作彩蛋使用。
422Unprocessable Content无法处理的实体语法正确但语义有误,无法处理。表单业务校验失败常用它区别于 400。
425Too Early过早服务器不愿处理可能被重放的早期数据(TLS 1.3 early data)。
426Upgrade Required需要升级协议要求客户端切换协议,如强制升级到 TLS。
428Precondition Required要求前置条件服务器要求请求必须带条件头,避免"丢失更新"问题。
429Too Many Requests请求过多触发限流,建议配合 Retry-After 头告知客户端等待时长。
431Request Header Fields Too Large请求头过大请求头总大小或单个头过长,常见于 Cookie 累积过多。
451Unavailable For Legal Reasons因法律原因不可用因法律要求(如版权、监管)拒绝提供资源。
499Client Closed Request客户端断开连接Nginx 私有状态码:客户端在服务器响应前主动断开。多见于前端超时取消或用户关闭页面。
500Internal Server Error服务器内部错误服务器抛出未捕获异常。排查方向是应用日志,不是客户端参数。
501Not Implemented未实现服务器不支持该请求方法或功能。
502Bad Gateway网关错误网关从上游收到无效响应,常见于上游服务挂掉或返回了非法内容。
503Service Unavailable服务不可用服务临时不可用(过载或维护),建议返回 Retry-After。
504Gateway Timeout网关超时网关等待上游响应超时,与 502 区别在于上游是"慢"而不是"错"。
505HTTP Version Not SupportedHTTP 版本不支持服务器不支持请求使用的 HTTP 协议版本。
507Insufficient Storage存储空间不足WebDAV 扩展,服务器磁盘空间不足以完成操作。
508Loop Detected检测到循环WebDAV 扩展,处理请求时检测到无限循环。
511Network Authentication Required需要网络认证需要先通过网络接入认证,常见于公共 WiFi 的门户页面。

分类速记

1xx 信息请求已收到,正在处理,客户端应继续
2xx 成功请求已被成功接收、理解并处理
3xx 重定向需要客户端进一步动作才能完成请求
4xx 客户端错误请求本身有问题,重试同样的请求通常无效
5xx 服务端错误服务器处理时出错,请求本身可能是合法的
  • 301 与 308、302 与 307 的区别:301/302 允许把 POST 改写成 GET,308/307 要求保持原方法与请求体不变。
  • 401 表示"未认证"(缺少或无效凭证),403 表示"已认证但无权限",两者不要混用。
  • 499 是 Nginx 私有状态码(客户端主动断开),504 是网关等待上游超时,排查方向完全不同。
  • 418 出自 1998 年的愚人节 RFC 2324,不属于正式 HTTP 规范,生产接口不要使用。

功能介绍

HTTP状态码速查按1xx信息、2xx成功、3xx重定向、4xx客户端错误、5xx服务端错误五类整理了约五十个状态码,依据RFC 9110给出标准含义,并补充"什么时候该用它"的实际建议。除标准状态码外还收录了几个高频出现在日志里的非标准码并明确标注来源,例如Nginx的499(客户端主动断开连接)、CDN自定义的520与521,避免在排查问题时误以为是应用返回的。工具特别整理了几组容易混淆的状态码辨析:301与308(是否允许把POST改写为GET)、302与303与307、401与403(未认证与已认证但无权限)、404与410、499与504(是客户端先走还是上游超时)、502与503与504的区别。支持按类别筛选与关键字搜索,每条可单独复制。

使用说明

1. 点击顶部的类别标签筛选1xx到5xx,或直接在搜索框输入状态码数字与关键字;2. 每条展示状态码、英文名称、中文含义与典型使用场景;3. 查看"易混淆状态码辨析"区块,确认自己选用的状态码语义是否准确;4. 排查线上日志时注意区分标准码与Nginx、CDN自定义码,页面已对非标准码加了标注;5. 设计API时优先使用语义准确的状态码而不是一律返回200再在响应体里放错误码,前者能被网关、CDN与监控正确识别。