piapia123
zh

MIME 类型查询

网络与网页

所有处理都在浏览器本地完成,数据不上传服务器

输入
输出

扩展名和 MIME 类型互查:输入 js 得到 text/javascript,输入 image/svg+xml 得到默认扩展名 .svg。表中的取值以 IANA 注册表为准,并补上 nginx 和 Apache 默认配置里那些没注册但大家都在用的值。这里只收日常真会碰到的那部分 —— 光 IANA 注册表就有两千多条,所以查不到某个类型,不代表它不存在,结果里会明确写出这一点。

功能

  • 双向查询:扩展名到 MIME 类型,MIME 类型到默认扩展名
  • 直接粘文件名也能查(app.min.js 按 .js 处理),大小写、前导点和查询串都会被忽略
  • 一个类型对应多个扩展名时全部列出,比如 image/jpeg 对应 jpg、jpeg、jpe、jfif
  • 易错条目带说明:js 的旧类型已废弃、ico 的注册名、ts 与 TypeScript 同名
  • 可给 text 开头的类型附加 charset=utf-8,直接粘进 Content-Type 头
  • 查不到时按编辑距离给出「是不是想查」,而不是只回一句没有
  • 未命中时明确写出数据来源与覆盖条数

使用方法

  1. 输入扩展名(js、.png、app.min.js)或 MIME 类型(text/html)
  2. 方向默认自动判断:含斜杠的当 MIME,否则当扩展名;也可以在选项里显式指定
  3. 需要整条响应头取值时勾上 charset 选项
  4. 结果实时出现,不需要点运行

常见问题

这里收录了多少类型?数据从哪来?
约一百条,来源是 IANA 媒体类型注册表,加上 nginx 与 Apache 默认配置里那些属于事实标准但没有注册的取值,application/x-tar 和 application/x-sh 就是典型。IANA 注册表本身有两千多条,这个工具只覆盖日常真会碰到的那部分,不是完整列表。查不到时结果里会写明这一点,并给出最接近的几个候选。
为什么 js 是 text/javascript 而不是 application/javascript?
RFC 9239 明确规定 text/javascript 是 JavaScript 的唯一推荐类型,此前常用的 application/javascript 已经废弃。不过它仍出现在大量老配置和 CDN 默认设置里,所以两种都能见到;要兼容某个老系统时,按对端的要求写即可。
为什么 ts 查出的是视频类型?
在服务器默认表里 .ts 是 MPEG-TS 视频流,类型 video/mp2t。TypeScript 源文件用同一个扩展名,而静态服务器不会为此改变判断 —— 把 .ts 源码直接交给静态服务器,浏览器会收到 video/mp2t,这是这个扩展名最经典的事故。源码应当经过构建产出 .js,不要直接由静态服务器提供。
为什么 svg 的类型是 image/svg+xml?
SVG 本质上是一段 XML 文本。按 MIME 的命名规则,加 xml 后缀表示这是一个基于 XML 的格式,所以是 image/svg+xml。它同时又确实是一种图片,所以顶层类型是 image 而不是 application。
charset 选项什么时候会用上?
当你要拼一条完整的 Content-Type 响应头时。它只对 text 开头的类型生效:JSON 规范上就是 UTF-8,XML 自带编码声明,给它们加 charset 最多是冗余,所以工具不会加,并会说明原因。

相关工具