MIMEタイプ一覧 早見表|拡張子とContent-Typeの対応
主要なファイル拡張子とMIMEタイプ(メディアタイプ)の対応をテキスト・画像・音声/動画・文書/アーカイブ・フォント・その他の6カテゴリ・計47種でまとめました。Webサーバー設定・API設計・ファイルアップロード処理で「この拡張子のContent-Typeは何?」に即答できる一覧表です。IANA登録情報と現行RFCに基づいています。
📌 最頻出のMIMEタイプ TOP10
| 拡張子・用途 | MIMEタイプ |
|---|---|
| .json | application/json |
| .html | text/html |
| .js | text/javascript |
| .css | text/css |
| .png | image/png |
| .jpg / .jpeg | image/jpeg |
| .svg | image/svg+xml |
application/pdf | |
| フォーム送信(ファイルあり) | multipart/form-data |
| 種類不明のバイナリ | application/octet-stream |
※ オレンジ網掛けは特に問い合わせの多いもの。.js の正式タイプは現在 text/javascript です(RFC 9239)。
拡張子⇄MIMEタイプ 対応表(カテゴリ別)
下の入力欄に「json」「image」「.woff」などと入力すると、全カテゴリの表から該当行だけを絞り込めます(空欄に戻すと全件表示)。
テキスト系
| 拡張子 | MIMEタイプ | 補足 |
|---|---|---|
| .html / .htm | text/html | HTML文書。charset=utf-8 の併記を推奨 |
| .css | text/css | 誤ったタイプではスタイルが適用されない |
| .js / .mjs | text/javascript | RFC 9239で正式化。application/javascriptは廃止扱い |
| .json | application/json | 符号化はUTF-8。charsetパラメータは不要 |
| .xml | application/xml | text/xml も同等に使用可(RFC 7303) |
| .csv | text/csv | RFC 4180 |
| .txt | text/plain | プレーンテキスト |
| .md | text/markdown | RFC 7763 |
| .yaml / .yml | application/yaml | RFC 9512(2024)で正式登録 |
画像
| 拡張子 | MIMEタイプ | 補足 |
|---|---|---|
| .png | image/png | 可逆圧縮・透過対応 |
| .jpg / .jpeg | image/jpeg | 「image/jpg」は誤り |
| .gif | image/gif | アニメーション対応 |
| .svg | image/svg+xml | XMLベース。スクリプト混入(XSS)に注意 |
| .webp | image/webp | RFC 9649で正式登録 |
| .avif | image/avif | AV1ベースの高圧縮画像 |
| .ico | image/vnd.microsoft.icon | IANA登録名。実務では image/x-icon も広く通用 |
| .tif / .tiff | image/tiff | RFC 3302 |
| .bmp | image/bmp | RFC 7903 |
音声・動画
| 拡張子 | MIMEタイプ | 補足 |
|---|---|---|
| .mp3 | audio/mpeg | RFC 3003。「audio/mp3」は誤り |
| .wav | audio/wav | 実務上の一般値。IANA登録名は audio/vnd.wave |
| .ogg | audio/ogg | RFC 5334。動画は .ogv = video/ogg |
| .aac | audio/aac | IANA登録済み |
| .flac | audio/flac | RFC 9639で正式登録 |
| .m4a | audio/mp4 | 音声のみのMP4コンテナ |
| .mp4 | video/mp4 | RFC 4337 |
| .webm | video/webm | WebMプロジェクト定義のデファクト標準。音声のみは audio/webm |
| .mov | video/quicktime | QuickTimeコンテナ |
文書・アーカイブ
| 拡張子 | MIMEタイプ | 補足 |
|---|---|---|
application/pdf | RFC 8118 | |
| .zip | application/zip | IANA登録済み |
| .gz | application/gzip | RFC 6713 |
| .doc | application/msword | 旧Word形式(〜2003) |
| .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document | Word(OOXML) |
| .xls | application/vnd.ms-excel | 旧Excel形式(〜2003) |
| .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | Excel(OOXML) |
| .ppt | application/vnd.ms-powerpoint | 旧PowerPoint形式(〜2003) |
| .pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation | PowerPoint(OOXML) |
| .epub | application/epub+zip | 電子書籍(EPUB) |
フォント
| 拡張子 | MIMEタイプ | 補足 |
|---|---|---|
| .woff | font/woff | RFC 8081(font/ツリー新設) |
| .woff2 | font/woff2 | Webフォントの現行主流 |
| .ttf | font/ttf | TrueType |
| .otf | font/otf | OpenType |
その他・特殊用途
| 拡張子・用途 | MIMEタイプ | 補足 |
|---|---|---|
| .wasm | application/wasm | WebAssembly。ストリーミングコンパイルに必須 |
| .ics | text/calendar | RFC 5545(iCalendar) |
| .webmanifest | application/manifest+json | PWAのWeb App Manifest |
| フォーム送信(ファイルあり) | multipart/form-data | RFC 7578。<form enctype> で指定 |
| フォーム送信(既定) | application/x-www-form-urlencoded | HTMLフォームPOSTの既定値 |
| 種類不明のバイナリ | application/octet-stream | RFC 2046。ブラウザは通常ダウンロード保存する |
charset指定の書き方
Content-Typeヘッダは Content-Type: text/html; charset=utf-8 のように、MIMEタイプの後ろにセミコロン区切りでパラメータを付けられます。charsetは文字コードを示すパラメータで、text/html・text/plain・text/cssなど文字ベースの形式で使います。
かつてのHTTP/1.1仕様ではtext系の既定文字コードがISO-8859-1とされていましたが、現行仕様ではこの既定は廃止され、明示しない場合の解釈は受信側に委ねられます。文字化けを避けるため、テキスト系レスポンスにはcharset=utf-8を明示するのが現在の定石です。HTML文書では<meta charset="utf-8">とContent-Typeの内容を一致させておきます。
一方、application/jsonはUTF-8で符号化すると仕様で決まっているため、charsetパラメータは定義されておらず不要です。また multipart/form-data では境界文字列を示す boundary パラメータが必須になるなど、パラメータの扱いはタイプごとに異なります。
実務の注意点
application/javascript と text/javascript の経緯
text/javascript は1990年代から使われてきた慣用値でしたが、RFC 4329(2006年)で一度は非推奨とされ、application/javascript が正式タイプになりました。しかしWeb上の実態はtext/javascriptのまま変わらず、RFC 9239(2022年)で判断が逆転。現在はtext/javascriptが唯一の正式タイプで、application/javascriptを含む他の表記はすべて廃止(obsolete)扱いです。ESモジュール(.mjs)もtext/javascriptで配信します。
SVGとXSS
SVGはXML文書であり<script>要素を含められます。ユーザーがアップロードしたSVGをそのままimage/svg+xmlで同一ドメインから配信すると、URLを直接開いた際にスクリプトが実行されXSSにつながる恐れがあります。<img>タグ経由の表示ではスクリプトは実行されませんが、対策としてサニタイズ、Content-Disposition: attachmentの付与、配信用の別ドメイン分離などを組み合わせるのが定石です。
application/octet-stream のダウンロード挙動
ブラウザはこのタイプを「表示できない不明なバイナリ」として扱い、通常はダウンロード保存します。ただし「ダウンロードさせたい」目的でoctet-streamを使うのは本来の用法ではなく、正しいMIMEタイプ + Content-Disposition: attachment; filename="..." の組み合わせが正攻法です。タイプの誤魔化しはブラウザのMIMEスニッフィング(中身からの形式推測)を誘発するため、X-Content-Type-Options: nosniffと併せて正確なタイプを返すのが安全です。
使い方・選び方のポイント
使用場面
Webサーバーの配信設定(nginx・Apacheのmime.types / AddType)、APIのリクエスト/レスポンス設計、ファイルアップロードの検証、メール添付の形式指定に使います。実際に返っているContent-Typeは、ブラウザのF12開発者ツール(Networkタブ)や curl -I [URL] で確認できます。
よくある間違い
audio/mp3(正: audio/mpeg)、text/json(正: application/json)、image/jpg(正: image/jpeg)は定番の誤記です。また application/javascript は現在廃止扱い(正: text/javascript)、application/json への charset=utf-8 付与は不要です。
選び方のコツ
①まず本表またはIANAレジストリで登録名を確認 ②テキスト系にはcharset=utf-8を明示 ③形式が特定できない場合のみapplication/octet-streamを使い、ダウンロードさせたい場合はContent-Dispositionヘッダを併用します。
MIMEタイプの仕組みと背景
MIMEは Multipurpose Internet Mail Extensions の略で、もともとはASCIIテキストしか扱えなかった電子メールに画像や音声などを載せるために作られた拡張仕様です(RFC 2045/2046・1996年)。データ形式を「type/subtype」という2階層の識別子で表す方式がここで導入され、そのままHTTPのContent-Typeヘッダに採用されました。現在の仕様上の正式名称は「メディアタイプ」ですが、歴史的経緯から「MIMEタイプ」という呼び名が広く定着しています。
先頭のトップレベルタイプは、単一データを表す text・image・audio・video・application に加え、複数パートの複合データを表す multipart、メッセージを包む message、RFC 8081(2017年)で新設された font などがあります。「どのトップレベルにも当てはまらない形式」や実行可能データは application に分類されるため、application/* の種類が最も多くなっています。
タイプの登録はIANAの Media Types Registry で一元管理され、登録手続きはRFC 6838が定めています。標準ツリーのほかにベンダー用の vnd.(docxの長いタイプ名はこの例)、個人用の prs. があり、未登録タイプに使われてきた「x-」プレフィックスはRFC 6648(2012年)で非推奨になりました。image/x-icon が image/vnd.microsoft.icon として登録されたように、慣用値から正式登録への移行が続いています。また「+xml」「+json」「+zip」のような構造化構文サフィックスにより、受信側は未知のサブタイプでもベースとなる構文を判別できます。
よくある質問
Q1. Content-TypeとMIMEタイプの違いは?
A. MIMEタイプ(正式にはメディアタイプ)は「text/html」のようなデータ形式の識別子そのもの、Content-TypeはそれをHTTPレスポンスやメールのヘッダで伝えるためのヘッダ名です。Content-Type: text/html; charset=utf-8 のように「MIMEタイプ+パラメータ」の形で指定します。
Q2. .jsのMIMEタイプはapplication/javascriptとtext/javascriptのどちらが正しい?
A. 現在の正式なタイプはtext/javascriptです(RFC 9239・2022年)。一時期application/javascriptが推奨されていましたが、ブラウザと既存コンテンツの実態に合わせてtext/javascriptに一本化され、application/javascriptは廃止(obsolete)扱いになりました。どちらもブラウザは解釈しますが、新規にはtext/javascriptを使います。
Q3. charset=utf-8はいつ付ける?
A. text/htmlやtext/plainなど文字ベースの形式で文字コードを明示したいときに付けます。application/jsonは仕様上UTF-8で符号化されるためcharsetパラメータは定義されておらず、付けても意味を持ちません。HTMLでは<meta charset="utf-8">とContent-Typeの内容を一致させておくのが安全です。
Q4. application/octet-streamとは何?
A. 「種類を特定しない任意のバイナリデータ」を表す汎用タイプです(RFC 2046)。ブラウザは中身を表示せずダウンロード保存する挙動になるのが一般的です。ファイル形式が分かっている場合は、octet-streamではなく正しいタイプを指定します。
Q5. MIMEタイプを間違えるとどうなる?
A. CSSが適用されない(スタイルシートはtext/cssが必須)、JavaScriptモジュールが実行されない、画像が表示されずダウンロードされる、などの不具合が起きます。またX-Content-Type-Options: nosniffを設定した環境では、誤ったタイプのリソースはブラウザにブロックされます。
Q6. 拡張子とMIMEタイプの対応は誰が決めている?
A. IANAが登録・管理しているのはMIMEタイプ自体で、拡張子との対応に公式な1対1の対応表があるわけではなく慣習です。実際にはWebサーバー(nginxやApacheのmime.typesファイルなど)が拡張子→MIMEタイプの対応表を持ち、レスポンスのContent-Typeを付与しています。
Q7. image/svg+xmlの「+xml」は何を意味する?
A. RFC 6838で定義された構造化構文サフィックスで、「ベースがXML形式である」ことを示します。同様にapplication/manifest+jsonの+json、application/epub+zipの+zipなどがあり、受信側がベースとなる構文を判別できるようにする仕組みです。
関連する早見表
- HTTPステータスコード早見表 — 同じHTTPヘッダまわりの基礎知識
- ASCIIコード早見表 — 文字コードの基礎
- データ容量換算早見表 — KB/MB/GBの換算
- DPI・解像度早見表 — 画像ファイルの解像度
- 正規表現早見表 — 拡張子・ヘッダ値の抽出/検証
関連規格・出典
- IANA Media Types Registry — メディアタイプの公式登録一覧
- RFC 6838「Media Type Specifications and Registration Procedures」— 登録手続き・命名規則(+サフィックス等)
- RFC 2046「MIME Part Two: Media Types」— メディアタイプの基本定義
- RFC 9239「Updates to ECMAScript Media Types」— text/javascriptの正式化
最終更新: 2026-07-02