跳到正文

MIME 类型查询

MIME Type Lookup

由扩展名查 MIME 类型或反过来查,也能直接从文件字节嗅探类型。

一个页面里两种查询:一个扩展名映射到什么 MIME 类型,以及按前几个字节看一个文件实际上是什么。这两个答案可以老老实实地互相矛盾,矛盾时字节是对的。

🔒 完全在你的浏览器里运行mimecontent-typelookup

按扩展名或类型查

MIME 类型扩展名来源
application/geo+json.geojsoniana
application/hjson.hjson约定俗成
application/json.json .mapiana
application/json5.json5约定俗成
application/jsonml+json.jsonmlapache
application/ld+json.jsonldiana
application/manifest+json.webmanifestiana
application/ubjson.ubj约定俗成
application/x-ipynb+json.ipynb约定俗成
application/x-web-app-manifest+json.webapp约定俗成
model/gltf+json.gltfiana

嗅探文件真正的类型

拖进任意一个文件

只在这个标签页里读前 4 KB。

这张表是 mime-db@1.54.0,也就是 IANA 登记表加上 Apache 和 nginx 的映射,服务器实际发的就是这些,再补上韩国的 Hancom 格式并标成约定俗成。扩展名和字节完全可能诚实地对不上:扩展名是起名的习惯,文件到底是什么由魔数说了算。

怎么用

  1. 输入扩展名或类型

    搜索是双向的——`pdf` 找到 `application/pdf`,`application/json` 找到映射到它的扩展名。`hwp` 这样的韩国格式也在表里。

  2. 或者把文件本身拖进来

    只在这个标签页里读前 4 KB,和已知的魔数比对。这足以识别大多数容器和图片格式。

  3. 比较两个答案

    字节说是 PNG 的 `.jpg` 是改了名的文件;字节说是 ZIP 的 `.csv` 是别人改了名的 `.xlsx`。这种不一致通常就是有人来这个页面的原因。

常见问题

为什么我的文件没有签名?

要么它是文本格式——CSV、JSON、HTML 和纯文本根本没有魔数——要么它是这个嗅探器不覆盖的格式。表里是常见格式,不是所有注册过的格式。

为什么两种不同的类型共用一个扩展名?

因为各个注册表意见不一。这张表把 IANA 注册表和 Apache、nginx 的映射——服务器实际发送的东西——合在一起,所以你既能看到官方类型,也能看到你的服务器会用的那个。

扩展名和 MIME 类型哪个是权威的?

都不完全是。扩展名是用户能改的命名约定;`Content-Type` 头是服务器做出的、可能出错的声明。魔数是三者中唯一描述文件本身的——所以浏览器才会嗅探。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。