web http mime content-type server browser dev-tech file-extensions

Guide de référence complet des types MIME et Content-Type

Qu'est-ce qu'un type MIME et pourquoi est-il important pour les serveurs Web et les navigateurs ? Une référence complète des Content-Types courants.

2026-04-11

Guide de référence complet sur les types MIME et Content-Type

Chaque fois que votre navigateur demande un fichier à un serveur web, le serveur ne se contente pas d'envoyer des bits et des octets. Il envoie également une « étiquette » qui indique au navigateur de quel type de fichier il s'agit. Cette étiquette est appelée Type MIME (Multipurpose Internet Mail Extensions), et elle est envoyée via l'en-tête HTTP Content-Type.

Si le serveur envoie le mauvais type MIME, votre navigateur pourrait essayer de télécharger une vidéo au lieu de la lire, ou il pourrait refuser d'exécuter un script pour des raisons de sécurité.


Tableau de référence rapide : Types MIME courants

Type MIME Extension courante Catégorie Objectif
text/html .html, .htm Page Web Contenu de page web standard
text/css .css Style Feuilles de style en cascade (CSS)
application/javascript .js Logique Scripts d'application web
application/json .json Données Données structurées pour les API
application/xml .xml Données Langage de balisage extensible (XML)
text/csv .csv Données Valeurs séparées par des virgules (CSV)
image/webp .webp Média Format d'image compressé moderne
image/avif .avif Média Format d'image haute efficacité
font/woff2 .woff2 Police Format de police web moderne
application/wasm .wasm Compilé Code binaire WebAssembly
application/octet-stream .bin, .exe Binaire Données binaires génériques (déclenche généralement un téléchargement)
multipart/form-data N/A Téléchargement Utilisé pour soumettre des formulaires avec téléchargement de fichiers

1. Données structurées et API

Les applications web modernes s'appuient fortement sur ces types pour échanger des informations entre le frontend et le backend.

  • application/json : Le standard de l'industrie pour les API REST. Il est léger et nativement supporté par JavaScript.
  • application/xml : Un format plus ancien mais plus puissant qui supporte les schémas personnalisés et la validation complexe.
  • text/csv : Fréquemment utilisé pour exporter de grands ensembles de données à partir de bases de données ou de feuilles de calcul.

2. Médias et ressources

Pour garantir des temps de chargement rapides, les serveurs doivent identifier correctement les formats de médias modernes à haute compression.

  • image/webp & image/avif : Ces formats modernes offrent une bien meilleure compression que le JPEG ou le PNG. Si votre serveur n'envoie pas le bon type MIME, le navigateur peut ne pas réussir à afficher l'image correctement.
  • font/woff2 : Essentiel pour la typographie web. Un typage MIME correct garantit que le navigateur peut décompresser la police rapidement.

3. Données spécialisées et binaires

  • application/wasm : Ceci est requis pour que WebAssembly fonctionne. Les navigateurs sont très stricts : ils refuseront souvent de compiler un module WASM si le serveur n'envoie pas explicitement le Content-Type application/wasm.
  • application/octet-stream : C'est le type « fourre-tout » pour les données binaires. Si un serveur ne sait pas ce qu'est un fichier, il utilise généralement celui-ci par défaut. Les navigateurs traitent cela comme un signal pour télécharger le fichier plutôt que d'essayer de l'afficher.

4. Formulaires et téléchargements

Lorsque vous soumettez un formulaire sur un site web, le navigateur utilise un type MIME spécifique pour encoder votre saisie.

  • application/x-www-form-urlencoded : La valeur par défaut pour les formulaires textuels simples. Cela ressemble à une chaîne de requête URL (nom=Jean&age=30).
  • multipart/form-data : Ceci est requis lorsque votre formulaire inclut un téléchargement de fichier. Il permet au navigateur d'envoyer différents types de données (texte et fichiers binaires) dans une seule requête, séparés par des « frontières » (boundaries).

Comment vérifier le type MIME d'un fichier

  • Dans le navigateur : Ouvrez les DevTools -> onglet Network. Cliquez sur une requête et cherchez « Content-Type » sous la section Response Headers.
  • Sur Linux / macOS : Utilisez la commande file avec le drapeau --mime-type :
    file --mime-type -b mon-image.webp
    # Sortie : image/webp
    

Questions courantes (FAQ)

Q : Que se passe-t-il si un serveur envoie le mauvais Content-Type ?

R : Les navigateurs effectuent souvent un « MIME Sniffing » pour essayer de deviner le type correct. Cependant, pour des raisons de sécurité (comme la protection contre les attaques XSS), les navigateurs modernes deviennent beaucoup plus stricts. Si un script est envoyé avec text/plain au lieu de application/javascript, la plupart des navigateurs refuseront de l'exécuter.

Q : application/javascript est-il le seul type correct pour les fichiers JS ?

R : Historiquement, on utilisait text/javascript ou application/x-javascript. Bien que application/javascript ait été autrefois la recommandation formelle, la dernière norme est revenue à préférer text/javascript. La plupart des serveurs et navigateurs gèrent les deux sans problème.

Q : Pourquoi ai-je une erreur « No 'Content-Type' header » ?

R : Cela signifie que le serveur n'a fourni aucune information sur le type de fichier. Les navigateurs utiliseront généralement par défaut text/plain ou application/octet-stream, ce qui pourrait entraîner un affichage incorrect de votre page ou déclencher un téléchargement indésirable.


Outils connexes sur Tool3M

  • Encodeur/Décodeur Base64 : Convertissez des données binaires en une URI de données (qui inclut le type MIME) pour une utilisation en HTML ou CSS.
  • Formateur JSON : Validez et formatez vos données application/json.