说明
多用途互联网邮件扩展
Multipurpose Internet Mail Extensions
最初的电子邮件标准 RFC 822 只支持发送 ASCII 字符文本内容,通过 MIME 这个拓展(RFC 2822),可以发送所有类型的内容。
后面的 HTTP 协议也是在 MIME 这个框架内构建的,Web 开发者比较熟悉的那几个 Content-xxx 头就是从 MIME 里面来的。
规范文件
RFC No. | Type | Title |
---|---|---|
RFC 2045 | Standards Track | Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies |
RFC 2046 | Standards Track | Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types |
RFC 2047 | Standards Track | MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text |
RFC 2048 | Best Current Practice | Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures |
RFC 2049 | Standards Track | Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples |
语法
MIME-Version: 1.0 // MIME 版本
Content-Type: [type]/[subtype]; parameter // 内容类型
Content-Transfer-Encoding: [encoding] // 内容传输编码
Content-Disposition: [disposition] // 内容配置
内容类型 Content-Type
又叫互联网媒体类型(Internet media type)或者 MIME 类型(MIME type)。
类型信息的注册事宜,由 IANA(Internet Assigned Numbers Authority)统一管理。
按照注册来源分成几种类型,只用关心标准数,这个了解一下就行了:
- 标准树
类型名 / 子类型名 [ + 后缀 ] [ ; 可选参数 ]
- 厂商树
类型名 / vnd.子类型名 [ + 后缀 ] [ ; 可选参数 ]
,例如:application/vnd.debian.binary-package - 个人树
类型名 / prs.子类型名 [ + 后缀 ] [ ; 可选参数 ]
- 未注册的 x.树
类型名 / x.子类型名 [ + 后缀 ] [ ; 可选参数 ]
常见的类型
详细类型在 IANA 官网有,链接在下面参考资料部分我贴了一个。
Type | Subtype | Description |
---|---|---|
text | plain | 文本 |
text | html | HTML |
text | xml | XML |
text | javascript | JavaScript |
text | css | CSS |
text | csv | CSV |
text | vcard | vCard 电子名片 |
image | bmp | |
image | jpeg | |
image | png | |
image | gif | |
image | webp | |
image | svg+xml | |
image | icon | |
audio | mpeg | |
audio | mp4 | |
audio | ogg | |
audio | webm | |
audio | flac | |
video | mpeg | |
video | mp4 | |
video | ogg | |
video | webm | |
application | xml | XML |
application | json | JSON |
application | ecmascript | |
application | javascript | |
application | zip | |
application | gzip | |
application | ||
application | rss+xml | |
application | atom+xml | |
application | octet-stream |
内容传输编码
编码类型主要是这几种:“7bit”,“8bit”,“binary”,“quoted-printable”,“base64”。