MIME
一、定义
MIME (Multipurpose Internet Mail Extensions),多用途互联网邮件扩展类型。
二、产生原因
传统的电子邮件协议规定,电子邮件只能使用ASCII字符,这致使:
- 非英文字符无法显示
- 二进制文件(如图片)无法显示
- 电子邮件不能有附件
为了使邮件可以传输多种信息格式和内容,提出了MIME。
三、内容
MIME对传统电子邮件的扩展,表现在它在信件头部分添加了几条语句,主要有三条:
-
MIME-Version: 1.0
这条语句是必须的,而且1.0这个版本值是不变的,即使MIME本身已经升级了好几次。
-
Content-Type: text/plain; charset=“ISO-8859-1”
-
Content-Type
表明信息类型,缺省值为" text/plain"。它包含了主要类型(primary type)和次要类型(subtype)两个部分,两者之间用"/"分割。主要类型有9种,分别是application、audio、example、image、message、model、multipart、text、video。
-
charset
表明编码类型,缺省值是ASCII,其他可能值有"ISO-8859-1"、“UTF-8”、"GB2312"等等。
-
-
Content-transfer-encoding: base64
表明编码转换的方式。
缺省值是"7bit",其他四种为"7bit"、“8bit”、“binary”、“quoted-printable"和"base64”
其中,"base64"是MIME提供的一种
四、功能
在邮件协议和HTTP协议中,标注传输数据的格式,帮助邮件系统或者浏览器识别返回的是什么内容的数据,应该如何打开,如何显示。
五、使用
-
注册
可以根据自己的需要向IANA注册MIME(RFC2048),包括:
- media types
- external body access types
- content-transfer-encodings
-
邮件协议
-
HTTP协议
常见问题
有文件后缀名,为什么还需要MIME?
文件扩展名是DOS等操作系统用来标志文件格式的一种机制,用于指示操作系统
,打开文件的方式
。这种指示不是强制的,即用户可以通过任何方式,通知操作系统打开文件。
MIME则是用在邮件
系统和浏览器
中,指示打开文件的方式
。
对于服务器上的静态网页,网址对应的文件类型和MIME type类型一致,但是
- 动态网页中,
网址
和文件名
的关系也不再紧密
,一张图片的网址所返回的MIME type是固定的(比如image/jpeg),但它的本体对应的可能是服务器上的一个文件,也可能是缓存中的一段数据,还可能是数据库中的一个字段,甚至是程序代码动态生成的图像; - 随着restful风格的URL的流行,网址中已经
看不到文件名
的踪影。
因此,需要MIME对网络中传输的文件类型进行说明,以指示打开方式。
参考文献
https://www.w3school.com.cn/media/media_mimeref.asp MIME参考-W3Cschool
https://www.zhihu.com/question/60495696/answer/204530120 既然有文件后缀名,为何还需要MIME类型? - 知乎
ruanyifeng.com/blog/2008/06/mime.html MIME笔记-阮一峰
官方MIME规范
Internet工程任务组(IETF)在以下文档中提供了有关MIME格式的确定信息: