La codifica del contenuto della pagina non è correlata al tipo di contenuto.
Content-Encoding specifica come viene compresso il contenuto (cioè gzip, deflate, br ...) e quindi come deve essere decompresso. Content-Type specifica invece come deve essere interpretato il contenuto, ad esempio html, immagine, PDF ecc. E per i dati di testo come testo normale o HTML, è inoltre possibile specificare il set di caratteri e la codifica, ovvero UTF-8, ISO-8859-1 o simili.
Se non è specificato alcun tipo di contenuto, i browser cercano di indovinare quale potrebbe essere il tipo e il set di caratteri / codifica del contenuto. Questo può avere effetti collaterali indesiderati perché i diversi browser potrebbero indovinare in modo diverso e in particolare il set di caratteri dedotto potrebbe dipendere anche da vari contesti come il set di caratteri di una cornice incorporata.
Quindi dovresti sempre specificare un tipo di contenuto e anche impostare il parametro Charset per i tipi di testo. Inoltre, dovresti impostare l'intestazione HTTP X-Content-Type-Options: nosniff
in modo che il browser non provi a indovinare il tipo anche se il dichiarato è diverso dal tipo indovinato.
Per ulteriori informazioni sul problema con lo sniffing MIME vedere anche MIME Sniffing: funzionalità o vulnerabilità , Attacchi per lo sniffing dei contenuti basati su browser , Secure Content Sniffing per browser Web o
Come smettere di rivedere le carte .