⭐ 觉得好用?收藏备用,下次直接打开
100
Continue
继续
信息
客户端可继续发送请求剩余部分。多用于 Expect: 100-continue。
101
Switching Protocols
协议切换
信息WebSocket
服务器同意切换协议(如升级到 WebSocket)。
102
Processing
处理中
信息WebDAV
WebDAV:服务器已接收并正在处理请求,但尚无可用响应。
103
Early Hints
早期提示
信息性能
服务器在最终响应前预先返回部分头部(如 Link rel=preload),加速资源加载。
200
OK
请求成功
成功可缓存
请求成功,响应体为请求结果。最常见的成功状态。
201
Created
已创建
成功
请求成功且新资源已创建(POST/PUT 创建场景),响应通常包含 Location 头。
202
Accepted
已接受
成功异步
请求已受理但未处理完成,常用于异步任务。
203
Non-Authoritative Information
非权威信息
成功
响应来自代理或第三方,不是源服务器的原始内容。
204
No Content
无内容
成功
请求成功但响应无正文,常用于 DELETE 或不需要返回数据的 PUT。
205
Reset Content
重置内容
成功
提示客户端重置表单视图。
206
Partial Content
部分内容
成功Range
范围请求成功,响应仅包含 Range 指定的字节区间。视频拖动、断点续传常用。
207
Multi-Status
多状态
成功WebDAV
WebDAV:响应体(XML)包含多个独立资源的状态。
208
Already Reported
已报告
成功WebDAV
WebDAV:成员已在响应中报告过,避免重复枚举。
226
IM Used
已应用差量
成功
服务器已应用一个或多个实例操作(RFC 3229 Delta encoding)。
300
Multiple Choices
多重选择
重定向
请求资源有多种表现形式,服务器无法自动选择,需客户端指定。
301
Moved Permanently
永久重定向
重定向可缓存SEO
资源已永久移动到 Location 指定的 URL。SEO 权重会传递到新地址。
302
Found
临时重定向
重定向
资源临时位于 Location,下次仍访问原 URL。语义不严谨,新代码建议用 303/307。
303
See Other
查看其它位置
重定向
POST 之后引导客户端用 GET 跳转,避免重复提交。
304
Not Modified
未修改
重定向缓存
配合 If-None-Match / If-Modified-Since,资源未变,使用本地缓存。
305
Use Proxy
使用代理
重定向废弃
已废弃。原意为请求需要通过 Location 指定的代理访问。
307
Temporary Redirect
临时重定向(保留方法)
重定向
与 302 类似但严格保持原请求方法(POST 仍 POST)。
308
Permanent Redirect
永久重定向(保留方法)
重定向可缓存
与 301 类似但严格保持原请求方法。建议替代 301 用于非 GET。
400
Bad Request
请求无效
客户端
语法错误(JSON 解析失败、参数缺失、格式不对)。
401
Unauthorized
未认证
客户端认证
需要身份认证(Token 缺失/过期/无效)。响应应带 WWW-Authenticate 头。
402
Payment Required
需要付款
客户端
保留状态码,部分服务用于配额/付费墙提示。
403
Forbidden
禁止访问
客户端权限
已认证但无权限。与 401 区别:401 是没登录,403 是登录了但不允许。
404
Not Found
未找到
客户端
资源不存在或路径错误。也常用来"软隐藏"无权访问的资源。
405
Method Not Allowed
方法不允许
客户端
资源存在但不支持当前 HTTP 方法。响应应带 Allow 头列出支持的方法。
406
Not Acceptable
无法接受
客户端协商
没有匹配 Accept / Accept-Language / Accept-Encoding 的可用表示。
407
Proxy Authentication Required
需要代理认证
客户端认证
需先向代理认证,类似 401 但针对代理。
408
Request Timeout
请求超时
客户端
服务器等待请求时间过长。客户端可重试。
409
Conflict
冲突
客户端
与资源当前状态冲突,常见于乐观锁、版本不一致、并发提交。
410
Gone
已永久移除
客户端SEO
资源已永久删除且没有转发地址。SEO 上比 404 更明确,搜索引擎会更快剔除。
411
Length Required
需 Content-Length
客户端
服务器要求请求带 Content-Length 头。
412
Precondition Failed
前置条件失败
客户端缓存
If-Match / If-Unmodified-Since 等前置条件不满足。常用于乐观并发控制。
413
Content Too Large
请求体过大
客户端
请求体超出服务器/上游限制(曾用名 Payload Too Large)。
414
URI Too Long
URI 过长
客户端
URL 长度超过服务器允许范围(一般 8KB 以上风险高)。
415
Unsupported Media Type
不支持的媒体类型
客户端MIME
请求体的 Content-Type 服务器不接受(如发了 text/plain 但接口要 application/json)。
416
Range Not Satisfiable
范围不可满足
客户端Range
Range 请求超出资源大小。
417
Expectation Failed
期望失败
客户端
Expect 头中的期望服务器无法满足。
418
I'm a teapot
我是茶壶
客户端彩蛋
愚人节彩蛋(RFC 2324)。部分框架用于"故意拒绝"或人机校验占位。
421
Misdirected Request
请求被错误转发
客户端
请求被发往无法响应的服务器(HTTP/2 连接复用错误目标)。
422
Unprocessable Content
无法处理的实体
客户端校验
语法正确但语义错误(如校验失败)。REST API 常用于业务校验失败。
423
Locked
已锁定
客户端WebDAV
WebDAV:资源被锁定。
424
Failed Dependency
依赖失败
客户端WebDAV
WebDAV:因前置请求失败而无法完成。
425
Too Early
太早
客户端TLS
服务器拒绝处理可能被重放的请求(TLS 0-RTT 早期数据)。
426
Upgrade Required
需升级协议
客户端
需切换到响应 Upgrade 头指定的协议。
428
Precondition Required
需前置条件
客户端
服务器要求请求附带条件(避免"丢失更新"问题)。
429
Too Many Requests
请求过多
客户端限流
触发限流。响应可带 Retry-After 提示等待时长。
431
Request Header Fields Too Large
请求头过大
客户端
某个或全部请求头总长度超出限制。常见于 Cookie 过多。
451
Unavailable For Legal Reasons
因法律原因不可用
客户端
应法律要求屏蔽(数字源自小说《华氏 451》)。
500
Internal Server Error
服务器内部错误
服务端
服务器发生未预期的异常。最常见的"兜底"错误。
501
Not Implemented
未实现
服务端
服务器不支持完成请求所需的方法或功能。
502
Bad Gateway
网关错误
服务端网关
反向代理(Nginx 等)从上游收到无效响应。常因后端崩溃或超时。
503
Service Unavailable
服务不可用
服务端
服务暂时过载或维护中。响应可带 Retry-After。
504
Gateway Timeout
网关超时
服务端网关
反向代理等待上游响应超时。常因后端处理过慢。
505
HTTP Version Not Supported
HTTP 版本不支持
服务端
服务器不支持请求中使用的 HTTP 协议版本。
506
Variant Also Negotiates
变体协商失败
服务端
内容协商配置错误,导致循环引用。
507
Insufficient Storage
存储空间不足
服务端WebDAV
WebDAV:服务器无法保存请求所需的表示。
508
Loop Detected
检测到循环
服务端WebDAV
WebDAV:处理请求时遇到无限循环。
510
Not Extended
未扩展
服务端
请求需要的进一步扩展未被服务器支持。
511
Network Authentication Required
需网络认证
服务端认证
网络层需要认证才能访问(如公共 WiFi 强制门户)。

HTTP 状态码 是服务器对每个请求的标准化回执,用三位数字 + 一个英文短语表达”这次请求处理成果如何”。MIME 类型(媒体类型,Media Type)是描述消息体里”装的是什么”的标识,由 IANA 维护注册表,从 text/htmlapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet,决定浏览器是渲染、下载还是报错。两者都是 HTTP 协议里最高频出现的概念,本工具用一个页面把它们摆齐,免去在 MDN/IANA/Wiki 里来回切换。

状态码五大类

类别范围含义
1xx100–103信息:请求已收到,过程未结束
2xx200–226成功:请求已被理解并处理
3xx300–308重定向:需要进一步动作(通常是跳转)
4xx400–451客户端错误:请求本身有问题
5xx500–511服务端错误:服务器没能完成有效请求

记一个口诀:1 信 2 成 3 转 4 求 5 服——客户端”求”得有问题是 4xx,服务端”服”务出问题是 5xx。

常见易混淆对

  • 301 vs 308:都是永久跳转,308 严格保留请求方法(POST 不变 POST),301 历史上会被某些客户端改写为 GET。新代码非 GET 永久跳转优先 308。
  • 302 vs 307:临时跳转,关系同上。
  • 303 See Other:POST → GET 跳转专用,避免刷新重提交。
  • 401 vs 403:401 没认证、403 权限不够。两者长得像,但调试方向完全不同。
  • 404 vs 410:404 含糊,410 明确”已永久删除”,对搜索引擎更友好。
  • 422 vs 400:400 是语法/格式错(JSON 解析不了),422 是语法对但语义错(字段校验失败)。REST 风格 API 推荐用 422 表达业务校验失败。
  • 502 vs 504:502 是上游返回了无效响应(崩了/连不上),504 是上游响应超时。Nginx 日志里这两个出现频率最高。

MIME 写对的几个坑

类别(type)/ 子类(subtype)/ 可选参数:标准结构是 type/subtype; param=value。最常见的可选参数是 charset

Content-Type: text/html; charset=utf-8
Content-Type: application/json
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary...

JSON 不需要 charset 参数——RFC 8259 规定 JSON 必须是 UTF-8。HTML/CSS/JS 等文本类格式如果不写 charset,浏览器可能用页面默认编码或猜,乱码风险高。

容易写错的几个

  • image/jpg ❌ → image/jpeg ✅(注意是 jpeg 不是 jpg)
  • application/x-zip-compressed ❌ → application/zip ✅(IANA 标准是后者)
  • text/javascript ✅(已是标准),application/javascript 已废弃但仍被识别
  • audio/mp3 不是标准 → 用 audio/mpeg

浏览器拿到 MIME 后做什么

简单一张表:

Content-Type浏览器行为
text/html渲染为页面
text/plain / text/css / text/javascript内联展示或按需引用
image/* audio/* video/*内联预览(如果浏览器支持该编码)
application/pdf多数浏览器内置 PDF 阅读器预览
application/json application/xml直接以文本形式展示,部分浏览器自动美化
application/octet-stream强制下载(不预览)

如果服务端配错 MIME(比如把 .svg 配成 text/plain),浏览器会按文本展示而不是渲染矢量图。部署前用 curl -I 资源URL 看一眼响应头是排查的第一步。

数据来源与限制

  • HTTP 状态码:以 RFC 9110(HTTP 语义)为准,含 WebDAV (RFC 4918)、Hints (RFC 8297)、Legal (RFC 7725) 等扩展。
  • MIME 类型:以 IANA Media Types Registry 为准,仅收录 Web 高频项约 80 条。罕见类型可在工具内搜不到时去 IANA 全量表查询。
  • 工具完全离线运行,所有数据打包进页面,不发起任何外部请求

📍使用场景

  • 接口调试看到陌生状态码Postman / 浏览器 DevTools 里看到 422 / 451 / 503 等不熟悉的码,搜一下中文释义和典型触发原因。
  • 上传/下载文件设 Content-Type后端要发文件给浏览器,需要正确的 MIME 才能让浏览器选择"打开"还是"下载",这里反查扩展名↔MIME 最快。
  • 写 SEO / 重定向规则决定用 301 还是 308、404 还是 410,看一眼语义差异和缓存行为,避免误用让搜索引擎理解错。
  • 配 Nginx / CDN 缓存策略哪些 2xx/3xx 默认可缓存、哪些需要 Cache-Control 显式声明,速查心里有数。

常见问题

301 和 302 到底用哪个?302 和 307、308 又是什么关系?

永久跳转用 301 / 308,临时跳转用 302 / 307。区别在"是否保留请求方法":301/302 的语义含糊,浏览器/代理可能把 POST 改写成 GET;307/308 严格保留原方法。新代码建议:永久 → 308,临时 → 307;老站迁移历史包袱重的,301 仍是默认选择,SEO 权重传递最稳。

404 和 410 有什么区别?SEO 怎么选?

404 = 不存在或暂时找不到410 = 已永久删除且不再回来。语义上 410 更明确,搜索引擎收到 410 会更快从索引里移除该 URL。常规请用 404,只有确定永久下线(比如运营活动结束、商品永久下架)再用 410。

401 和 403 总搞混,标准答案是什么?

401 = 你还没证明自己是谁(缺 Token、Token 过期、签名错误),响应应带 WWW-Authenticate 头提示怎么认证。403 = 知道你是谁了,但你没权限(角色不够、IP 黑名单、地区限制)。一句话:"401 是登录问题,403 是授权问题。"

"415 Unsupported Media Type" 怎么排查?

99% 是请求 Content-Type 与接口期望不一致。最常见:接口要 application/json 但客户端发了 application/x-www-form-urlencoded(默认 fetch / form 提交都是后者);或者上传接口要 multipart/form-data 但客户端只贴了一段 base64。检查请求头 Content-Type 和接口文档对齐即可。

application/octet-stream 和具体 MIME 哪个好?

只要能给出准确 MIME,就一定不要用 octet-stream 浏览器对 octet-stream 的默认行为是直接下载,会让本来该内联预览的 PDF / 图片 / 视频强制弹出"另存为"。仅当文件类型确实未知(用户上传的任意二进制)才退回兜底类型。

JS 文件应该用 text/javascript 还是 application/javascript

IETF 在 2022 年的 RFC 9239 里明确把 text/javascript 定为标准,废弃了 application/javascript。两者浏览器都识别,但新代码统一用 text/javascript.mjs 也是同一个 MIME。