暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

IT小百科:MIME Type

整码阁 2021-05-07
1573

开发小伙伴经常会见到text/html、application/json等类型定义,这都叫做媒体类型,翻译自Media Type 或 MIME type。本文就来说说这个MIME。

1. MIME前身

  • 曾经有一个叫做ARPA互联网文本消息(ARPA Internet Text Messages)的标准,它于1982年定义在RFC 822标准中,描述电子邮件的文本消息语法,但仅支持US-ASCII编码;
  • 它有一个有名的同年生兄弟RFC 821,叫做简单邮件传输协议(Simple Mail Transfer Protocol - SMTP),它旨在提供稳定的邮件收发模型,其中就使用RFC 822定义的文本消息语法作为邮件内容的语法;

2. MIME诞生

  • RFC 821定义的SMTP仅支持US-ASCII编码的文本邮件,随着互联网的高速发展,它已经无法满足人们发送多媒体消息的迫切需求;
  • 贝尔通信在1991年提议新的标准,IETF在1996年正式发布MIME系列标准,由五个标准组成,依次是RFC 2045、RFC 2046、RFC 2047、RFC 2048和RFC 2049;
  • MIME是Multipurpose Internet Mail Extensions的首字母缩写,叫做多用途互联网邮件扩展,是RFC 822的升级版;
  • MIME主要解决以下问题:

  1. 文本消息支持更多字符集,而不仅仅是US-ASCII;
  2. 支持非文本消息,即二进制附件,如可执行文件、图片、音视频等;
  3. 支持多种内容类型(content-type)和多类型混合(multi-part)消息;

  • MIME的header包括MIME-Version、Content-Type、Content-Transfer-Encoding、Content-ID和Content-Description:

  1. MIME-Version是固定值1.0;
  2. Content-Type定义媒体类型(MIME Type/Media Type),如text/html;
  3. Content-Transfer-Encoding定义字符集;
  4. Content-ID和Content-Description是可选字段;

3. MIME Type

  • MIME Type是MIME标准的一部分,定义在标准RFC 2046中,叫做媒体类型,或Media Type,用于指定内容类型(Content-Type);
  • MIME Type的格式为<Type>/<Subtype>,例如text/html,text/plain;
  • MIME Type列表由IANA(Internet Assigned Numbers Authority)维护和管理,新提交的MIME Type由IANA审核;
  • 存在非IANA的MIME Type,例如application/x-director,前缀x表示未在IANA注册,director表示Adobe Shockwave Player文件。还有image/vnd.dxf,vnd表示vendor特有的MIME Type,dxf是AutoCAD文件;

4. 常见的MIME Type

  • IANA维护完整的MIME类型列表:https://www.iana.org/assignments/media-types/media-types.xhtml;
  • 开发中常见的包括:text/html, text/css, application/json, application/javascript, application/zip, application/http, application/xml, font/woff, image/png, video/H264等,涵盖网络传输的各种文件类型;

5. MIME Type应用

  • MIME Type除用于邮件内容增强,更广泛应用在Web开发,用于服务器和浏览器之间的内容交换,以Java EE Servlet为例。
  • Servlet通过设置Context Type,告诉浏览器从服务器返回消息的类型和字符集,如下代码:

response.setContentType("text/html; charset=UTF-8");


你明白了吗?

文章转载自整码阁,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论