¿Cuál es el tipo MIME de los archivos .json?
El tipo MIME (tipo de medio) de los archivos JSON con la extensión .json es application/json. También puedes encontrar text/json (obsolete). JSON siempre usa UTF-8 (RFC 8259), así que no hace falta un parámetro charset. Las APIs deberían enviar este tipo para que los clientes y los navegadores interpreten el cuerpo como JSON.
Cabecera Content-Type
Content-Type: application/json
Los tipos basados en texto deberían incluir un charset para que el navegador decodifique bien los caracteres.
Configuración del servidor
| Servidor | Configuración |
|---|---|
Nginx (mime.types o 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') o res.setHeader('Content-Type', 'application/json') |
| Amazon S3 | Define Content-Type: application/json en el objeto (metadatos), o pasa --content-type application/json a aws s3 cp |
¿Hay que comprimir los archivos .json?
Sí. JSON es texto, así que activar gzip o Brotli para application/json suele reducir el tamaño de transferencia entre un 50 y un 80 %. Asegúrate de que la lista de compresión de tu servidor incluya este tipo; compruébalo con la prueba de compresión web.
Por qué importa el tipo MIME
Los navegadores deciden qué hacer con una respuesta (mostrarla, ejecutarla, reproducirla o descargarla) según la cabecera Content-Type, no según la extensión del archivo. Con X-Content-Type-Options: nosniff, un tipo incorrecto hace que las hojas de estilo y los scripts se bloqueen directamente. En las subidas de archivos, nunca confíes en el tipo que envía el cliente; comprueba el contenido del archivo (sus bytes mágicos) en el servidor.
Búsqueda de tipos MIME
Busca todas las extensiones de archivo y tipos MIME habituales, con cabeceras Content-Type listas para copiar.
Preguntas frecuentes
¿Cuál es el tipo MIME de .json?
application/json. Otras alternativas que se ven en la práctica: text/json (obsolete).¿Cómo configuro el Content-Type de .json en Nginx?
application/json json; aparezca en el bloque types (normalmente en /etc/nginx/mime.types) y recarga Nginx.