早期互联网邮件仅支持 ASCII 码,因此消息正文无法以所有客户端都同意的方式携带图片或文件。MIME(多用途互联网邮件扩展)就是为了改变这一点而设计的。

MIME 起源于卡内基梅隆大学的 Andrew 消息系统,作为一种跨平台数据格式,由共同创建者 Nathaniel Borenstein 等人于 1992 年 6 月首次规范为 RFC 1341;当前版本是 1996 年的 RFC 2045/2046/2047 系列。

它的设计刻意精简:Content-Type 头指明部分的类型,Content-Transfer-Encoding 将二进制转换为 ASCII,multipart 边界使一个正文可以包含多个部分。消息仍然像以前一样通过 SMTP 传输。

由于扩展基于头部且是可选的,每个客户端可以自行安排时间添加支持,MIME 迅速成为发送附件和富文本邮件的标准方式,并后来成为 Web 上 content-type 概念的基础。

添加一个描述正文类型的头部

Content-Type 头告诉接收者部分是什么,以便按规则解码

base64 允许任意二进制通过仅 ASCII 的传输

Multipart 边界让一条消息同时包含文本和附件

由于更改仅在头部级别,采用无需统一的切换

要扩展一个广泛部署的系统,添加一个小的可选结构,而不是新系统:一个描述负载类型的头部让每个实现者可以自行采用。

MIME 成为电子邮件附件的通用容器,也是 Content-Type 头借鉴其思想来描述 Web 资源的原因。原始规范在呈现方面不足,因此在 RFC 2183 中添加了 Content-Disposition;实际上,许多客户端仍然根据自己的逻辑选择显示哪个部分,而不是遵循标准的建议。

从这里,追溯依据

参考来源

  1. Multipurpose Internet Mail Extensions (MIME) Part One (RFC 2045) IETF / rfc-editor.org · rfc-editor.org
  2. MIME — Wikipedia Wikipedia · en.wikipedia.org