ToolAct工具行动

MIME 类型查询

快速查询文件扩展名对应的 MIME 类型,支持搜索和分类筛选

115 个类型

文档(17)

.pdf

application/pdf

.doc

application/msword

.docx

application/vnd.openxmlformats-officedocument.wordprocessingml.document

.xls

application/vnd.ms-excel

.xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

.ppt

application/vnd.ms-powerpoint

.pptx

application/vnd.openxmlformats-officedocument.presentationml.presentation

.txt

text/plain

.rtf

application/rtf

.odt

application/vnd.oasis.opendocument.text

.ods

application/vnd.oasis.opendocument.spreadsheet

.odp

application/vnd.oasis.opendocument.presentation

.csv

text/csv

.json

application/json

.xml

application/xml

.html

text/html

.htm

text/html

图片(15)

.jpg

image/jpeg

.jpeg

image/jpeg

.png

image/png

.gif

image/gif

.webp

image/webp

.svg

image/svg+xml

.ico

image/x-icon

.bmp

image/bmp

.tiff

image/tiff

.tif

image/tiff

.avif

image/avif

.heic

image/heic

.heif

image/heif

.psd

image/vnd.adobe.photoshop

.raw

image/raw

音频(10)

.mp3

audio/mpeg

.wav

audio/wav

.ogg

audio/ogg

.m4a

audio/mp4

.flac

audio/flac

.aac

audio/aac

.wma

audio/x-ms-wma

.aiff

audio/aiff

.mid

audio/midi

.midi

audio/midi

视频(12)

.mp4

video/mp4

.webm

video/webm

.avi

video/x-msvideo

.mov

video/quicktime

.wmv

video/x-ms-wmv

.flv

video/x-flv

.mkv

video/x-matroska

.m4v

video/mp4

.mpeg

video/mpeg

.mpg

video/mpeg

.3gp

video/3gpp

.m2ts

video/mp2t

压缩包(9)

.zip

application/zip

.rar

application/vnd.rar

.7z

application/x-7z-compressed

.tar

application/x-tar

.gz

application/gzip

.bz2

application/x-bzip2

.xz

application/x-xz

.iso

application/x-iso9660-image

.dmg

application/x-apple-diskimage

代码(31)

.js

application/javascript

.mjs

application/javascript

.ts

application/typescript

.tsx

application/typescript

.jsx

application/javascript

.css

text/css

.scss

text/x-scss

.sass

text/x-sass

.less

text/x-less

.py

text/x-python

.java

text/x-java

.c

text/x-c

.cpp

text/x-c++

.h

text/x-c

.hpp

text/x-c++

.cs

text/x-csharp

.go

text/x-go

.rs

text/x-rust

.rb

text/x-ruby

.php

text/x-php

.swift

text/x-swift

.kt

text/x-kotlin

.sql

application/sql

.sh

application/x-sh

.bash

application/x-sh

.yaml

application/x-yaml

.yml

application/x-yaml

.toml

application/toml

.ini

text/x-ini

.vue

text/x-vue

.svelte

text/x-svelte

字体(5)

.woff

font/woff

.woff2

font/woff2

.ttf

font/ttf

.otf

font/otf

.eot

application/vnd.ms-fontobject

其他(16)

.exe

application/vnd.microsoft.portable-executable

.msi

application/x-msi

.apk

application/vnd.android.package-archive

.ipa

application/octet-stream

.deb

application/vnd.debian.binary-package

.rpm

application/x-rpm

.jar

application/java-archive

.war

application/java-archive

.swf

application/x-shockwave-flash

.crx

application/x-chrome-extension

.xpi

application/x-xpinstall

.torrent

application/x-bittorrent

.ics

text/calendar

.vcf

text/vcard

.epub

application/epub+zip

.mobi

application/x-mobipocket-ebook

什么是 MIME 类型?

MIME 类型(Multipurpose Internet Mail Extensions)是一种互联网标准,用于表示文档、文件或字节流的性质和格式。浏览器和服务器使用 MIME 类型来确定如何处理接收到的内容。例如,当浏览器收到 image/jpeg 类型时会显示图片,收到 application/pdf 时可能会打开 PDF 预览。正确设置 MIME 类型对于 Web 应用的正常运行至关重要。

使用方法

快速参考

  1. 使用搜索框查找特定扩展名或 MIME 类型
  2. 点击分类标签按文件类型筛选
  3. 点击 "Ext" 或 "MIME" 按钮复制对应内容
  4. 浏览分类快速查找:文档、图片、音频、视频、压缩包、代码、字体等

查找注意事项

  • MIME 类型是服务器、浏览器和应用程序共同遵循的约定,仅凭文件扩展名无法证明实际内容。
  • 上传或安全检查时,建议同时校验声明的 MIME 类型和文件签名(magic number)。

使用场景

按扩展名查询 MIME 类型在文档、图片、音频、视频、压缩包、代码文件、字体等常见文件类型中搜索扩展名或 MIME 字符串。当选择「全部」筛选时,结果按分类分组,比单张平铺表格更方便浏览。全文搜索同时匹配扩展名(png、webp、json)和 MIME 值(image/png、application/json),无论从哪个入口查找都能找到。
复制上传和响应头的值每张卡片都可以复制扩展名或 MIME 值,方便配置文件上传 accept 列表、Content-Type 响应头、存储元数据、CDN 规则或后端验证映射表。参考数据嵌入在页面中,无需联网即可使用,适合在没有外网的内网笔记本上查询。复制按钮写入剪贴板的值不带末尾空格或引号。
构建文件功能时检查分类覆盖度分类筛选和结果计数能帮助产品和工程团队快速了解当前功能识别了哪些文件家族。它是常见格式的快速参考,而非完整的标准注册表。压缩包或字体分类中发现的覆盖缺口,往往对应着某个功能在静默拒绝上传的问题。
为 REST API 响应构建 Content-Type 头将 application/vnd.api+json 或 application/x-ndjson 等精确值复制到 response.setHeader() 调用中。通过分类筛选交叉检查不常见的后缀,避免将 JSON-LD、GeoJSON 或 WebAssembly 响应误标为纯文本。RFC 6839 定义的 +json 和 +xml 厂商后缀携带了关于载荷结构的有意义信息,写错通常会导致客户端解析器报错。
覆盖 IANA 注册、x- 前缀实验类型和内容嗅探IANA 注册表是 MIME 类型的权威来源,但并非所有实际可用的值都在其中:实验性条目使用 x- 前缀(如 application/x-tar、application/x-rar-compressed),从未被正式标准化,却广泛出现在 nginx 和 Apache 的 mime.types 文件中。从安全角度看,内容嗅探(读取文件头部的魔数字节)比信任声明的 Content-Type 头更可靠,现代浏览器通过 X-Content-Type-Options: nosniff 禁用遗留嗅探回退。先用查询表找到头值,再在服务端验证实际字节后才提供文件服务。

技术原理

MIME 类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)是数据格式的标准化标识符,最初在 RFC 2045/RFC 2046 中为电子邮件附件定义,后被 HTTP(RFC 7231 §3.1.1.5)采纳用于 Web 内容协商。MIME 类型的结构为 type/subtype——type 声明大类(text、image、audio、video、application、multipart、font、model),subtype 指定具体格式(如 text/html、image/png、application/json)。可选参数以分号分隔(text/html; charset=utf-8)。 IANA(互联网号码分配机构)在 iana.org/assignments/media-types 维护官方 MIME 类型注册表。注册遵循 RFC 6838,需要提交规范文档、安全注意事项和互操作性说明。未注册类型可使用 x- 前缀(如 application/x-tar)作为实验性或厂商特定格式的约定,但 RFC 6648 建议避免使用 x- 前缀,改为正式注册。 在 HTTP 中,Content-Type 头告知客户端如何解读响应体。服务器返回 Content-Type: image/svg+xml 会触发浏览器的 SVG 渲染器;返回 Content-Type: application/octet-stream 则触发下载提示,因为浏览器无法判断格式。浏览器还会利用 MIME 类型信息进行「内容嗅探」——当服务器省略 Content-Type 或发送通用类型时,浏览器可能检查响应的前几个字节(魔数字节)来猜测实际格式。此行为受 X-Content-Type-Options: nosniff 头控制,该头禁用嗅探并要求服务器声明正确的类型。 对于文件上传,Accept 头告知服务器客户端期望的 MIME 类型,而 input 元素的 accept 属性限制文件选择器为特定类型(如 accept="image/png, image/jpeg")。服务端应对上传文件同时验证其声明的 MIME 类型和文件签名(魔数字节),因为两者单独都不可信——一个名为 image.png 且 Content-Type 为 image/png 的文件可能包含可执行代码。本工具作为查询给定文件扩展名对应标准 MIME 类型的参考,覆盖八大类 100 多种常见格式。

  • RFC 2046 结构:type/subtype——type 表示内容大类,subtype 表示具体格式;可选参数以分号分隔(text/html; charset=utf-8),规范中不区分大小写,但惯例使用小写
  • IANA 注册(RFC 6838):新媒体类型需提交规范文档、安全注意事项和互操作性说明——审核流程确保类型在进入注册表前文档完备且无冲突
  • HTTP Content-Type 头:服务器声明响应体的 MIME 类型;浏览器据此选择合适的渲染器(HTML 解析器、图片解码器、PDF 阅读器)或触发下载——Content-Type 错误是「文件被下载而非显示」问题的最常见原因
  • 内容嗅探与 X-Content-Type-Options:当 Content-Type 缺失或为通用类型时,浏览器可能检查魔数字节猜测格式——X-Content-Type-Options: nosniff 禁用此行为并要求精确匹配 Content-Type,这是安全最佳实践
  • application/octet-stream:通用二进制回退类型——浏览器将其视为不透明流并触发下载,是服务器无法判断格式时最安全的默认值,但会阻止本可在浏览器中预览的内容
  • 文件上传验证:input 的 accept 属性在客户端过滤文件选择器,但服务端验证必须同时检查声明的 Content-Type 和文件的魔数字节——扩展名、MIME 类型和文件签名之间的不一致是恶意上传的危险信号
  • 厂商特定和实验类型:x- 前缀约定(application/x-tar、video/x-matroska)早于正式注册流程——RFC 6648 建议尽可能迁移到正式的 IANA 注册类型,但许多仍在广泛使用

示例

Nginx mime.types 配置

types {
  text/html             html htm;
  image/jpeg            jpg jpeg;
  application/pdf       pdf;
  application/javascript js;
}

说明: 每一行将一个 MIME 类型映射到一个或多个文件扩展名,Nginx 会在 Content-Type 响应头中返回该类型
IANA: https://www.iana.org/assignments/media-types/ 维护官方注册表

HTTP Content-Type 响应头

Content-Type: application/json; charset=utf-8

说明: charset 是可选的,但对 text/* 和 application/json 建议带上,客户端依据它正确解码响应体
RFC: RFC 7231 第 3.1.1.5 节定义了 Content-Type 头的语义
MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type

浏览器 Blob 构造函数

const blob = new Blob([data], { type: 'application/pdf' });
const url  = URL.createObjectURL(blob);

说明: blob 后续被下载或上传时,type 会成为 Content-Type,建议指定具体子类型,避免落到 application/octet-stream
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob 介绍 type 参数

按类别划分的常见 MIME 类型

Text:       text/plain, text/html, text/css, text/javascript, text/markdown
Image:      image/jpeg, image/png, image/gif, image/webp, image/svg+xml
Audio:      audio/mpeg, audio/wav, audio/ogg, audio/aac
Video:      video/mp4, video/webm, video/ogg
Application: application/json, application/pdf, application/xml, application/zip

IANA 在 Media Types 注册表中按顶级类型对它们进行分类

常见问题

什么是 MIME 类型,为什么它重要?

MIME 类型(多用途互联网邮件扩展,又称 media type)是形如 text/html、image/png 或 application/json 的简短标签,用来告诉接收端如何解读字节流。浏览器、邮件客户端、文件上传组件和 API 都依据它来决定渲染、下载、解析或拒绝内容。

MIME 类型和文件扩展名有什么区别?

扩展名只是文件名的一部分,是单纯的命名约定。MIME 类型是通过网络在 Content-Type 头部传输的。两者通常一致(.png ↔ image/png),但服务器可以为任意扩展名返回任意 MIME 类型,浏览器更信任头部而不是扩展名。保持二者一致是好习惯;仅依赖扩展名做安全控制则是漏洞。

application/octet-stream 是什么意思?

它是通用的「任意二进制数据」MIME 类型。浏览器收到该类型时会触发下载,而不是尝试渲染。服务器无法识别格式时通常会回退到这个类型,往往意味着 MIME 映射缺失或配置错误。能确定具体类型时,应尽量用更准确的 MIME。

可以用 Content-Type 来校验上传文件吗?

不能仅靠它。任何人都可以上传可执行文件却声明为 image/png。务必检查文件实际字节(魔数,PNG 头 89 50 4E 47、PDF 头 %PDF-、ZIP 头 PK),同时校验扩展名、在服务端使用白名单、限制文件大小。浏览器推断的 MIME 只能作为提示,而非证据。

为什么下载时保存的文件名或扩展名不对?

浏览器按 Content-Disposition 头、URL 路径、MIME 类型这一顺序确定保存名。如果服务器把 PDF 下载返回为 text/html,浏览器可能会把它存成 .html。设置 Content-Disposition: attachment; filename="name.pdf" 并搭配正确的 application/pdf MIME 类型即可避免此类问题。

如何为自定义或冷门格式找到合适的 MIME 类型?

首选查询 IANA 媒体类型注册表(iana.org/assignments/media-types)。对于未注册或厂商专属格式,惯例是使用 application/vnd.* 或 application/x-*(如 application/vnd.api+json、application/x-7z-compressed)。在自创新类型之前,先尝试匹配最接近的标准类型。

为什么 .json 和 .js 的 MIME 类型不同?

JSON 是数据,使用 application/json。JavaScript 是可执行代码,作为 text/javascript 或 application/javascript 提供(RFC 9239 推荐使用 text/javascript)。混淆它们会出问题:script 标签拒绝执行 application/json,部分服务器在只接受 text/javascript 时也会拒绝 application/javascript。