MIME 类型

HTTP 会给每种要通过 web 传输的对象都打上 MIME type(Multipurpose Internet Mail Extension 多用途因特网邮件扩展)

MIME类型是一种文本标记, 表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来标记

  • html => text/html
  • ascii => text/plain
  • jpg => image/jpeg

相关 RFC

  • RFC2045 - Format of Internet Message Bodies(因特网报文主体的格式)
  • RFC2046 - Media Types(媒体类型)
  • RFC2047 - Message Header Extensions for Non-ASCII Text(非ASSCII文本的报文首部扩展)
  • RFC2048 - Registration Procedures(注册过程)
  • RFC2049 - Conformance Criteria and Examples(一致性标准及实例)

结构

Content-Type: text/html; charset="utf-8"
Accept

语法

  • application/*
  • audio/*
  • chemical/*
  • image/*
  • message/*
  • model/*
  • multipart/*
  • text/*
  • video/*
  • other

IANA注册MIME(RFC 2048)

注册树

  • IETF(Internet Engineering Task Force) 互联网工程任务组 IETF树用于那些堆因特网来说具有普遍意义的类型, 新的IETF树媒体类型要由IESG(Internet Engineering Steering Group)审批, 并且要有一个附属的标准追踪RFC。
  • 厂商(vnd.*) 厂商树用于可商用产品的媒体类型。鼓励大家进行新厂商类型的公开评审,但并不强制这么做。
  • 个人(prs.*) 私有,个人或不重要的媒体类型可以注册在个人树中。 这些媒体类型不应该进行商业化发布。
  • 实验性(x- or x.) 实验树用于未注册或实验性的媒体类型。

注册过程

基本注册过程不是官方标准过程,只是一个管理过程,目的是短时间内通过IANA(Internet Assigned Numbers Authority)对新类型的完整性检查,将其记录在注册表中。

  1. 将媒体类型提交给IANA审讯。
  2. IESG审批
  3. IANA注册

注册规则 (https://www.iana.org/form/media-types)

只有在响应IESG批准某指定申请的通知时,IANA才能在IETF树中注册媒体类型

  • 媒体类型一定要像实际的媒体格式一样工作。 像传输编码或字符集那样工作的类型是不能注册为媒体类型的。
  • 所有媒体类型都要有适当的类型和子类型名。所有类型名都要由标准追踪RFC定义所有子类型名都必须唯一的,必须与那类名称的MIME语法相符,而且必须包含恰当的树前缀。
  • 个人树类型必须提供格式规范或指向格式规范的指针。
  • 不要忽略安全问题。