什么是 MIME 类型?

Posted

技术标签:

【中文标题】什么是 MIME 类型?【英文标题】:What is a MIME type? 【发布时间】:2011-04-19 04:56:43 【问题描述】:

我一直在阅读有关如何构建插件的信息,并且在其中不断讨论这种“MIME 类型”。我试图调查它并知道它是多用途 Internet 邮件扩展 (MIME),但没有提供关于它与浏览器插件的关系的适当解释,就像我在构建插件时需要了解的那样,请用简单明了的语言解释。它是什么?为什么插件有 MIME 类型?

【问题讨论】:

【参考方案1】:

MIME 类型是用于标识数据类型的标签。使用它是为了让软件知道如何处理数据。它在 Internet 上的用途与在 Microsoft Windows 上的文件扩展名相同。

因此,如果服务器说“这是 text/html”,客户端可以执行“啊,这是一个 HTML 文档,我可以在内部渲染它”,而如果服务器说“这是应用程序/pdf”,客户端可以go "啊,我需要启动用户已安装的 FoxIt PDF Reader 插件,该插件已将自身注册为应用程序/pdf 处理程序。"

您最常在 HTTP 消息的标头(描述 HTTP 服务器响应的内容或在请求中发布的数据的格式)和电子邮件标头(描述邮件格式和附件)。

【讨论】:

这可以作为 IP 级别端口的隐喻吗?【参考方案2】:

MIME 代表 多用途 Internet 邮件扩展。 MIME 类型形成了一种在 Internet 上对文件类型进行分类的标准方法。 Web 服务器和浏览器等 Internet 程序都有一个 MIME 类型列表,因此它们可以以相同的方式传输相同类型的文件,无论它们在什么操作系统中工作。

MIME 类型有两部分:typesubtype。它们由斜线 (/) 分隔。例如,Microsoft Word 文件的 MIME 类型是 application,子类型是 msword。总之,完整的 MIME 类型是 application/msword。

虽然有完整的 MIME 类型列表,但它没有列出与文件关联的扩展名,也没有列出文件类型的描述。这意味着,如果您想找到某种文件的 MIME 类型,可能会很困难。有时您必须查看列表并猜测您关注的文件的 MIME 类型。

【讨论】:

现在有来自 MDN 的带有 MIME 类型和扩展的 a list。你也可以send a PR来改进它。【参考方案3】:

MIME 代表 多用途 Internet 邮件扩展。这是一种根据文件的性质和格式识别 Internet 上文件的方法。

例如,使用在 HTTP 响应中定义的 Content-type 标头值,浏览器可以打开具有适当扩展名/插件的文件。

Internet 媒体类型(也称为 Content-type)与 MIME 类型相同。 MIME 类型最初是为使用 SMTP 协议发送的电子邮件创建的。如今,该标准被用于许多其他协议,因此新的命名约定“Internet Media Type”。

MIME 类型是由两部分组成的字符串标识符:typesubtype

“类型”是指许多相互密切相关的 MIME 类型的逻辑分组;它只不过是一个高级类别。 “子类型”特定于“类型”中的一种文件类型。

MIME 子类型的 x- 前缀仅表示它是非标准的。vnd 前缀表示 MIME 值是特定于供应商的。

Source

【讨论】:

【参考方案4】:

类推

想象一下,您给笔友写了一封信,但每次都用不同的语言写。

例如,您可能选择用泰米尔语写第一个字母,用德语写第二个字母等等。

为了让您的朋友翻译这些信件,您的朋友需要:

(i) 识别语言类型,以及 (ii) 然后进行相应的翻译。 但是识别一种语言并不是那么容易——它需要大量的计算能量。 如果您将要发送的语言写在信的顶部上会更容易 - 这将使您的朋友的生活更轻松。

那么,为了突出显示您所写的语言,您只需在信函顶部标注语言(例如“法语”)。

您的朋友如何知道或能够阅读或区分您在信函顶部指定的不同语言类型? 这很简单:您事先同意这一点。

用 HTML 重新类比

由于需要通过 Internet 发送不同类型的数据格式,因此预先指定数据类型将允许相应的客户端正确解释并相应地向用户呈现数据。

为什么我们有不同的数据格式?

主要是因为它们服务于不同的目的并具有不同的能力。

例如,PDF 格式与图片格式非常不同 - 这也与声音格式不同 - 两者的用途非常不同,因此在通过 Internet 发送之前的编写方式也不同。

【讨论】:

支持泰米尔语:)【参考方案5】:

我无法比***在 Media type 中更好地解释它:

除了电子邮件应用程序之外,Web 浏览器还支持各种 MIME 类型。这使浏览器能够显示或输出非 HTML 格式的文件。

换句话说,它帮助浏览器(或内容消费者,因为它可能不仅仅是一个浏览器)确定他们将要消费的内容;这意味着浏览器可能能够决定使用正确的插件来显示内容,或者媒体播放器可能能够加载正确的编解码器或插件。

【讨论】:

【参考方案6】:

在客户端-服务器模型的上下文中考虑 MIME 很有用。客户端和服务器通过所谓的HTTP 协议进行通信。在 HTTP 请求或响应中,我们可以有一个主体。 Content-Type 或 MIME 类型指定了正文的类型,例如 text/javascript 或音频、视频等其他内容。

但是,MIME 类型不仅限于 HTTP。

顾名思义,MIME 代表多用途 Internet 邮件扩展。最初,SMTP 仅支持 ASCII 编码。但是,需要更多。我们可以使用 MIME 为正在传输或接收的内容贴上标签。

【讨论】:

以上是关于什么是 MIME 类型?的主要内容,如果未能解决你的问题,请参考以下文章

.asp在IIS7中的mime类型是啥??

MIME 类型到底是啥 [关闭]

为啥有这么多 mime 类型?

http 协议中的 MIME类型 是什么?

MIME类型是啥意思啊

如何在IIS添加MIME扩展类型