TOC

MIME 编码

说明

多用途互联网邮件扩展
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 pdf
application rss+xml
application atom+xml
application octet-stream

内容传输编码

编码类型主要是这几种:“7bit”,“8bit”,“binary”,“quoted-printable”,“base64”。

如果你有魔法,你可以看到一个评论框~