MIME タイプ検索
拡張子やタイプから MIME タイプを検索。image・video・audio・application・text・font の約 120 種を収録。
用途
MIME タイプ(現在は Internet media type)は、image/png や application/json のような 2 部構成のラベルで、サーバー、ブラウザ、ライブラリにバイト列の解釈方法を伝えます。HTTP の Content-Type ヘッダ、Multipart メッセージのパート、file --mime の出力に現れます。IANA のレジストリには数千件あり、本ツールはウェブで実際に出会う約 120 種を収録しています。
使うべきタイミング
- API レスポンスに
Content-Typeを設定するとき、.docx、.heic、.webmanifest用の正しいタイプが知りたい。 - アップロードフィールドの
accept属性や、S3 バケットの許可リストを設定するとき。 - hex ダンプや tcpdump で
application/grpc-webが何かを調べたいとき。 - 静的ファイルサーバーや CDN の設定で、拡張子→MIME のマッピングを作りたいとき。
text/xmlとapplication/xmlのどちらを使うか決めたいとき(新規コードでは RFC 7303 に従い後者を推奨)。
よくある注意点
- 拡張子は MIME タイプと等価ではありません。
.jsonは通常application/jsonにマップされますが、サーバーがtext/plainとして配信すれば、ブラウザはヘッダに従います。常にヘッダを明示してください。 - JavaScript は混乱しがちです。 RFC 9239 では
text/javascriptが推奨です。application/javascript、application/ecmascriptなどは廃止予定ですが、まだ目にします。 - OOXML タイプは非常に長いです。
.docxはapplication/vnd.openxmlformats-officedocument.wordprocessingml.document。覚えようとせず、コピーしましょう。 application/octet-streamは「分からない」の意味です。 タイプを制御できるなら本物のタイプを使ってください。レンダリング可能なコンテンツでも、ブラウザがダウンロード扱いにすることがあります。- テキスト系では charset が重要です。
Content-Type: text/html; charset=utf-8。これがないとブラウザは推測し、時々間違えて文字化けします。 - マジックバイトのスニッフィングが宣言型と違うことがあります。 ブラウザは
Content-Typeをファイル内容で再判定することがあります。X-Content-Type-Options: nosniffでこれを無効化できます。セキュリティのため設定を推奨します。