情報通信技術において、メディアタイプ[ 1 ] [ 2 ] 、コンテンツタイプ[ 2 ] [ 3 ]、またはMIMEタイプ[ 1 ] [ 4 ] [ 5 ]は、ファイル形式とコンテンツ形式を識別するための2部構成の識別子です。その目的は、ファイル名拡張子や統一タイプ識別子に似ており、意図されたデータ形式を識別します。これらは主にインターネットを支える技術で使用され、Linuxデスクトップシステムでも使用されます。
インターネット割り当て番号機関 (IANA)は、これらの分類の標準化と公開に関する公式機関です。メディアタイプは、電子メールメッセージの内容と添付ファイルの種類を示すために、1996 年 11 月にMIME (Multipurpose Internet Mail Extensions)仕様の一部としてRequest for Comments RFC 2045 (MIME) Part One: Format of Internet Message Bodies (Nov 1996) で最初に定義されました。[ 6 ]そのため、元の名前はMIME タイプです。メディアタイプは、HTTPなどの他のインターネットプロトコル[ 7 ] 、 HTMLなどのドキュメントファイル形式[ 8 ]、Linuxデスクトップ環境で実装されているXDG仕様[ 5 ]でも同様の目的で使用されています。
インターネットの標準規格やウェブ標準化団体によって、この種の識別子に好ましい用語は異なっている。
IANAとIETFは「メディアタイプ」という用語を使用し、「MIMEタイプ」という用語は廃止されたと考えています[ 1 ]。これは、メディアタイプがHTTPなど、電子メールとは無関係なコンテキストで使用されるようになったためです。対照的に、WHATWGは引き続き「MIMEタイプ」という用語を使用し、「メディアタイプ」という用語は曖昧であるとして使用を推奨していません。これは、 CSS機能に関連して異なる意味で使用されているためです[ 4 ] 。@media
メディアタイプを提供するHTTPレスポンスヘッダーは です。[ 2 ] W3Cは、メディアタイプのXMLデータ型名としてを使用しています。 [ 3 ] Linuxデスクトップ環境で実装されているXDG仕様では、「MIMEタイプ」という用語が引き続き使用されています。[ 5 ]Content-TypeContentType
メディアタイプは、タイプとサブタイプで構成され、さらにツリー構造になります。メディアタイプは、オプションで接尾辞とパラメータを定義できます。
mime-type = type "/" [ tree "." ] subtype [ "+" suffix ] * [ ";" parameter ];例えば、HTML ファイルは と指定されることがありますtext/html; charset=UTF-8。この例では、textはタイプ、htmlはサブタイプ、 は文字エンコーディングcharset=UTF-8を示すオプションのパラメータです。
型、サブタイプ、およびパラメータ名は大文字と小文字を区別しません。パラメータ値は通常大文字と小文字を区別しますが、意図された用途によっては大文字と小文字を区別しない方法で解釈される場合があります。[ 6 ]
「タイプ」の部分は、メディアタイプの幅広い用途を定義します。1996 年 11 月の時点では、登録されたタイプは、、、、、applicationおよびでした。[ 6 ] 2024 年 7 月までに、登録されたタイプには、上記に加えて、、、、およびが含まれていました。[ 1 ]audioimagemessagemultiparttextvideofontexamplemodelhaptics
一般的に使用されている非公式のトップレベル型は、化学ファイル形式chemicalに使用されるです。[ 9 ] [ 10 ] [ 11 ] Linuxデスクトップ環境のコンテキストでは、非公式のトップレベル型(ファイルシステムディレクトリ、デバイスファイル、シンボリックリンクなどの通常のファイル以外のinode )、[ 12 ] ( DCF デジタルカメラなどのリムーバブルメディア)、[ 13 ] (パッケージマネージャパッケージ) [ 14 ]、および(オフィス生産性ソフトウェアドキュメントの一般的なカテゴリ) [ 14 ] [ 15 ]が使用されます。inodex-contentx-content/image-dcfpackagex-office
サブタイプは通常、メディアフォーマットで構成されますが、登録ツリーのさまざまな規則に従って、ツリープレフィックス、プロデューサー、製品、サフィックスなどの他のコンテンツも含まれる場合があり、また含まれていなければなりません。
すべてのメディアタイプは、IANA登録手順を使用して登録する必要があります。メディアタイプの登録プロセスの効率性と柔軟性を高めるため、サブタイプの異なる構造を、ツリープレフィックスを使用して区別される登録ツリーに登録できます。現在、次のツリーが作成されています。標準(プレフィックスなし)、ベンダー(vnd.プレフィックス)、個人またはバニティ(prs.プレフィックス)、未登録(プレフィックス)。これらの登録ツリーは、1996年11月に初めて定義されました(廃止されたRFC 2048 - 現在はRFC 6838)。IETF Standards Actionは、外部登録および著名な恒久的組織(例:学会)による管理のために、x.新しい登録ツリーを作成することができます。
標準ツリーはツリー接頭辞を使用しません。例: text/javascript、image/png。[ 16 ]
標準規格ツリーへの登録は、IESGによって直接承認されたIETF仕様に関連付けられているか、IANAが認める標準化関連組織によって登録されているかのいずれかでなければなりません。
ベンダーツリーには、一般公開されている製品に関連付けられたメディアタイプが含まれます。vnd.ツリープレフィックスを使用します。例: application/vnd.ms-excel、application/vnd.oasis.opendocument.text。
この文脈では、「ベンダー」と「プロデューサー」という用語は同義とみなされます。業界団体や非営利団体も、ベンダーツリーにメディアタイプを登録できます。ベンダーツリーへの登録は、ソフトウェア製品または製品群に関連するファイルを交換する必要がある人であれば誰でも作成できます。ただし、登録は、登録対象のタイプを使用するソフトウェアを製造しているベンダーまたは組織に帰属し、そのベンダーまたは組織は、第三者が行った登録の所有権をいつでも主張することができます。
個人用または自己顕示用ツリーには、一般に公開されていない製品または実験的なメディアタイプに関連付けられたメディアタイプが含まれます。prs.ツリー接頭辞を使用します。例: audio/prs.sid、image/prs.btif。
未登録ツリーには、プライベート環境でのみ使用することを目的とし、かつ交換する当事者の積極的な合意がある場合にのみ使用できるメディアタイプが含まれます。x.ツリーの接頭辞は です。例としてはapplication/x.foo、 、などがありますvideo/x.bar。このツリーのメディアタイプは登録できません。
このタイプは元々、RFC 1590(1993年9月公開)で、x-またはX-プレフィックスを使用して定義されました。RFC 2048(1996年11月公開)ではx.プレフィックスが導入されましたが、登録要件が緩和された新しい個人用ツリーやベンダー用ツリーが利用可能になったため、未登録ツリーの使用は推奨されませんでした。現在のRFC 6838(2013年1月公開)では同じ推奨事項が維持されていますが、x-またはプレフィックスが付いたサブタイプは、X-このツリーのメンバーとはみなされなくなりました。
登録されていないにもかかわらず広く展開されているメディアタイプ(またはのプレフィックスが付いたサブタイプx-)はX-、可能であれば適切なプレフィックス付きサブタイプで再登録する必要があります。これが不可能な場合は、メディアタイプレビュー担当者とIESGの両方の承認後、プレフィックスなしのサブタイプで標準ツリーに登録できます。は、プレフィックスapplication/x-www-form-urlencoded付きで登録された広く展開されているタイプの例ですx-。[ 17 ]
サフィックスは、メディアタイプの定義を拡張し、そのメディアタイプの基盤となる構造をさらに指定することで、その構造に基づいて汎用的な処理を可能にし、正確なタイプの特定の意味論に依存しないようにします。名前付き構造化構文を使用するメディアタイプは、"+"suffix登録時にその構造化構文に対して登録された適切な IANA を使用する必要があります。未登録のサフィックスは使用しないでください (2013 年 1 月以降)。構造化構文サフィックスの登録手順はRFC 6838で定義されています。[ 16 ]
+ xmlサフィックスは 2001 年 1 月 ( RFC 3023 [ 18 ] )以来定義されており、2013 年 1 月 (RFC 6839) に、、、、、、、とともに構造化構文サフィックス レジストリの初期コンテンツに正式に含まれました。その後+json、、、、、、、が追加されました。[ 19 ]+ber+der+fastinfoset+wbxml+zip+gzip+cbor+json-seq+cbor-seq
IANAレジストリより: [ 1 ]
application/jsonapplication/ld+json( JSON-LD )application/msword(.doc)application/pdfapplication/sqlapplication/vnd.api+jsonapplication/vnd.microsoft.portable-executable(.efi、.exe、.dll)application/vnd.ms-excel(.xls)application/vnd.ms-powerpoint(.ppt)application/vnd.oasis.opendocument.text(.odt)application/vnd.openxmlformats-officedocument.presentationml.presentation(.pptx)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet(.xlsx)application/vnd.openxmlformats-officedocument.wordprocessingml.document(.docx)application/x-www-form-urlencodedapplication/xmlapplication/zipapplication/zstd(.zst)audio/mpegaudio/oggimage/avifimage/jpeg(.jpg、.jpeg、.jfif、.pjpeg、.pjp) [ 20 ]image/pngimage/svg+xml(.svg)image/tiff(.tif)model/obj(.obj)multipart/form-datatext/plaintext/csstext/csvtext/htmltext/javascript(.js)text/xmlMailcap(「メール機能」を意味する語に由来)は、メールクライアントやウェブブラウザなどのMIME対応アプリケーションが、異なるMIMEタイプのファイルをどのようにレンダリングするかを設定するために使用されるメタファイルの一種です。mailcap形式はRFC 1524「マルチメディアメールフォーマット情報のためのユーザーエージェント構成メカニズム」で定義されていますが、インターネット標準としては定義されていません。ほとんどのUnixシステムでサポートされています。
行は、# 文字で始まるコメント、または MIME タイプとその MIME タイプを処理する方法を記述したものになります。
関連ファイルとして、ファイル名拡張子とMIMEタイプを関連付けるmime.typesファイルがあります。MIMEタイプが正しく設定されていればこのファイルは不要ですが、MIMEタイプが正しく設定されていない場合や、汎用タイプ(例:)に設定されている場合もあります。mime.typesファイルを使用すると、このような場合に拡張子を基準に処理を進めることができます。同様に、多くのファイルシステムはMIMEタイプ情報を保存せず、ファイル名拡張子に依存するため、WebサーバーはMIMEタイプを判断するためにmime.typesファイルを頻繁に使用します。application/octet-stream
ファイルを表示する際、これら2つは次のように連携して動作します。mime.types拡張子をMIMEタイプに関連付け、mailcapMIMEタイプをプログラムに関連付けます。
UNIX系システムでは、mime.typesファイルは通常、および/またはに配置され、フォーマットは、各行がMIMEタイプをスペースで区切ったリストであり、その後に0個以上の拡張子が続くというものです。たとえば、HTMLタイプは、次の行で拡張子およびと関連付けることができます。/etc/mime.types$HOME/.mime.types.htm.html
text/html htm html
mime.types ファイルはNetscapeに由来し、当時は異なる形式を使用していました。[ 21 ]キーと値のペア、カンマで区切られた拡張子のリスト、および、そのファイルが mime.types ファイルであることを識別する特定のコメントからなる標準ヘッダーを使用していました。
#--Netscape Communications CorporationのMIME情報 # 上記の行は削除しないでください。ファイルの種類を識別するために使用されます。 type=text/html exts=htm,html
[RFC2046] では、メディアタイプ (以前は MIME タイプとして知られていた) とメディアサブタイプは IANA によって割り当てられ、リスト化されることが規定されています。
HTTP は、オープンで拡張可能なデータ型と型ネゴシエーションを提供するために、Content-Type (セクション 8.3) および Accept (セクション 12.5.1) ヘッダー フィールドでメディア タイプ [RFC2046] を使用します。
ContentType: [RFC2045] に基づくメディア タイプ。
メディアクエリ
で説明されている
メディアタイプ
の使用との混同を避けるため、MIME タイプという用語を一貫して使用することが推奨されています
。