MIME Type Lookup MIME type 参照表
さまざまな file extension に対応する MIME Type をすばやく検索できます。 拡張子 → MIME 付き MIME → 拡張子 双方向クエリ。
組み込み HTTP ヘッダープレビュー, Web 開発と API 設計に欠かせないツールです。
📋 HTTP Header プレビュー
上の MIME Type をクリックすると、対応する HTTP Header example がここに表示されます。
MIME Type カードをクリックすると HTTP Header を確認できます
❓ FAQ FAQ
MIME Type に関するよくある質問と回答
MIME type とは何ですか?なぜ重要ですか?
MIME Type(Multipurpose Internet Mail Extensions Type)は、ファイル形式とコンテンツ種別を識別するための標準化されたラベルです。もともとはメール添付向けに設計されましたが、その後 HTTP プロトコルでも広く採用され、Web 通信の基盤となりました。
MIME Type の形式は type/subtype、たとえば text/html、application/json、image/png。
なぜ重要なのですか?
- ブラウザー表示判定 — ブラウザは Content-Type を見て、HTML 表示、画像表示、ダウンロードなどの扱いを決めます。
- API 開発 — REST API では Content-Type と Accept ヘッダーを使ってコンテンツネゴシエーションを行います
- ファイルアップロードの検証 — server は MIME Type を使って upload file type を検証します。
- サーバー設定 — Web server(Nginx、Apache)では MIME Type mapping を正しく設定する必要があります。
- セキュリティ — 誤った MIME Type は MIME type confusion attack につながる場合があります。
Content-Type Header と Accept Header にはどのような違いがありますか?
どちらも HTTP の MIME Type 関連 Header ですが、用途は異なります:
Content-Type(request/response headers)
受信者に伝える 「これはどの種類のデータですか?」。response では server が browser に内容の解析方法を伝えるために使い、request では client が server に request body の形式を伝えるために使います。
Accept(リクエストヘッダー)
サーバーへ通知 "クライアントはどの種類のデータを受け入れられますか?"。server は Accept header の値に応じて返す response format を決定します。
簡単な覚え方: Content-Type は「こちらが何を送るか」、Accept は「何を受け取りたいか」です。
サーバーの MIME Type を正しく設定する方法は?
web server ごとに MIME Type の設定方法は異なります:
Nginx
include mime.types;types { application/javascript js; }
Apache
AddType application/javascript .jsAddType text/html .html
Node.js / Express
res.type('json')res.set('Content-Type', 'application/json')
⚠️ 注記: MIME Type の設定が誤っていると、browser がファイルを正しく解析できず、security issue の原因になる場合もあります。たとえばユーザーが upload した file を text/html 提供すると XSS 攻撃につながる可能性があります。
application/octet-stream とは何ですか? どのような場面で使いますか?
application/octet-stream バイナリデータ用の汎用 MIME Type で、「種類不明のバイナリファイル」に相当します。サーバーが具体的なファイル種別を判定できない場合に使用されます。
一般的な利用シーン:
- 強制ダウンロード — 設定時
Content-Type: application/octet-stream、browser は表示を試みず file を強制 download します - ファイルダウンロード機能 — 多くの download 機能でこの MIME Type が使われます。
Content-Disposition: attachmentheader - 不明なファイル形式 — サーバーがファイル拡張子を認識できない場合の安全な既定値
💡 推奨: 可能な限り application/octet-stream ではなく具体的な MIME Type を指定し、browser や client がファイルを正しく処理できるようにしてください。
MIME Type と file extension にはどのような関係がありますか?
MIME Type とファイル拡張子は互いに対応します 関係ですが、100% の 1 対 1 対応ではありません:
- 一対多 — 1つの MIME Type が複数の file extension に対応する場合があります(例:
audio/mpeg対応.mp3、.mpga) - 多対一 — 1 つの file extension が複数の MIME Type に対応する場合もあります。
.xml可能text/xmlまたはapplication/xml) - Web サーバーマッピング — Nginx や Apache などの server は MIME Type mapping table を使い、各 file extension の request をどう処理するか判断します。
そのため、このツールは次をサポートします 拡張子 → MIME 付き MIME → 拡張子 双方向検索にすることで、どちら側の情報からでも対応する値を引けるようになります。
💡 便利なヒント: サーバーはファイル拡張子から MIME Type を引き、Content-Type header を設定します。mapping table が不完全だと、誤った MIME Type が返されたり、application/octet-stream がそのまま使われたりすることがあります。
「MIME type confusion attack」とは何ですか? どう防げばよいですか?
MIME Type 混同攻撃 悪意ある file を別形式に偽装して security check を回避できる vulnerability です。
一般的な攻撃手法:
- JavaScript でアップロード
.htmlアーカイブですが次としてマークされていますimage/png - server の MIME Type 設定不備を悪用し、text file を HTML として browser に実行させる攻撃
注意事項:
- 使用
X-Content-Type-Options: nosniffHeader によりブラウザの MIME sniffing を防止します - ファイルをアップロードする際は Content-Type だけに頼らず、file magic byte を確認して実際の MIME Type を検証してください。
- ファイルのダウンロード時に使用
Content-Disposition: attachment - upload を許可する file extension を whitelist で制限します。
WebP や AVIF など modern image format の MIME Type は何ですか?
現代の Web 画像形式と対応する MIME Type:
- WebP —
image/webp(Google が開発し、lossy/lossless compression と transparency に対応) - AVIF —
image/avif(AV1 エンコードをベースにしており、圧縮率は WebP より優れています) - SVG —
image/svg+xml(vector graphics、拡大縮小可能) - ICO —
image/x-icon(Web アイコン形式) - HEIF / HEIC —
image/heif/image/heic(Apple エコシステムで一般的)
⚠️ 注記: AVIF や WebP など新しい形式は、古いサーバーソフトウェアでは MIME Type のマッピングを手動追加しないと、正しく返されない場合があります application/octet-stream その結果、ブラウザで正しく表示できません。
📖 MIME Type 完全ガイド
MIME Types の仕組みとベストプラクティスを詳しく見る
a MIME type とは何ですか?
MIME TypeMIME Type(Multipurpose Internet Mail Extensions Type)は、インターネット通信でファイル形式を識別するための標準化されたラベルです。その歴史は 1992 年にさかのぼり、当初はメール添付でバイナリデータを扱えない問題を解決するために設計されました。HTTP の普及とともに MIME Type は Web 全体で採用され、ブラウザー、サーバー、API の間でコンテンツ形式を伝える基本的な仕組みになっています。
MIME Type は2つの部分で構成されます:主要タイプ 付き サブタイプ、スラッシュで区切ります。例: text/html 「テキスト型の HTML 形式」を表します。
HTTP communication では MIME Type は主に 2 つの header で伝えられます:Content-Type(current content の format を recipient へ通知)および Accept(client が受け入れ可能な format を server へ伝えます)。この仕組みは コンテンツネゴシエーション。
MIME Type 分類概要
MIME Type は 10 のカテゴリに分かれ、それぞれ異なるデジタルコンテンツ種別を表します。
Text(テキストクラス)
Text MIME Type はプレーンテキストや markup language のファイルを表すために使われます。最も一般的なのは text/html(HTML Web ページ)、text/css(スタイルシート)、text/plain(プレーンテキスト)と text/csv(comma separated values)。text-based encoded information は通常次を通じて encode されます charset 追加のパラメータを指定します。例: text/html; charset=utf-8。
画像(picture クラス)
Image MIME Type は静止画・動画を含むさまざまな画像形式を扱います。代表例: image/png(portable network graphics)、image/jpeg(JPEG 写真)、image/gif(GIF アニメーション / 静止画像)、image/svg+xml(ベクターグラフィックス)および image/webp(Google が開発したモダンな画像形式)。
現代の Web development では、正しい image format と MIME Type の選択が ページ読み込み速度 および SEO スコア 直接影響します。WebP や AVIF は圧縮効率に優れるため、現在では Web パフォーマンス最適化で有力な画像形式になっています。
Audio(音声)と Video(映像)
Multimedia MIME Type は audio/video file の streaming と download に使われます。audio/mpeg(MP3)は最も普及している音声形式であり、 video/mp4(MP4)は現代の動画の標準形式です。そのほか一般的な形式には audio/ogg、audio/wav、video/webm 待機。
HTML5 では、<audio> 付き <video> media file を再生できるかどうかの判定には、正しい Content-Type が必要です。
Application(アプリケーションクラス)
最も種類の多いカテゴリで、構造化データ、コード、binary format など幅広い形式を含みます。application/json 現代の REST API で中核となる形式であり、application/javascript(または text/javascript)は JavaScript ファイル用、application/pdf 最も広く使われているファイル形式です。
application/octet-stream server が file type を判別できない場合に使われる汎用的な binary MIME Type です。通常、browser は内容を表示する代わりに download 動作を行います。
フォント(フォント種別)
custom font を使う Web サイトでは Web Font の MIME Type が重要です。一般的な形式には font/ttf(TrueType)、font/otf(OpenType)、font/woff および font/woff2WOFF(Web Open Font Format)。WOFF2 は圧縮率が最も高く、現在 Web font の推奨形式です。
Archive(圧縮アーカイブ形式)と Document(ファイル形式)
対象となる圧縮ファイル形式 application/zip、application/gzip、application/x-tar 待機。ファイルカテゴリには application/pdf、application/msword(.doc)、application/vnd.openxmlformats-officedocument.wordprocessingml.document(.docx) など
Content-Type と HTTP Header の実践的な使い方
HTTP 通信では、Content-Type ヘッダーによってブラウザーがサーバーから返された内容をどのように扱うかが決まります。サーバーが返す内容が Content-Type: text/html、ブラウザは内容を HTML として解析します。戻り値が Content-Type: application/json, ブラウザはこれを JSON データとして認識し、通常は JavaScript で処理する必要があります。
実用例:
次をリクエストすると .jpg 画像の場合、サーバーのレスポンスには次が含まれます:
Content-Type: image/jpeg
ブラウザがこの header を受け取ると、内容をダウンロード対象ではなく JPEG 画像として表示すべきだと判断できます。これが日常的なブラウジングでの MIME Type の働きです。
ファイルアップロードと MIME Type 検証
file upload を扱う際、MIME Type 検証は重要なセキュリティ対策です。ただし開発者は次の点に注意してください。クライアントから送信される Content-Type は偽装できます. そのため HTTP request の Content-Type だけを信用して file type を検証するのは安全ではありません。
ベストプラクティスは、サーバー側でもファイルを確認することですMagic Bytes — 各ファイル形式には先頭に固有の byte sequence があります。たとえば JPEG ファイルは次の値から始まります。 FF D8 FF、PNG は 89 50 4E 47. この verification method は Content-Type header だけに依存するよりはるかに安全です。
MIME Type のセキュリティとベストプラクティス
MIME type confusion attack を防ぐため、業界ではさまざまな protection mechanism が使われています:
- X-Content-Type-Options: nosniff — browser に MIME sniffing をさせず、server が返した Content-Type を厳密に使用させます。
- Content-Disposition: attachment — ブラウザで表示しようとせず、ファイルを強制的にダウンロードさせます。
- 正しい MIME マッピング表 — サーバーが各ファイル拡張子に対して正しい Content-Type を返すことを確認します
- Content Security Policy(CSP) — CSP Header で読み込み可能な resource type を制限します。
概要: MIME Type は Web 開発の基礎知識です。HTTP ヘッダーの設定、ファイルアップロード時の検証、フロントエンドのリソース読み込みまで、さまざまな場面で MIME Type が関係します。正しく理解して利用することで、サイトをより安定して動作させられるだけでなく、セキュリティとユーザー体験の向上にもつながります。ToolHub の MIME Type Lookup を使えば、任意の拡張子と MIME Type の対応関係をすばやく確認できます。