MIME 的故事

电子邮件系统的出现是 Internet 发展中的里程碑,电子邮件的诞生无疑给 Internet 的前进装配了高速引擎,极大的推动了 Internet 的普及和应用。

邮件协议最初设计(RFC 822)时,只支持标准的美国 ASCII 字符集。在最初小范围、纯英文环境的应用下,这套规范运行很好满足了 Internet 上的沟通交流需求。但是,随着电子邮件的应用范围的日益扩大,新的问题、新的需求不断涌现,对电子邮件系统提出了更高的要求,比如:

  • 如果邮件发送者想要用一个不同的字符集发送消息,怎么处理?
  • 如果邮件发送者不仅仅想要发送 ASCII 文本,他还想发送二进制文件、声音和动画,怎么处理?

为解决类似上述种种问题,IETF 提出了一种新的邮件消息格式,这种格式是对原有 RFC 822 的一种扩展,即 MIME。MIME 实现了邮件消息的多种字符集 (diverse charset) + 多种编码的混合编排!

MIME,全名 Multipurpose Internet Mail Extensions,即 多用途Internet 邮件扩展。MIME 提供了一种可以在邮件中附加多种不同编码文件的方法,弥补了原来的信息格式的不足。它最初只被用于电子邮件系统,目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。

现在,MIME 被应用于HTTP 协议中,使得 HTTP 传输的不仅是普通的 HTML 文本,而且可以传输多媒体数据类型;Web servers 通过 MIME 告诉 Web 浏览器,正在传输给它什么类型的材料,这样浏览器可以对传输材料正确处理。

MIME 类型是用来指定采用某种扩展名的文件用哪一种应用程序来打开。本质上,MIME 建立了文件类型打开方式之间的关联!当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。例如,.xls 扩展名的文件用Excel来打开。

随着 MIME 类型应用的广泛,MIME 已经不拘泥于浏览器接受的文件的打开方式,MIME 已成为桌面操作系统文件类型打开方式的标配,无论 Windows 系统,还是 Linux 系统桌面,都是使用 MIME 来建立文件类型与打开程序之间的自动关联。

MIME 内容类型包括两个部分,一个主类型和一个子类型。主类型和子类型用斜杠分隔,如:

  • text/html — 针对 html
  • text/plain — 针对普通文本
  • text/rtf — 针对rich text formatting

原则上,MIME 类型官方由 IANA (Internet Assigned Numbers Authority) 分配并给出。但是,很多流行的 MIME 类型并不是由 IANA 分配的(以 x- 为开头)。官方 MIME 类型列表可在如下网址查看:
https://www.iana.org/assignments/media-types/
其中,带有 vnd 前缀的都是 vendor-specific 的类型。

reference:

  1. https://www.ezloo.com/2008/10/mime.html
  2. http://blog.csdn.net/zhyhang/article/details/13006885
  3. http://blog.csdn.net/qdujunjie/article/details/8995334
  4. https://www.tutorialspoint.com/html/mime_media_types.htm

发表评论

电子邮件地址不会被公开。 必填项已用*标注