媒体类型(MIME Type)
媒体类型(通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型)是一种标准(不是个人指定的),用来表示文档、文件或字节流的性质和格式;
它是经过互联网(IETF)组织协商,以 RFC(是一系列以编号排定的文件,几乎所有的互联网标准都有收录在其中) 的形式作为建议的标准发布在网上的,在IETF RFC 6838中进行了定义和标准化;
大多数的 Web 服务器和用户代理都使用MIME类型(而不是文件扩展名)来确定如何处理实体主体(Email 附件的类型也是通过 MIME Type 指定的),因此在报文头中(通过 Content-Type)添加正确的 MIME类型非常重要;
如果配置不正确,浏览器、服务器可能会曲解文件内容,网站将无法正常工作,并且下载的文件也会被错误处理;
MIME的组成结构非常简单,由主类型与子类型两个字符串中间用'/'分隔而组成,不允许空格存在;
type/subtype
解析:
- type是指主类型;subType为子类型;即type 表示可以被分为多个子类的独立类别(即大类),subtype 表示细分后的每个类型(大类下的子类);目前已知的MIME中有以下已注册的type,前面的五种为基本的独立类型:
类型 | 描述 |
text | 表明文件是普通文本,理论上是人类可读; |
image | 表明是某种图像;不包括视频,但是动态图(比如动态gif)也使用image类型 |
audio | 表明是某种音频文件; |
video | 表明是某种视频文件; |
application | 表明是某种二进制数据; |
multipart | multipart/form-data,multipart/byteranges |
font | |
example | |
message | |
model |
相应type的subtype和MIME示例:
类型 | 典型示例 |
text | text/css text/javascript text/html : HTML格式 text/plain :纯文本格式 text/xml : XML格式 对于text文件类型若没有特定的subtype,就使用 text/plain;纯文本,浏览器中会直接以文本形式展示出来; |
image | image/gif :gif图片格式 image/jpeg :jpg图片格式 image/png:png图片格式 image/bmp, image/webp, image/x-icon, image/vnd.microsoft.icon image/svg+xml |
audio | audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav |
video | video/webm, video/ogg |
multipart | multipart/form-data:需要在表单中进行文件上传时,就需要使用该格式; multipart/byteranges |
application | application/xhtml+xml:XHTML格式 application/xml:XML数据格式 application/atom+xml:Atom XML聚合格式 application/json:JSON数据格式 application/pdf:pdf格式 application/msword:Word文档格式 application/octet-stream:二进制流数据(如常见的文件下载) application/x-www-form-urlencoded:表单提交 通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type;如果是某个客户端自己定义的格式,一般只能以 application/x- 开头; |
详细参见:媒体类型对照表 |
- 每种MIME类型都有独立的配置,我们称之为可选参数(Optional parameters),比如 text/html 可以配置 charset=UTF8,两者以分号分隔(text/html;charset=uft8);
- MIME类型对大小写不敏感,但是传统写法都是小写;
- type、subtype也可以是通配符,*/* 表示任何媒体类型,type/* 表示该类型下的所有子类型;