我一直在阅读关于如何构建插件的文章,其中一直在讨论这个“MIME类型”。我已经试着看看它,知道它是多用途互联网邮件扩展(MIME),但没有适当的解释它是如何与浏览器插件,因为在我需要知道关于它构建插件,提供,请解释清楚和简单的话。是什么?为什么插件有MIME类型?


我不可能比维基百科在媒体类型中更好地解释它:

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

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


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

因此,如果服务器说“这是文本/html”,客户端就会说“啊,这是html文档,我可以在内部渲染它”,而如果服务器说“这是应用程序/pdf”,客户端就会说“啊,我需要启动用户安装的FoxIt pdf阅读器插件,这个插件已经注册为应用程序/pdf处理程序了。”

最常见的是在HTTP消息的头部(描述HTTP服务器响应的内容或请求中post的数据格式)和电子邮件头部(描述消息格式和附件)中找到它们。


MIME代表多用途互联网邮件扩展。MIME类型是Internet上对文件类型进行分类的一种标准方法。像Web服务器和浏览器这样的Internet程序都有一个MIME类型列表,这样它们就可以以相同的方式传输相同类型的文件,无论它们运行在什么操作系统中。

MIME类型有两部分:类型和子类型。它们之间用斜杠(/)隔开。例如,Microsoft Word文件的MIME类型是application,子类型是msword。总的来说,完整的MIME类型是application/msword。

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


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

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

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

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

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

MIME子类型的x前缀仅仅意味着它是非标准的。 vnd前缀意味着MIME值是特定于供应商的。


类比解释

场景1:

想象有人给你寄了这封信:

嗨,你好吗?印度人民党内部人士的最新报道/贿赂是什么?

这是什么意思?考虑一下所涉及的步骤:

首先,确定语言.....(是泰米尔语吗?)....识别语言需要大量的计算能量:你要检查世界上所有的语言吗? 只有在识别语言之后,你才能解码。

场景2:

语言:马拉雅拉姆语(见翻译链接) 嗨,你好吗?印度人民党内部人士的最新报道/贿赂是什么?

现在,语言是预先确定的(马拉雅拉姆语,而不是泰米尔语),并写在信上。工作已经完成了一半,现在可以继续解码了。

把这个类比与HTML联系起来

因为有不同类型的数据格式,通过互联网发送:预先指定数据类型将允许相应的客户端正确地解释和呈现数据,而很少进行计算工作。

记住,计算机使用1和0进行通信。这是当html被发送给你时发生的事情:

Mime类型:mp3 1001010101.... Mime类型:PDF 1001010101....

一旦你知道了mime类型,你就可以播放音频,并查看PDF。


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

然而,MIME类型并不仅限于HTTP。

顾名思义,MIME代表多用途互联网邮件扩展。最初,SMTP只支持ascii编码。然而,还需要更多。我们可以使用MIME在正在传输或接收的内容上添加标签。