メディアタイプ

メディアタイプとは



メディアタイプ(Media Type)は、ファイルやインターネット上で転送されるデータの形式を識別するためのコード体系です。MIMEタイプ(Multipurpose Internet Mail Extensions)やコンテンツタイプ(Content Type)とも呼ばれます。メディアタイプは、データの種類を特定し、適切なアプリケーションで処理するために重要な役割を果たします。

メディアタイプの歴史



メディアタイプの概念は、RFC 1341でMIMEの仕様の一部として定義されました。当初は電子メールの添付ファイルの形式を記述するために用いられましたが、その後、HTTPなどのインターネットプロトコルや、HTMLのようなファイル形式でも利用されるようになりました。現在では、IANA(Internet Assigned Numbers Authority)がメディアタイプを管理しています。

関連するRFCとしては、RFC 2046やRFC 6838などがあります。また、WHATWGのMIME Sniffing Standardでもメディアタイプに関する規定があります。

メディアタイプの名称



当初は「コンテンツタイプの値」または「MIMEタイプ」と呼ばれていましたが、RFC 1590で「メディアタイプ」という名称が定められました。HTML関連の仕様では、CSSメディアクエリの「メディアタイプ」との混同を避けるために、MIMEタイプという用語が用いられることがあります。

メディアタイプの構造



メディアタイプは、トップレベルメディアタイプ、サブタイプ、そしてオプションのパラメーターで構成されます。例えば、`text/html; charset=UTF-8` というメディアタイプの場合、`text`がトップレベルメディアタイプ、`html`がサブタイプ、`charset=UTF-8`がパラメーターです。

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

構文は以下の通りです。


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


パラメーターは複数付与できます。例:`text/plain; charset=iso-2022-jp; format=flowed; delsp=yes`

トップレベルメディアタイプ


トップレベルメディアタイプは、メディアタイプの大分類を表します。主なトップレベルメディアタイプには、以下のようなものがあります。

`text`: テキスト情報
`image`: 画像情報
`audio`: 音声情報
`video`: 映像情報
`application`: アプリケーションで処理される情報
`model`: 3次元モデルデータ
`font`: フォントデータ
`multipart`: 複数の独立したデータ型から成る情報
`message`: カプセル化されたメッセージ
`example`: 例示用のメディアタイプ
`chemical`: 非公式なメディアタイプ

各トップレベルメディアタイプには、未知のサブタイプに対する規定があります。例えば、`text`の場合は`text/plain`、`application`の場合は`application/octet-stream`として扱われます。

サブタイプ


サブタイプは、トップレベルメディアタイプをさらに細かく分類したものです。例えば、`text/html`や`image/png`などがあります。

パラメーター


パラメーターは、メディアタイプの追加情報を指定するために使用されます。例えば、`charset`パラメーターは文字コードを指定します。

主なメディアタイプの例



以下に、インターネットで広く利用されているメディアタイプの例を挙げます。

`application/octet-stream`: 任意のバイナリデータ
`application/javascript`: JavaScript
`application/`:
`application/x-www-form-urlencoded`: フォームデータ
`application/xml`: XML
`application/zip`: ZIPアーカイブ
`application/pdf`: PDF文書
`application/xhtml+xml`: XHTML
`audio/mpeg`: MP3音声
`audio/vorbis`: Vorbis音声
`text/css`: CSS
`text/html`: HTML
`text/plain`: プレーンテキスト
`image/png`: PNG画像
`image/jpeg`: JPEG画像
`image/gif`: GIF画像
`video/mpeg`: MPEG動画
`message/rfc822`: Eml形式
`multipart/alternative`: マルチパートメッセージ
`multipart/form-data`: ファイルアップロードを伴うフォームデータ

登録ツリー



メディアタイプは、IANAの登録手続きを経て登録されるべきとされています。サブタイプ名は「ツリー」に分類され、以下のツリーが存在します。

標準ツリー: 一般的なメディアタイプ
ベンダーツリー: 特定の製品に関連するメディアタイプ
パーソナルツリー: 実験的なメディアタイプ
* x.ツリー: 私的利用のメディアタイプ

登録ツリーによって登録の手続きが異なります。

標準ツリー


標準ツリーに属するメディアタイプは、原則として接頭辞を持ちません。IETFの承認が必要です。

例: `application/xhtml+xml`、`image/png`

ベンダーツリー


ベンダーツリーは、公開されている製品に関連するメディアタイプで、`vnd.`ファセットが用いられます。登録にはベンダーの名称が必要となる場合があります。

例: `application/vnd.example.document`

パーソナルツリー


パーソナルツリーは、実験的なタイプや非商業的なタイプで、`prs.`ファセットが用いられます。

例: `text/prs.example`

x.ツリー


`x.`ツリーは、私的利用や外部に公開しない環境で使用されます。登録は受け付けられておらず、使用は推奨されていません。

例: `application/x.custom`

接尾辞



接尾辞は、メディアタイプの元となるデータ形式を示すために使用されます。例えば、`+xml`や`+`などがあります。登録されている接尾辞は、IANAのStructured Syntax Suffix Registryで確認できます。


まとめ



メディアタイプは、インターネット上でやり取りされるデータの形式を識別するための重要な仕組みです。適切なメディアタイプを使用することで、データが正しく処理され、コンテンツが正しく表示されます。メディアタイプの知識は、Web開発やインターネット技術において不可欠な要素です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。