メディアタイプ

**メディアタイプ**（）は、ファイルやインターネット上で転送されるデータ（コンテンツ）の形式を識別するためのコード体系である。**[[MIME]]タイプ**や**コンテンツタイプ**（**コンテントタイプ**、）とも表記される。その具体的な識別子は、**text/plain**のように、スラッシュで区切る表記が特徴的である。

公式には、IANAがメディアタイプを管理している。現在の形式のメディアタイプは、のMIMEの仕様の一部として定義されたことに始まる。では、電子メールの本文や添付ファイルの種類の記述に用いている。その後、HTTPなどその他のインターネットプロトコルや、HTMLのようなファイル形式でも同様の目的に使用されるようになっていった。

やなど、メディアタイプに関するRFCが複数存在するほか、WHATWGのMIME Sniffing Standardの「4 MIME types」にもメディアタイプ（MIMEタイプ）に関する規定が存在する。

の技術的内容および構成を変更しない日本語訳が、日本産業規格JIS X 5810-2:2008「多目的インターネットメール拡張 (MIME) ―第2部: メディア型」として発行されている。

日本語では「メディア種別」とも訳されるが、定訳はなく、「メディアタイプ」という外来語カナ表記がそのまま使われることも多い。本記事では「メディアタイプ」で統一するものとする。

## 名称について
では、コンテンツタイプの値 (Content-Type Values) またはMIMEタイプ (MIME type) と表記されている。その後、でメディアタイプの名称が定められた。一部のRFCではインターネットメディアタイプ (Internet Media Type) と表記する事例もある。

HTMLおよび関連する仕様では、このメディアタイプを指す用語としてMIMEタイプ (MIME type) を用いている。この理由は、CSSメディアクエリにおける「メディアタイプ」(media type) との混同を避けるためである。

## 命名規則
メディアタイプは、トップレベルメディアタイプ (、最上位メディア型）と（メディア）サブタイプ（、下位型）、そして非必須のパラメーターの組み合わせで構成される。

たとえば、とあるHTMLファイルについて`text/html; charset=UTF-8`というメディアタイプが付与されたとする。この例では、textがトップレベルメディアタイプ、htmlがサブタイプ、charset=UTF-8が文字コードを表すパラメーターである。

サブタイプは「ツリー」または「ファセット」と呼ばれるさらなる分類がなされる。

構文: 
* `トップレベルメディアタイプ名 / サブタイプ名 [ ; パラメーター ]`
* `トップレベルメディアタイプ名 / [ ツリー. ] サブタイプ名 [ +接尾辞 ] [ ; パラメーター ]`

パラメーターは複数付与する場合もある。例: `text/plain; charset=iso-2022-jp; format=flowed; delsp=yes`

### トップレベルメディアタイプ
トップレベルメディアタイプは、全般的な大分類を表す部分である。

トップレベルメディアタイプごとに未知のサブタイプの扱いが規定されており、受信側は自分の扱えないサブタイプであっても最低限の取り扱いが可能となる。`text` の場合は `text/plain`、`application/octet-stream`・`multipart` の場合は `multipart/mixed` である。`application`・`image`・`audio`・`video`などは、未知のサブタイプについて`application/octet-stream`として扱うよう規定している。

#### 個別最上位メディア型
個別の最上位メディア型は次のものが存在する。
;text
:**テキスト情報**。特にメディア下位型はどんな種類の指令（例えば「文字の大きさを変更する」とか「動画を埋め込む」とか）も含まないプレーンテキストを表す。
;image
:**画像情報**。その内容は画像処理機（典型的には表示装置・印刷機など）を介して提示される。
;audio
:**音声情報**。その内容は音声出力機器（スピーカー）を介して提示される。
;video
:**映像情報**。その内容は映像を処理する機構を介して提示される。
;application
:典型的には、専用のアプリケーションを用いて処理される情報。
;model
:3次元コンピュータグラフィックスなどのモデルデータ。で新設。
;font
:フォント。で新設。

#### 複合最上位メディア型
複合の最上位メディア型は次の2つである。

#### 例示用最上位メディア型
例示用の最上位メディア型として**example**がで規定されている。

#### 非公式な最上位メディア型
非公式な最上位メディア型として**chemical**が存在する。

### 主な例
インターネットなどで広く利用されているものや、標準化されているものを中心に例示する。

* `application/octet-stream`（任意のバイナリデータ）
* `application/javascript`
* `application/json`
* `application/x-www-form-urlencoded`
* `application/xml`
* `application/zip`
* `application/pdf`（PDF文書）
* `application/xhtml+xml`（XHTMLテキスト）
* `audio/mpeg`
* `audio/vorbis`
* `text/css`
* `text/html`（HTMLテキスト）
* `text/plain`（プレーンテキスト）
* `image/png`（PNG画像）
* `image/jpeg`（JPEG画像）
* `image/gif`（GIF画像）
* `video/mpeg`（MPEG動画）
* `message/rfc822`（Eml形式）
* `multipart/alternative`（HTMLメールにおいて、HTMLによるメッセージと同等のプレーンテキストによるメッセージを用意する場合のように、同じ情報を異なる形式で表したマルチパート）
* `application/x-www-form-urlencoded`（HTTPのPOSTメソッドによるフォームデータの送信）
* `multipart/form-data`（同上、主にファイルアップロードを伴う場合）

### 登録ツリー
全てのメディアタイプは、IANAの登録手続きを経て登録されるべきとされる。個々のサブタイプ名はツリーに分類されて登録される。この場合、サブタイプ名に"ツリー."接頭辞が付与されたものとなる。現在、次のツリーが存在する: 標準、企業、個人、私的利用。これらのツリーは1996年11月ので最初に定義され、現在はに置き換えられている。ツリーによって登録の手続きに差異がある。

登録ツリーそのものの追加が必要な場合、IETFの標準化作業によって決定される ( 3.5. Additional Registration Trees)。

#### 標準ツリー
標準ツリーに属するメディアタイプは、原則として接頭辞を持たない。

標準ツリーへの追加には、IESGで承認を受けたIETF仕様またはIANAが認める標準化を行う団体からの登録のいずれかが必要である。

構文: `type / メディアタイプ名 [+接尾辞]`

例: application/xhtml+xml、image/png

#### ベンダーツリー
ベンダーツリーは、公開されている製品に関連するメディアタイプで用いられる。vnd.ファセットが用いられる ( 3.2. Vendor Tree)。

この文脈では、ベンダー（販売元）と開発元は同義である。すなわち、非営利な団体・コンソーシアムであっても、自身が開発したデータ形式についてベンダーツリーへの登録申請が可能である。

また、ベンダーツリーへの登録は、必ずしもベンダーや開発元によって申請される必要は無く、メディアタイプの登録を望む第三者が申請してもよい。ただしその場合でも、登録対象のタイプは、それに関するソフトウェアのベンダー・組織に属することになり、ベンダー・組織はいつでもそのタイプに対する所有権を表明できる。

構文:
* `type / vnd. メディアタイプ名 [+接尾辞]` - 製作元が著名な場合
* `type / vnd. 製作元の名称 . メディアタイプ名 [+接尾辞]` - 製作元の名称はIANAに承認される必要がある
* `type / vnd. 製作元の名称 . 製品名 . メディアタイプ名 [+接尾辞]` - 製作元の名称と製品名はIANAに承認される必要がある

#### パーソナルツリー
パーソナルツリーは、実験的なタイプや商業的に頒布される製品に関係しないタイプを含む。prs.ファセットが用いられる。

構文: `type / prs. メディアタイプ名 [+接尾辞]`

#### 未登録なものを表すx.ツリー
"x."ツリーは、私的利用であったり、外部に公開しない環境で当事者同士の積極的な合意の下での利用であったりする場合に用いられる。このツリーでの登録は受け付けられていない。

未登録で使用できるメディアタイプの命名規則は以下のように変遷している。
* 当初、とでは、"x-"で始まるサブタイプを登録不要・私的利用としていた。
* では、極めて稀な場合として、必要に応じて、私的利用・実験的な用途で"x-"と"."で始まる名前を使用してよいが、なるべく避けるべきとしていた。
* では、私的利用に"x."ツリーが用意されているが、使用は極めて避けるべきとされている。また、"x-"で始まるサブタイプは登録不要・私的利用ではないこととなった。

登録不要のメディアタイプ名を使用するのではなく、できるだけ登録されるべきとされている。このため、ベンダーツリー・パーソナルツリーへの登録手続きは簡略化されている。もちろん、標準化団体の標準化手順を通して、標準ツリーへの登録を申請してもよい。

広く運用されているメディアタイプ（"x-"接頭辞を持つファセットのないサブタイプ）で未登録のものについては、可能な限り適切なファセット付きのサブタイプ名で登録し直すべきとされている。それが困難な場合、メディアタイプのレビューアとIESGの承認の後、ファセットのない名称のままの登録も可能である ( Appendix A. Grandfathered Media Types)。

* ファセット付きで登録し直された例: `image/x-icon` → `image/vnd.microsoft.icon`
* ファセット無しで登録し直された例: `application/x-gzip` → `application/gzip`
* `x-`付きのまま登録された例: `application/x-www-form-urlencoded`

構文: `type / x. メディアタイプ名 [+接尾辞]`

### 接尾辞
接尾辞は、登録対象のメディアタイプに対して、元となるデータ形式をメディアタイプの命名に加えるものである。著名な構造を持つメディアタイプについては、IANAに登録されている適切な"+suffix"を登録時に付与すべきとされている。未登録の接尾辞は使用すべきではない。接尾辞の登録手続きもで定められている ( 6. Structured Syntax Suffix Registration Procedures)。

の当初時点の接尾辞は、次のとおりである。現在登録されている接尾辞の一覧はStructured Syntax Suffix Registryを参照。

* +xml
* +json
* +ber
* +der
* +fastinfoset
* +wbxml
* +zip

ただし、`+xml`の接尾辞は、サフィックスがIANAで管理されるようになる前、2001年1月のから定義されている。

## 脚注

### 注釈

### 出典

## 関連項目

* Multipurpose Internet Mail Extensions

## 外部リンク
* IANA Media Types
* IANA Structured Syntax Suffix Registry
*  Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
*  Media Type Specifications and Registration Procedures
* MIME Sniffing Standard
** MIME Sniffing （日本語訳）

### データベース
これらには、IANAに登録されていないメディアタイプも収録されている。
* mime.types (Apache HTTPサーバー)
* mime.types (ソースコードリポジトリ: Debian / Media Types · GitLab)
* mime.types (ソースコードリポジトリ: Fedora Paguremailcap)
* freedesktop.org.xml.in (ソースコードリポジトリ: freedesktop.org GitLab shared-mime-info)
* file/magic/Magdir at master · file/file · GitHub (`[[file (UNIX)|file]]`)
* mime-types-data/types (ソースコードリポジトリ: )
* tika-mimetypes.xml (ソースコードリポジトリ: )