ToolActToolAct

MIMEタイプ参照

ファイル拡張子のMIMEタイプを検索とカテゴリフィルタで迅速に検索

合計 115 个类型

ドキュメント(17)

.pdf

application/pdf

.doc

application/msword

.docx

application/vnd.openxmlformats-officedocument.wordprocessingml.document

.xls

application/vnd.ms-excel

.xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

.ppt

application/vnd.ms-powerpoint

.pptx

application/vnd.openxmlformats-officedocument.presentationml.presentation

.txt

text/plain

.rtf

application/rtf

.odt

application/vnd.oasis.opendocument.text

.ods

application/vnd.oasis.opendocument.spreadsheet

.odp

application/vnd.oasis.opendocument.presentation

.csv

text/csv

.json

application/json

.xml

application/xml

.html

text/html

.htm

text/html

画像(15)

.jpg

image/jpeg

.jpeg

image/jpeg

.png

image/png

.gif

image/gif

.webp

image/webp

.svg

image/svg+xml

.ico

image/x-icon

.bmp

image/bmp

.tiff

image/tiff

.tif

image/tiff

.avif

image/avif

.heic

image/heic

.heif

image/heif

.psd

image/vnd.adobe.photoshop

.raw

image/raw

音声(10)

.mp3

audio/mpeg

.wav

audio/wav

.ogg

audio/ogg

.m4a

audio/mp4

.flac

audio/flac

.aac

audio/aac

.wma

audio/x-ms-wma

.aiff

audio/aiff

.mid

audio/midi

.midi

audio/midi

動画(12)

.mp4

video/mp4

.webm

video/webm

.avi

video/x-msvideo

.mov

video/quicktime

.wmv

video/x-ms-wmv

.flv

video/x-flv

.mkv

video/x-matroska

.m4v

video/mp4

.mpeg

video/mpeg

.mpg

video/mpeg

.3gp

video/3gpp

.m2ts

video/mp2t

圧縮(9)

.zip

application/zip

.rar

application/vnd.rar

.7z

application/x-7z-compressed

.tar

application/x-tar

.gz

application/gzip

.bz2

application/x-bzip2

.xz

application/x-xz

.iso

application/x-iso9660-image

.dmg

application/x-apple-diskimage

コード(31)

.js

application/javascript

.mjs

application/javascript

.ts

application/typescript

.tsx

application/typescript

.jsx

application/javascript

.css

text/css

.scss

text/x-scss

.sass

text/x-sass

.less

text/x-less

.py

text/x-python

.java

text/x-java

.c

text/x-c

.cpp

text/x-c++

.h

text/x-c

.hpp

text/x-c++

.cs

text/x-csharp

.go

text/x-go

.rs

text/x-rust

.rb

text/x-ruby

.php

text/x-php

.swift

text/x-swift

.kt

text/x-kotlin

.sql

application/sql

.sh

application/x-sh

.bash

application/x-sh

.yaml

application/x-yaml

.yml

application/x-yaml

.toml

application/toml

.ini

text/x-ini

.vue

text/x-vue

.svelte

text/x-svelte

フォント(5)

.woff

font/woff

.woff2

font/woff2

.ttf

font/ttf

.otf

font/otf

.eot

application/vnd.ms-fontobject

その他(16)

.exe

application/vnd.microsoft.portable-executable

.msi

application/x-msi

.apk

application/vnd.android.package-archive

.ipa

application/octet-stream

.deb

application/vnd.debian.binary-package

.rpm

application/x-rpm

.jar

application/java-archive

.war

application/java-archive

.swf

application/x-shockwave-flash

.crx

application/x-chrome-extension

.xpi

application/x-xpinstall

.torrent

application/x-bittorrent

.ics

text/calendar

.vcf

text/vcard

.epub

application/epub+zip

.mobi

application/x-mobipocket-ebook

MIMEタイプとは?

MIMEタイプ(Multipurpose Internet Mail Extensions)は、ドキュメント、ファイル、バイトストリームの性質と形式を示すインターネット標準です。ブラウザとサーバーはMIMEタイプを使用してコンテンツの処理方法を決定します。例えば、image/jpegを受信するとブラウザは画像を表示し、application/pdfはPDFプレビューを開く可能性があります。正しいMIMEタイプの設定はWebアプリケーションの正常な動作に不可欠です。

使い方

早見表

  1. 検索ボックスで特定の拡張子やMIMEタイプを検索できます
  2. カテゴリタグをクリックしてファイル種別で絞り込めます
  3. 「Ext」または「MIME」ボタンをクリックすると対応する内容をコピーできます
  4. カテゴリから素早く参照:ドキュメント、画像、音声、動画、アーカイブ、コード、フォントなど

注意事項

  • MIMEタイプはサーバー、ブラウザ、アプリケーション間で使われる取り決めであり、ファイル拡張子だけでは実際の内容の証明にはなりません。
  • アップロードやセキュリティチェックでは、可能な限り宣言されたMIMEタイプとファイル署名の両方を検証してください。

利用シーン

拡張子でMIMEタイプを検索ドキュメント、画像、音声、動画、圧縮ファイル、コードファイル、フォントなど一般的なファイルタイプの拡張子やMIME文字列を横断検索できます。全フィルタ有効時はカテゴリ別にグループ表示されるため、一覧形式のテーブルより広範なブラウジングがしやすいです。全文検索は拡張子(png、webp、json)とMIME値(image/png、application/json)の両方にマッチするため、どちらからでも同じ検索結果にたどり着けます。
アップロードやレスポンスヘッダーの値をコピー各カードから拡張子またはMIME値をコピーでき、ファイルアップロードのacceptリスト、Content-Typeヘッダー、ストレージメタデータ、CDNルール、バックエンドバリデーションマップの設定に便利です。参照データはページに埋め込まれているため、オフラインやIANAレジストリにアクセスできない社内ノートPCでも動作します。コピーボタンは末尾の空白や引用符なしでリテラル値をクリップボードに書き込みます。
ファイル機能構築時のカテゴリカバレッジ確認カテゴリフィルタと結果件数により、プロダクトやエンジニアリングチームが現在の機能がどのファイルファミリーを認識しているかを確認できます。完全な標準レジストリではなく、一般的なフォーマットのクイックリファレンスです。圧縮ファイルやフォントセクションの小さなギャップは、アップロードを静かに拒否している機能を示していることがあります。
REST APIレスポンス用のContent-Typeヘッダーを作成application/vnd.api+jsonやapplication/x-ndjsonといった値をresponse.setHeader()呼び出しにコピーします。カテゴリフィルタで珍しいサフィックスを照合し、JSON-LD、GeoJSON、WebAssemblyレスポンスがプレーンテキストと誤認されないようにします。RFC 6839のベンダー固有+jsonや+xmlの慣例はペイロード構造に関する重要な情報を含むため、タイプミスはクライアントパーサーの破壊につながります。
IANA、x-プレフィックス実験値、コンテンツスニッフィングを網羅IANAレジストリは登録済みMIMEタイプの公式ソースですが、実用的な値をすべて網羅しているわけではありません。実験的なエントリはx-プレフィックス(application/x-tar、application/x-rar-compressed)を使用し、nginxやApacheのmime.typesファイルに含まれていても標準化されていません。セキュリティの観点では、宣言されたContent-Typeヘッダーを信頼するよりコンテンツスニッフィング(ファイル先頭のマジックバイトの読み取り)の方が信頼性が高く、現代のブラウザはX-Content-Type-Options: nosniffでレガシーのスニッフィングフォールバックを無効化します。ルックアップテーブルでヘッダー値を見つけたら、サーバー側で実際のバイトを検証してからファイルを配信しましょう。

仕組み

MIMEタイプ(Multipurpose Internet Mail Extensions)は、データ形式の標準化された識別子であり、もともとはRFC 2045/RFC 2046で電子メール添付ファイル向けに定義され、後にHTTP(RFC 7231 §3.1.1.5)でWebコンテンツネゴシエーションに採用された。MIMEタイプは type/subtype の構造を持ち、type は大カテゴリ(text、image、audio、video、application、multipart、font、model)を宣言し、subtype は正確な形式を指定する(例:text/html、image/png、application/json)。オプションのパラメータはセミコロンの後に続く(text/html; charset=utf-8)。 Internet Assigned Numbers Authority(IANA)は iana.org/assignments/media-types で公式MIMEタイプレジストリを維持している。登録はRFC 6838に従い、仕様ドキュメント、セキュリティ上の考慮事項、相互運用性ノートが必要なレビュープロセスを経る。未登録タイプは x- プレフィックス(例:application/x-tar)を使用できるが、これは実験的またはベンダー固有のフォーマットの慣例であり、RFC 6648では適切な登録を優先し x- プレフィックスの回避を推奨している。 HTTPでは、Content-Typeヘッダーがクライアントにレスポンスボディの解釈方法を伝える。サーバーが Content-Type: image/svg+xml を返すとブラウザはSVGレンダラーを起動し、Content-Type: application/octet-stream はブラウザがフォーマットを判別できないためダウンロードプロンプトを表示する。ブラウザはMIMEスニッフィングでもMIMEタイプ情報を活用する。サーバーがContent-Typeを省略したり汎用タイプを送信したりした場合、ブラウザはレスポンスの先頭数バイト(マジックバイト)を調査して実際のフォーマットを推測することがある。この動作は X-Content-Type-Options: nosniff ヘッダーで制御でき、スニッフィングを無効化してサーバーに正しいタイプの宣言を義務付ける。 ファイルアップロードでは、Acceptヘッダーがサーバーにクライアントが期待するMIMEタイプを伝え、input要素のaccept属性はファイルピッカーを特定タイプに制限する(例:accept="image/png, image/jpeg")。サーバー側では、アップロードされたファイルを宣言されたMIMEタイプとファイル署名(マジックバイト)の両方で検証すべきである。どちらも単独では信頼できないためだ。image.png という名前で Content-Type: image/png のファイルに実行可能なコードが含まれている可能性がある。本ツールは、与えられたファイル拡張子に対する正規のMIMEタイプを検索するリファレンスとして、8カテゴリにわたる100以上の一般的なフォーマットをカバーしている。

  • RFC 2046構造:type/subtype — typeは大カテゴリを示し、subtypeは正確な形式を示す。オプションパラメータはセミコロンの後に続き(text/html; charset=utf-8)、仕様上は大文字小文字を区別しないが、慣例として小文字が使用される。
  • IANA登録(RFC 6838):新しいメディアタイプには仕様ドキュメント、セキュリティ上の考慮事項セクション、相互運用性ノートが必要。レビュープロセスにより、タイプが十分に文書化され、レジストリ登録前に競合が回避されることが保証される。
  • HTTP Content-Typeヘッダー:サーバーはレスポンスボディのMIMEタイプを宣言し、ブラウザはそれに基づいて適切なレンダラー(HTMLパーサー、画像デコーダー、PDFビューアー)を選択するかダウンロードを開始する。誤ったContent-Typeは「ファイルが表示されずにダウンロードされる」バグの最も一般的な原因。
  • MIMEスニッフィングとX-Content-Type-Options:Content-Typeが欠落しているか汎用の場合、ブラウザはマジックバイトを調査してフォーマットを推測することがある。X-Content-Type-Options: nosniffはこの動作を無効化し、正確なContent-Typeの一致を要求する。これはセキュリティ上のベストプラクティス。
  • application/octet-stream:汎用バイナリフォールバックタイプ。ブラウザは不透明なストリームとして扱いダウンロードを開始するため、サーバーがフォーマットを判別できない場合に最も安全なデフォルトとなるが、本来表示可能なコンテンツのブラウザ内プレビューが不可能になる。
  • ファイルアップロード検証:inputのaccept属性はクライアント側でファイルピッカーをフィルタリングするが、サーバー側の検証では宣言されたContent-Typeとファイルのマジックバイトの両方を確認する必要がある。拡張子、MIMEタイプ、ファイル署名の不一致は悪意あるアップロードの危険信号。
  • ベンダー固有および実験的タイプ:x-プレフィックス慣例(application/x-tar、video/x-matroska)は正式な登録プロセスに先行するもの。RFC 6648では可能な限りIANA登録済みタイプへの移行を推奨しているが、多くのタイプが広く使用され続けている。

使用例

Nginx の mime.types 設定

types {
  text/html             html htm;
  image/jpeg            jpg jpeg;
  application/pdf       pdf;
  application/javascript js;
}

備考: 各行は MIME タイプを 1 つ以上のファイル拡張子にマッピング。Nginx は対応する Content-Type ヘッダーで配信する
IANA: https://www.iana.org/assignments/media-types/ が公式レジストリを管理

HTTP Content-Type レスポンスヘッダー

Content-Type: application/json; charset=utf-8

備考: charset は省略可能だが、text/* と application/json では推奨。クライアントはこれを使ってボディを正しくデコードする
RFC: RFC 7231 セクション 3.1.1.5 が Content-Type ヘッダーのセマンティクスを規定
MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type

ブラウザの Blob コンストラクタ

const blob = new Blob([data], { type: 'application/pdf' });
const url  = URL.createObjectURL(blob);

備考: 指定した type は Blob をダウンロード/アップロードした際の Content-Type となる。application/octet-stream を避けるため具体的なサブタイプを指定する
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob に type パラメータの説明あり

カテゴリ別の代表的な MIME タイプ

Text:       text/plain, text/html, text/css, text/javascript, text/markdown
Image:      image/jpeg, image/png, image/gif, image/webp, image/svg+xml
Audio:      audio/mpeg, audio/wav, audio/ogg, audio/aac
Video:      video/mp4, video/webm, video/ogg
Application: application/json, application/pdf, application/xml, application/zip

IANA は Media Types レジストリでトップレベルタイプ名ごとに分類している

よくある質問

MIMEタイプとは何で、なぜ重要ですか?

MIMEタイプ(Multipurpose Internet Mail Extensions、メディアタイプとも呼ばれる)は、text/html、image/png、application/jsonのような短いラベルで、受信側のソフトウェアにバイトストリームをどう解釈すべきかを伝えます。ブラウザ、メールクライアント、ファイルアップローダー、APIはすべて、これに基づいてレンダリング、ダウンロード、解析、拒否のいずれを行うかを決定します。

MIMEタイプとファイル拡張子はどう違いますか?

拡張子はファイル名の一部で、純粋な命名規則です。MIMEタイプはネットワーク上のContent-Typeヘッダで送信されます。両者は通常一致します(.png ↔ image/png)が、サーバはどんな拡張子でも任意のMIMEタイプで配信でき、ブラウザは拡張子よりもヘッダをはるかに信頼します。両者を一致させるのは良いマナーですが、セキュリティを拡張子に頼るのはバグです。

application/octet-stream とはどういう意味ですか?

汎用の「任意のバイナリデータ」を表すMIMEタイプです。これを受信したブラウザは、コンテンツのレンダリングを試みずにダウンロードを促します。サーバが形式を識別できないときにこれにフォールバックしますが、これは通常、MIMEマッピングが欠如しているか誤設定されていることを意味します。可能な限り、正しい具体的な型に置き換えてください。

アップロードされたファイルの検証にContent-Typeを信頼できますか?

それだけでは不十分です。誰でも実行ファイルをアップロードしながらimage/pngを名乗ることができます。実際のバイト(マジックナンバー、PNGヘッダ 89 50 4E 47、PDFヘッダ %PDF-、ZIPヘッダ PK)を必ず確認し、ファイル拡張子をチェックし、サーバ側の許可リストを適用し、ファイルサイズを制限してください。アップロードでブラウザが提供するMIMEタイプは、証拠ではなくヒントです。

ダウンロードで誤ったファイル名や拡張子で保存されるのはなぜですか?

ブラウザは保存名を、Content-Dispositionヘッダ、URLパス、MIMEタイプの順で決定します。サーバがPDFダウンロードに対してtext/htmlを返すと、ブラウザは.htmlで保存することがあります。Content-Disposition: attachment; filename="name.pdf" と正しい application/pdf MIMEタイプを設定すれば、こうした驚きを避けられます。

カスタム形式や珍しい形式の正しいMIMEタイプはどう探しますか?

まずIANAのメディアタイプ登録(iana.org/assignments/media-types)を確認してください。未登録またはベンダー固有の形式の場合、慣例として application/vnd.* または application/x-* を使用します(例:application/vnd.api+json、application/x-7z-compressed)。新しい型を発明する前に、最も近い標準的な一致を使用してください。

.jsonと.jsで異なるMIMEタイプが表示されるのはなぜですか?

JSONはデータであり、application/json を使います。JavaScriptは実行可能コードであり、text/javascript または application/javascript として配信されます(RFC 9239 で text/javascript が推奨されました)。両者を取り違えると問題になります。スクリプトタグは application/json では実行を拒否しますし、一部のサーバは text バリアントしか受け付けず application/javascript を拒否します。