解法
早期互联网邮件仅支持 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;实际上,许多客户端仍然根据自己的逻辑选择显示哪个部分,而不是遵循标准的建议。
从这里,追溯依据
参考来源
- Multipurpose Internet Mail Extensions (MIME) Part One (RFC 2045) IETF / rfc-editor.org · rfc-editor.org
- MIME — Wikipedia Wikipedia · en.wikipedia.org