Types MIME
Référence rapide des types MIME d'extension de fichier avec recherche et filtrage par catégorie
Document(17)
application/pdf
application/msword
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.ms-powerpoint
application/vnd.openxmlformats-officedocument.presentationml.presentation
text/plain
application/rtf
application/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.presentation
text/csv
application/json
application/xml
text/html
text/html
Image(15)
image/jpeg
image/jpeg
image/png
image/gif
image/webp
image/svg+xml
image/x-icon
image/bmp
image/tiff
image/tiff
image/avif
image/heic
image/heif
image/vnd.adobe.photoshop
image/raw
Audio(10)
audio/mpeg
audio/wav
audio/ogg
audio/mp4
audio/flac
audio/aac
audio/x-ms-wma
audio/aiff
audio/midi
audio/midi
Vidéo(12)
video/mp4
video/webm
video/x-msvideo
video/quicktime
video/x-ms-wmv
video/x-flv
video/x-matroska
video/mp4
video/mpeg
video/mpeg
video/3gpp
video/mp2t
Archive(9)
application/zip
application/vnd.rar
application/x-7z-compressed
application/x-tar
application/gzip
application/x-bzip2
application/x-xz
application/x-iso9660-image
application/x-apple-diskimage
Code(31)
application/javascript
application/javascript
application/typescript
application/typescript
application/javascript
text/css
text/x-scss
text/x-sass
text/x-less
text/x-python
text/x-java
text/x-c
text/x-c++
text/x-c
text/x-c++
text/x-csharp
text/x-go
text/x-rust
text/x-ruby
text/x-php
text/x-swift
text/x-kotlin
application/sql
application/x-sh
application/x-sh
application/x-yaml
application/x-yaml
application/toml
text/x-ini
text/x-vue
text/x-svelte
Police(5)
font/woff
font/woff2
font/ttf
font/otf
application/vnd.ms-fontobject
Autre(16)
application/vnd.microsoft.portable-executable
application/x-msi
application/vnd.android.package-archive
application/octet-stream
application/vnd.debian.binary-package
application/x-rpm
application/java-archive
application/java-archive
application/x-shockwave-flash
application/x-chrome-extension
application/x-xpinstall
application/x-bittorrent
text/calendar
text/vcard
application/epub+zip
application/x-mobipocket-ebook
Qu'est-ce qu'un type MIME ?
Les types MIME (Extensions Multipurpose Internet Mail) sont un standard pour indiquer la nature et le format des documents, fichiers ou flux d'octets. Les navigateurs et serveurs utilisent les types MIME pour déterminer comment gérer le contenu. Par exemple, recevoir image/jpeg indique au navigateur d'afficher une image. Les types MIME décrivent la nature du contenu d’un fichier ou d’une réponse HTTP, comme text/html, application/json, image/png ou application/pdf. Ils influencent rendu navigateur, téléchargements, parsing d’API, validation d’upload, cache et sécurité. Extension et type MIME ne correspondent pas toujours, d’où l’intérêt de les vérifier lors d’un diagnostic serveur, fichier inconnu ou problème d’envoi. Pour la sécurité, il ne faut pas leur faire confiance aveuglément; inspection du contenu, règles d’extension et liste autorisée doivent être combinées.
Comment utiliser
Référence rapide
- Utilisez la barre de recherche pour trouver une extension ou un type MIME précis
- Cliquez sur les étiquettes de catégorie pour filtrer par type de fichier
- Cliquez sur les boutons « Ext » ou « MIME » pour copier le contenu correspondant
- Parcourez les catégories pour une recherche rapide : documents, images, audio, vidéo, archives, code, polices, etc.
Notes sur la recherche
- Les types MIME sont des conventions utilisées par les serveurs, navigateurs et applications ; l'extension du fichier seule ne garantit pas son contenu réel.
- Pour les envois et les contrôles de sécurité, validez si possible à la fois le type MIME déclaré et la signature du fichier.
Cas d’utilisation
Principe technique
Les types MIME (Multipurpose Internet Mail Extensions) sont des identifiants normalisés pour les formats de données, définis à l'origine dans RFC 2045/RFC 2046 pour les pièces jointes des courriels, puis adoptés par HTTP (RFC 7231 §3.1.1.5) pour la négociation de contenu web. Un type MIME est structuré sous la forme type/sous-type — le type déclare la catégorie générale (text, image, audio, video, application, multipart, font, model) et le sous-type spécifie le format exact (par ex. text/html, image/png, application/json). Des paramètres optionnels suivent un point-virgule (text/html; charset=utf-8). L'Internet Assigned Numbers Authority (IANA) maintient le registre officiel des types MIME sur iana.org/assignments/media-types. L'enregistrement suit RFC 6838, qui définit un processus de révision nécessitant un document de spécification, des considérations de sécurité et des notes d'interopérabilité. Les types non enregistrés peuvent utiliser le préfixe x- (par ex. application/x-tar) comme convention pour les formats expérimentaux ou propriétaires, bien que RFC 6648 recommande d'éviter le préfixe x- au profit d'un enregistrement correct. Dans HTTP, l'en-tête Content-Type indique au client comment interpréter le corps de la réponse. Un serveur renvoyant Content-Type: image/svg+xml déclenche le moteur de rendu SVG du navigateur ; Content-Type: application/octet-stream déclenche une invite de téléchargement car le navigateur ne peut pas déterminer le format. Le navigateur utilise également les informations de type MIME pour le reniflage MIME (MIME sniffing) — lorsque le serveur omet Content-Type ou envoie un type générique, le navigateur peut inspecter les premiers octets de la réponse (octets magiques) pour deviner le format réel. Ce comportement est contrôlé par l'en-tête X-Content-Type-Options: nosniff, qui désactive le reniflage et exige que le serveur déclare le type correct. Pour les téléchargements de fichiers, l'en-tête Accept indique au serveur quels types MIME le client attend en réponse, tandis que l'attribut accept de l'élément input restreint le sélecteur de fichier à des types spécifiques (par ex. accept="image/png, image/jpeg"). Côté serveur, les fichiers téléchargés doivent être validés à la fois par leur type MIME déclaré et par leur signature de fichier (octets magiques), car aucun des deux n'est fiable à lui seul — un fichier nommé image.png avec Content-Type: image/png pourrait contenir du code exécutable. L'outil sert de référence pour rechercher le type MIME canonique d'une extension de fichier donnée, couvrant plus de 100 formats courants répartis en huit catégories.
- Structure RFC 2046 : type/sous-type — le type indique la catégorie générale de contenu et le sous-type le format exact ; des paramètres optionnels suivent un point-virgule (text/html; charset=utf-8) et sont insensibles à la casse selon la spécification, bien que la convention soit d'utiliser des minuscules.
- Enregistrement IANA (RFC 6838) : les nouveaux types de média nécessitent un document de spécification, une section de considérations de sécurité et des notes d'interopérabilité — le processus de révision garantit que les types sont bien documentés et que les conflits sont évités avant leur entrée dans le registre.
- En-tête HTTP Content-Type : le serveur déclare le type MIME du corps de la réponse ; les navigateurs l'utilisent pour sélectionner le moteur de rendu approprié (analyseur HTML, décodeur d'image, visionneuse PDF) ou déclencher un téléchargement — un Content-Type incorrect est la cause la plus fréquente des bugs de « téléchargement au lieu de l'affichage ».
- Reniflage MIME et X-Content-Type-Options : lorsque Content-Type est absent ou générique, les navigateurs peuvent inspecter les octets magiques pour deviner le format — X-Content-Type-Options: nosniff désactive ce comportement et exige une correspondance exacte du Content-Type, ce qui constitue une bonne pratique de sécurité.
- application/octet-stream : le type de repli binaire générique — les navigateurs le traitent comme un flux opaque et déclenchent un téléchargement, ce qui en fait la valeur par défaut la plus sûre lorsque le serveur ne peut pas déterminer le format, mais cela empêche l'aperçu dans le navigateur de contenu autrement affichable.
- Validation des téléchargements de fichiers : l'attribut accept du filtre input côté client, mais la validation côté serveur doit vérifier à la fois le Content-Type déclaré et les octets magiques du fichier — une incohérence entre l'extension, le type MIME et la signature du fichier est un signal d'alarme pour les téléchargements malveillants.
- Types propriétaires et expérimentaux : la convention du préfixe x- (application/x-tar, video/x-matroska) précède le processus d'enregistrement formel — RFC 6648 recommande de migrer ces types vers des types IANA correctement enregistrés lorsque c'est possible, mais beaucoup restent largement utilisés.
Exemples
Configuration mime.types Nginx
types {
text/html html htm;
image/jpeg jpg jpeg;
application/pdf pdf;
application/javascript js;
}
Note: chaque ligne associe un type MIME à une ou plusieurs extensions de fichier ; Nginx envoie le type dans l'en-tête Content-Type
IANA: https://www.iana.org/assignments/media-types/ tient le registre officielEn-tête de réponse HTTP Content-Type
Content-Type: application/json; charset=utf-8
Note: le charset est facultatif mais recommandé pour text/* et application/json ; les clients l'utilisent pour décoder correctement le corps
RFC: la section 3.1.1.5 du RFC 7231 définit la sémantique de l'en-tête Content-Type
MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-TypeConstructeur Blob du navigateur
const blob = new Blob([data], { type: 'application/pdf' });
const url = URL.createObjectURL(blob);
Note: le type devient le Content-Type lors du téléchargement ou de l'envoi du blob ; choisissez un sous-type précis pour éviter application/octet-stream
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob documente le paramètre typeTypes MIME courants par catégorie
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
L'IANA les classe dans le registre Media Types sous les noms de type de premier niveauFAQ
Qu'est-ce qu'un type MIME et pourquoi est-ce important ?
Un type MIME (Multipurpose Internet Mail Extensions, aussi appelé media type) est une étiquette courte comme text/html, image/png ou application/json qui indique aux logiciels destinataires comment interpréter un flux d'octets. Navigateurs, clients mail, formulaires de téléversement et API s'y appuient pour décider de rendre, télécharger, parser ou rejeter le contenu.
En quoi le type MIME diffère-t-il de l'extension de fichier ?
L'extension fait partie du nom de fichier et n'est qu'une convention de nommage. Le type MIME est envoyé sur le réseau dans l'en-tête Content-Type. Ils sont généralement cohérents (.png ↔ image/png), mais un serveur peut servir n'importe quelle extension avec n'importe quel type MIME, et les navigateurs font bien plus confiance à l'en-tête qu'à l'extension. Aligner les deux est une bonne pratique ; se fier à l'extension pour la sécurité est un bug.
Que signifie application/octet-stream ?
C'est le type MIME générique pour des « données binaires arbitraires ». Les navigateurs le recevant proposeront un téléchargement plutôt que de tenter un rendu. Les serveurs y reviennent quand ils ne peuvent pas identifier le format, ce qui révèle généralement un mappage MIME manquant ou mal configuré. Remplacez-le par le type spécifique correct dès que possible.
Puis-je faire confiance à Content-Type pour valider des fichiers téléversés ?
Pas seul. N'importe qui peut prétendre image/png en téléversant un exécutable. Inspectez toujours les octets réels (nombres magiques, en-tête PNG 89 50 4E 47, en-tête PDF %PDF-, en-tête ZIP PK), vérifiez l'extension, appliquez une liste blanche côté serveur et limitez la taille. Le MIME fourni par le navigateur lors d'un upload est un indice, pas une preuve.
Pourquoi un téléchargement enregistre-t-il avec le mauvais nom ou la mauvaise extension ?
Les navigateurs choisissent le nom enregistré dans cet ordre : en-tête Content-Disposition, chemin de l'URL, type MIME. Si le serveur renvoie text/html pour un téléchargement PDF, le navigateur peut l'enregistrer avec .html. Définissez Content-Disposition: attachment; filename="name.pdf" et le type MIME correct application/pdf pour éviter les surprises.
Comment trouver le bon type MIME pour un format personnalisé ou rare ?
Consultez d'abord le registre IANA des media types (iana.org/assignments/media-types). Pour les formats non enregistrés ou spécifiques à un éditeur, la convention est application/vnd.* ou application/x-* (par exemple application/vnd.api+json, application/x-7z-compressed). Utilisez la correspondance standard la plus proche avant d'en inventer une nouvelle.
Pourquoi .json et .js affichent-ils des types MIME différents ?
JSON est de la donnée et utilise application/json. JavaScript est du code exécutable servi en text/javascript ou application/javascript (la RFC 9239 a fait de text/javascript le type recommandé). Les confondre a des conséquences : une balise script refusera d'exécuter application/json, et certains serveurs rejettent application/javascript quand ils n'acceptent que la variante text.