La codificación de contenido de la página no está relacionada con el tipo de contenido.
La codificación de contenido especifica cómo se comprime el contenido (es decir, gzip, deflate, br ...) y, por lo tanto, cómo debe descomprimirse. En su lugar, Content-Type especifica cómo debe interpretarse el contenido, es decir, como html, imagen, PDF, etc. Y para datos de texto como texto sin formato o HTML, también puede especificar el conjunto de caracteres y la codificación, es decir, UTF-8, ISO-8859-1 o similar.
Si no se especifica ningún tipo de contenido, los navegadores intentan adivinar cuál es el tipo y el conjunto de caracteres / codificación del contenido. Esto puede tener efectos secundarios no deseados porque los distintos navegadores pueden adivinar de manera diferente y, específicamente, el conjunto de caracteres deducido también puede depender de diversos contextos, como el conjunto de caracteres de un marco de incrustación.
Por lo tanto, siempre debe especificar un tipo de contenido y también establecer el parámetro Charset para los tipos de texto. Además, debe configurar el encabezado HTTP X-Content-Type-Options: nosniff
para que el navegador no intente adivinar el tipo a pesar de que el declarado sea diferente del tipo adivinado.
Para obtener más información sobre el problema con el rastreo de MIME, consulte también MIME Sniffing: característica o vulnerabilidad , Ataques al rastreo de contenido basado en el navegador , Detección segura de contenido para navegadores web o
Cómo evitar que los documentos se revisen a sí mismos .