Recherche de type MIME
Rechercher les types MIME par extension de fichier
Text
text/plaintext/htmltext/csstext/javascripttext/csvtext/xmltext/markdowntext/calendarApplication
application/jsonapplication/xmlapplication/pdfapplication/zipapplication/gzipapplication/x-tarapplication/x-7z-compressedapplication/x-rar-compressedapplication/javascriptapplication/typescriptapplication/wasmapplication/octet-streamapplication/x-www-form-urlencodedapplication/ld+jsonOffice
application/mswordapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/vnd.ms-excelapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.ms-powerpointapplication/vnd.openxmlformats-officedocument.presentationml.presentationImage
image/jpegimage/pngimage/gifimage/webpimage/svg+xmlimage/bmpimage/tiffimage/x-iconimage/avifimage/heicAudio
audio/mpegaudio/wavaudio/oggaudio/webmaudio/aacaudio/flacaudio/midiVideo
video/mp4video/webmvideo/oggvideo/quicktimevideo/x-msvideovideo/x-matroskavideo/x-flvFont
font/wofffont/woff2font/ttffont/otfapplication/vnd.ms-fontobjectMultipart
multipart/form-datamultipart/byterangesAbout MIME Types
MIME (Multipurpose Internet Mail Extensions) types indicate the nature and format of a file. They're used in HTTP headers, email attachments, and more. The format is type/subtype.
Le recherche de type MIME offre une recherche bidirectionnelle entre extensions de fichiers et types MIME (aussi appelés types de média ou types de contenu), vous aidant à trouver le bon en-tête Content-Type pour n'importe quel format de fichier ou à identifier quelles extensions correspondent à un type MIME donné. Saisissez .woff2 pour apprendre que le type correct est font/woff2, ou recherchez application/json pour voir toutes les extensions associées comme .json, .map et .geojson.
Comprendre les types MIME
Les types MIME -- à l'origine "Multipurpose Internet Mail Extensions" mais désormais utilisés bien au-delà du courrier électronique -- sont le moyen standard d'identifier les formats de fichiers sur le web. Lorsqu'un serveur web envoie un fichier à votre navigateur, il inclut un en-tête Content-Type contenant le type MIME, et le navigateur utilise ce type pour décider comment traiter la réponse. Un fichier HTML est rendu comme une page, un PNG est affiché comme une image, un PDF s'ouvre dans le lecteur, et un ZIP est proposé en téléchargement. Sans le bon type MIME, le navigateur doit deviner, et les suppositions sont souvent erronées.
La raison pour laquelle les types MIME comptent plus que les extensions de fichiers est que les réponses HTTP ne portent pas de noms de fichiers. Lorsque votre navigateur demande https://example.com/api/data, il n'y a pas d'extension .json pour indiquer le format -- le navigateur se fie entièrement à l'en-tête Content-Type: application/json pour savoir qu'il reçoit du JSON. Si le serveur envoie text/plain à la place, le navigateur affichera le texte brut plutôt que de l'analyser comme des données structurées. Et avec l'en-tête de sécurité X-Content-Type-Options: nosniff (que toutes les applications modernes devraient définir), le navigateur applique strictement le type MIME déclaré et ne tentera pas de deviner à partir du contenu.
Pour les développeurs web, les problèmes de types MIME les plus courants proviennent d'une mauvaise configuration du serveur. Un nouveau format de police comme .woff2 est servi comme application/octet-stream parce que le serveur n'a pas de correspondance pour cette extension, ce qui amène le navigateur à le télécharger au lieu de l'utiliser comme police. Un fichier JavaScript est servi en text/plain et est bloqué par la vérification MIME du navigateur. Un fichier SVG est servi sans le suffixe +xml et ne parvient pas à s'afficher. Cet outil de recherche vous aide à trouver rapidement le type correct pour que vous puissiez mettre à jour la configuration de votre serveur en toute confiance.
Comment rechercher un type MIME
- Saisissez une extension de fichier (par ex.
.json,.webp,.woff2) ou un type MIME (par ex.application/pdf,image/svg+xml). - Consultez le résultat correspondant avec le type MIME principal, les types alternatifs et les notes de compatibilité navigateur.
- Copiez la valeur
Content-Typecorrecte pour l'utiliser dans la configuration de votre serveur ou les en-têtes HTTP.
Exemples de recherche de type MIME
Recherche par extension de fichier
| Extension | Type MIME principal | Alternatives / Remarques |
|---|---|---|
.html | text/html | -- |
.css | text/css | -- |
.js | application/javascript | Historique : text/javascript (encore largement utilisé) |
.json | application/json | -- |
.xml | application/xml | Aussi : text/xml |
.svg | image/svg+xml | -- |
.png | image/png | -- |
.jpg / .jpeg | image/jpeg | -- |
.webp | image/webp | -- |
.avif | image/avif | Format moderne, vérifiez la compatibilité navigateur |
.gif | image/gif | -- |
.pdf | application/pdf | -- |
.woff2 | font/woff2 | -- |
.woff | font/woff | Historique : application/font-woff |
.mp4 | video/mp4 | -- |
.webm | video/webm | -- |
.zip | application/zip | -- |
.gz | application/gzip | -- |
.csv | text/csv | -- |
.md | text/markdown | Pas universellement reconnu par les serveurs |
Recherche par type MIME
| Type MIME | Extensions associées |
|---|---|
application/octet-stream | .bin, .exe, .dll, .iso, et tout binaire inconnu |
text/plain | .txt, .log, .ini, .cfg |
application/json | .json, .map, .topojson, .geojson |
image/jpeg | .jpg, .jpeg, .jfif |
application/xml | .xml, .xsl, .xsd, .rng |
Quand utiliser la recherche de type MIME
- Configurer les types de contenu du serveur web -- Définissez le bon
Content-Typepour les fichiers statiques servis par nginx, Apache ou IIS afin d'éviter les problèmes de téléchargement au lieu de l'affichage. - Définir les en-têtes de téléchargement -- Utilisez le bon type MIME dans les en-têtes
Content-TypeetContent-Dispositionpour les téléchargements de fichiers. - Valider les envois de fichiers -- Vérifiez les fichiers envoyés par rapport aux types MIME attendus pour rejeter les formats non supportés.
- Déboguer les erreurs "fichier non reconnu" -- Identifiez quand un serveur envoie le mauvais type MIME, causant une mauvaise gestion du fichier par le navigateur.
- Configurer la mise en cache CDN -- Définissez les types MIME corrects pour que les CDN appliquent les règles de cache et de compression appropriées.
- Gestion des pièces jointes email -- Utilisez le type correct lors de la construction de messages MIME multipart pour les pièces jointes.
Fonctionnement des types MIME
Structure d'un type MIME
Un type MIME suit le format type/sous-type, optionnellement avec des paramètres :
type/subtype; parameter=value
Le type est la catégorie générale (text, image, audio, video, application, font, multipart). Le sous-type est le format spécifique. Par exemple, image/png est une image au format PNG.
Paramètres courants
charset-- Encodage des caractères pour les types texte :text/html; charset=utf-8boundary-- Séparateur pour les types multipart :multipart/form-data; boundary=----FormBoundaryname-- Suggestion de nom de fichier original dans certains contextes
Pourquoi les types MIME corrects sont importants
Les navigateurs utilisent les types MIME, et non les extensions de fichiers, pour décider comment traiter une réponse :
- Mauvais type MIME pour le CSS -- Si un serveur envoie
text/plainpour un fichier.css, le navigateur refusera d'appliquer les styles et enregistrera une erreur de non-correspondance de type MIME. - Mauvais type MIME pour le JavaScript -- Servir des fichiers
.jsentext/plainprovoque le rejet du script par le navigateur en mode de vérification MIME stricte. - Sécurité :
X-Content-Type-Options: nosniff-- Lorsque cet en-tête est défini, le navigateur applique strictement les types MIME et ne tentera pas de "deviner" le contenu, rendant une configuration correcte indispensable.
application/octet-stream comme type par défaut
Lorsqu'un serveur ne connaît pas le type du fichier, il utilise application/octet-stream comme type binaire générique. Cela indique au navigateur de télécharger le fichier plutôt que d'essayer de l'afficher. Configurer des types MIME spécifiques pour les extensions connues évite ce comportement de repli.
Types MIME vendeur et personnels
Les types MIME utilisent des conventions de nommage pour indiquer leur statut d'enregistrement :
| Préfixe | Signification | Exemple |
|---|---|---|
| (aucun) | Type enregistré standard | application/json |
vnd. | Type spécifique à un fournisseur | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.xlsx) |
x- | Expérimental non enregistré (obsolète) | application/x-www-form-urlencoded |
prs. | Personnel/expérimental | text/prs.lines.tag |
Conseils pratiques pour la configuration des types MIME
L'erreur de configuration la plus courante concernant les types MIME est de ne pas les configurer du tout. La plupart des serveurs web sont livrés avec un ensemble de correspondances par défaut, mais elles sont souvent en retard sur les formats de fichiers modernes. Si vous servez des polices .woff2, des images .webp ou .avif, ou des fichiers de modules ES .mjs, vérifiez que votre serveur a les bonnes correspondances. Dans nginx, ces correspondances se trouvent dans le fichier mime.types. Dans Apache, elles sont dans mime.types ou configurées via les directives AddType. Une correspondance manquante signifie que le serveur se rabat sur application/octet-stream, ce qui déclenche une invite de téléchargement au lieu d'un rendu en ligne.
Lors de la construction d'API, définissez toujours l'en-tête Content-Type explicitement dans votre réponse plutôt que de vous fier aux valeurs par défaut du framework. Si votre API retourne du JSON, définissez Content-Type: application/json; charset=utf-8. Si elle retourne du XML, utilisez application/xml. Pour les API qui peuvent retourner plusieurs formats selon l'en-tête Accept (négociation de contenu), assurez-vous que chaque format a le bon type MIME. Une incohérence entre le type déclaré et le format réel du corps est une cause courante d'erreurs d'analyse côté client.
Pour la validation des envois de fichiers, ne vous fiez jamais uniquement au type MIME envoyé par le client. Le Content-Type dans un upload multipart est défini par le navigateur en fonction de l'extension du fichier, et il peut être facilement falsifié. Un utilisateur malveillant peut uploader un fichier exécutable avec une extension .jpg et le navigateur enverra image/jpeg comme type. Validez toujours le contenu réel du fichier (octets magiques) côté serveur en plus de vérifier le type MIME déclaré.
Questions fréquentes
Quel est le type MIME correct pour JavaScript : application/javascript ou text/javascript ?
application/javascript est le type enregistré standard (RFC 4329). Cependant, text/javascript est listé comme le seul type MIME JavaScript dans la spécification HTML, et tous les navigateurs le supportent. En pratique, les deux fonctionnent. Si vous configurez un nouveau serveur, l'un ou l'autre est acceptable, bien que text/javascript ait une compatibilité historique plus large.
Dois-je utiliser image/svg+xml ou image/svg pour les fichiers SVG ?
Utilisez toujours image/svg+xml. Le suffixe +xml indique que le SVG est un format basé sur XML. image/svg n'est pas un type MIME enregistré et pourrait ne pas être reconnu par les navigateurs ou les validateurs.
Quel type MIME utiliser pour les réponses d'API JSON ?
Utilisez application/json. C'est le type MIME standard défini dans le RFC 8259. Certaines API utilisent aussi application/vnd.api+json pour le format JSON:API ou application/problem+json pour les réponses d'erreur RFC 7807.
Quelle est la différence entre text/xml et application/xml ?
Les deux sont valides pour du contenu XML, mais application/xml est recommandé pour un usage général. Le type text/xml implique que le contenu est du texte lisible par un humain, et les anciennes spécifications indiquent qu'il devrait utiliser l'encodage US-ASCII par défaut si aucun charset n'est spécifié. application/xml utilise UTF-8 par défaut, ce qui est presque toujours ce que vous voulez.
Comment déterminer le type MIME d'un fichier inconnu ?
Sur Linux et macOS, la commande file peut détecter le type à partir du contenu du fichier (octets magiques) : file --mime-type unknown.bin. C'est plus fiable que de se fier à l'extension. Sur le web, le navigateur envoie le type MIME basé sur l'extension, qui peut ne pas correspondre au contenu réel.
Pourquoi mon fichier de police se télécharge-t-il au lieu de se charger dans le navigateur ?
Votre serveur envoie probablement la police avec application/octet-stream parce qu'il n'a pas de correspondance pour l'extension de la police. Ajoutez la bonne correspondance de type MIME : font/woff2 pour .woff2, font/woff pour .woff, font/ttf pour .ttf, et font/otf pour .otf. Après avoir ajouté la correspondance, le navigateur chargera la police en ligne au lieu de proposer un téléchargement.
Outils associés
- HTTP Header Formatter - Formater les en-têtes Content-Type et autres en-têtes HTTP
- HTTP Status Code Lookup - Rechercher les codes de statut renvoyés avec les en-têtes de type MIME
- CORS Header Explainer - Comprendre les règles CORS pour différents types de contenu
- curl Command Builder - Construire des commandes curl avec les bons en-têtes Content-Type
- User-Agent Parser - Analyser les chaînes User-Agent pour vérifier la prise en charge des types MIME