Quel est le type MIME des fichiers .json ?
Le type MIME (type de média) des fichiers JSON portant l’extension .json est application/json. Vous pouvez aussi rencontrer text/json (obsolete). Le JSON est toujours encodé en UTF-8 (RFC 8259) : le paramètre charset est donc inutile. Les API doivent envoyer ce type afin que les clients et les navigateurs interprètent le contenu comme du JSON.
En-tête Content-Type
Content-Type: application/json
Les types basés sur du texte doivent inclure un charset afin que le navigateur décode correctement les caractères.
Configuration du serveur
| Serveur | Configuration |
|---|---|
Nginx (mime.types ou types {}) | application/json json; |
Apache (.htaccess) | AddType application/json .json |
IIS (web.config) | <mimeMap fileExtension=".json" mimeType="application/json" /> |
| Node.js / Express | res.type('json') ou res.setHeader('Content-Type', 'application/json') |
| Amazon S3 | Définissez Content-Type: application/json sur l’objet (métadonnées), ou transmettez --content-type application/json à aws s3 cp |
Faut-il compresser les fichiers .json ?
Oui. Le JSON étant du texte, activer gzip ou Brotli pour application/json permet généralement de réduire la taille transférée de 50 à 80 %. Vérifiez que la liste de compression de votre serveur inclut ce type, par exemple avec le test de compression de site web.
Pourquoi le type MIME est important
Les navigateurs décident de la marche à suivre pour une réponse (affichage, exécution, lecture ou téléchargement) d’après l’en-tête Content-Type et non d’après l’extension du fichier. Avec X-Content-Type-Options: nosniff, un type incorrect provoque le blocage pur et simple des feuilles de style et des scripts. Pour les envois de fichiers, ne faites jamais confiance au type transmis par le client : vérifiez plutôt le contenu du fichier (ses octets magiques) côté serveur.
Recherche de types MIME
Recherchez toutes les extensions de fichiers et tous les types MIME courants, avec des en-têtes Content-Type prêts à copier.
Questions fréquentes
Quel est le type MIME pour .json ?
application/json. Autre valeur rencontrée : text/json (obsolète).Comment définir le Content-Type pour .json dans Nginx ?
application/json json; figure dans le bloc types (généralement dans /etc/nginx/mime.types), puis rechargez Nginx.