🧰 UtlKit

MIME 类型查询: 125 行表把 124 个扩展名映射到 5 个分类, 重复的 .ts 条目, 43 个 x- 厂商类型与 CSV 导出规则一次讲清

在 125 行的 MIME 类型表中查询任意扩展名: 5 个分类, 搜索对扩展名与类型做子串匹配, .ts 返回两个类型, 43 行带 x- 厂商前缀, 筛选后的视图可导出 CSV.

浏览器按 Content-Type 头决定如何处理一个文件: 类型给错, 页面会被下载而不是渲染, 该加载的字体可能被直接拒掉. 一张查询表让答案随手可得, 不用离开浏览器. MIME 类型查询 内置一张 125 行的静态表, 把扩展名映射到 MIME 类型与分类, 支持搜索, 分类筛选与 CSV 导出, 全部在浏览器内完成, 不上传任何数据.

125 行, 5 个分类

表中 125 条记录分 5 个分类: Text 26 条, Image 16 条, Audio 11 条, Video 12 条, Application 60 条, 覆盖 124 个不同的扩展名, 因为 .ts 出现了两次. 把全部类型字符串的长度加起来, 这张表共 2,098 个字符. 每行以等宽字体显示扩展名, 类型和带颜色的分类徽章. 搜索框对扩展名和 MIME 字符串做大小写不敏感的子串匹配, 并且可以和分类筛选叠加.

一个页面的 5 个资源

一个典型页面会发出 app.js, data.csv, logo.png, film.mp4 和 font.woff2. 5 次查询分别得到 text/javascript (Text), text/csv (Text), image/png (Image), video/mp4 (Video) 和 font/woff2 (Application). 分类徽章与 MIME 家族并不总是一致: .mjs 和 .cjs 是 text/javascript 却归在 Application, .svg 是 image/svg+xml 却归在 Text.

搜索对两个字段做子串匹配

输入 image 会返回 19 行, 而不是 Image 分类的 16 行, 因为 .svg 归在 Text, .dmg 与 .iso 归在 Application, 而它们的类型字符串里包含 image 这个词. 输入 mp 返回 9 行, 包括 .bmp (bmp 含 mp), .ts (经 video/mp2t), .rar 与 .7z (经 x-rar-compressed 里的 compressed). 输入 ts 返回 8 行, .docx, .xlsx 与 .pptx 也出现在结果里, 因为它们 Office 类型字符串的尾部是 formats.

.ts 冲突与 16 个共享类型

.ts 的冲突是全表唯一: 它返回 video/mp2t (MPEG 传输流, 归 Video) 和 text/typescript (归 Application), 这正是 125 行只覆盖 124 个扩展名的原因. 16 个类型被多个扩展名共享: text/plain 覆盖 5 个 (.txt, .ini, .cfg, .log, .env), text/javascript 覆盖 4 个 (.js, .jsx, .mjs, .cjs), image/jpeg 覆盖 2 个. 最长的类型是 .pptx 的 73 个字符, 最短的只有 8 个 (text/css, text/xml, text/csv). 图片文件的问题常是尺寸与格式, 图片信息查看器 可以给出答案; 用图片压缩器从 png 重编码成 webp 后, 必须声明的类型也随之改变.

43 个未注册的 x- 厂商类型

125 行中有 43 行使用 x- 厂商前缀: video/x-matroska, application/x-rar-compressed, image/x-icon, text/x-sql. 它们从未在 IANA 注册, 却是事实标准, 每个浏览器与服务器都遵守, 而已注册的核心 (image/png, video/mp4, application/json) 保持稳定. 当扩展名说谎时, 答案在字节里: Hex UTF-8 Base64 转换器 显示能揭示真实容器的魔数.

类型字符串用在哪里

拿到字符串之后, 它要进入服务器配置, API 头或 data URI. Base64 编解码器 构造 data:image/png;base64 这样的 URI, 类型前缀直接来自这张表. CSV 转 JSON 把导出的 mime-types.csv 变成代码可用的 JSON 映射. JSON 格式化 校验随 Content-Type application/json 发出的载荷. 网页默认类型 text/html 那一侧, 见HTML 格式化指南.

相关工具

常见问题

.ts 为什么返回两个不同的 MIME 类型?

因为 .ts 指两种文件族: 广播播放器用的 MPEG 传输流 (video/mp2t, Video) 和 TypeScript 源码 (text/typescript, Application). 表中两条记录都在, 搜索都会返回, 由你按项目上下文选择. 这是唯一重复的扩展名, 所以 125 行只覆盖 124 个不同扩展名.

搜索 image 为什么返回 19 行, 而 Image 分类只有 16 条?

因为搜索匹配的是扩展名或 MIME 字符串的子串, 不是分类. 除 16 条 Image 之外, .svg (image/svg+xml) 归在 Text, .dmg (application/x-apple-diskimage) 与 .iso (application/x-iso9660-image) 归在 Application, 而这 3 条额外记录的类型字符串都包含 image 这个词. 19 行是按字符串内容数出来的准确数字.

CSV 导出具体做什么?

它把当前筛选后的视图下载为 mime-types.csv, 带 3 列表头 (Extension, MIME Type, Category), 每条可见记录一行. 选 All 且搜索为空时就是 125 行. 导出在浏览器内构建 text/csv Blob, 不上传任何东西, 内网或合规审查场景都可以放心使用.

MIME 类型里的 x- 前缀是什么意思?

它标记厂商专有或未注册的类型. 125 行中有 43 行使用它: video/x-matroska, application/x-rar-compressed, image/x-icon. 这些类型从未走 IANA 注册流程, 但每个浏览器与服务器都遵守, 可以放心使用. 能选择时, 优先用已注册类型, 比如 image/png 或 video/mp4.

这张表包含所有扩展名吗?

不包含. 它只有 125 行, 对应 124 个扩展名, 覆盖常见网页资源. .mpg (MPEG-1 程序流) 不在表里, .m3u8 却在, .svg 也归在 Text 而不是 Image. 遇到表里没有的扩展名, 先查 IANA 注册表或你框架的文件映射, 不要猜.

相关文章