🔧 Codifica Base64 e altri tool per sviluppatori
Scopri tutti gli strumenti per sviluppatori disponibili su ToolsCove.
Esplora i tool →

Cos'è un MIME type?

MIME sta per Multipurpose Internet Mail Extensions. Originariamente sviluppato per le email negli anni '90, è diventato lo standard per identificare il tipo di contenuto in tutte le comunicazioni HTTP.

Un MIME type ha la forma tipo/sottotipo, ad esempio:

Come funziona nella pratica

Quando il browser fa una richiesta HTTP, il server risponde con un header Content-Type che include il MIME type del file:

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 4821

<!DOCTYPE html>...

Il browser usa il Content-Type per decidere come trattare il contenuto: visualizzarlo come HTML, eseguirlo come JavaScript, mostrarlo come immagine o proporlo come download.

I MIME type più comuni

MIME type Descrizione Estensioni
text/htmlPagina HTML.html, .htm
text/cssFoglio di stile CSS.css
text/javascriptScript JavaScript.js
application/jsonDati JSON.json
application/pdfDocumento PDF.pdf
image/jpegImmagine JPEG.jpg, .jpeg
image/pngImmagine PNG.png
image/webpImmagine WebP.webp
image/avifImmagine AVIF.avif
image/svg+xmlGrafica vettoriale SVG.svg
multipart/form-dataUpload file da form
application/octet-streamDownload genericoqualsiasi

MIME type nelle API e nelle fetch

Quando invii dati JSON a un'API REST, devi specificare il MIME type nel header Content-Type:

fetch('/api/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ nome: 'Mario', eta: 30 })
});

Senza il header corretto, molti server rifiuteranno la richiesta o la interpreteranno in modo errato.

Configurare i MIME type sul server

Apache (.htaccess)

AddType image/webp .webp
AddType image/avif .avif
AddType application/manifest+json .webmanifest

Nginx (nginx.conf)

types {
  image/webp    webp;
  image/avif    avif;
}

MIME type e sicurezza: MIME sniffing

Alcuni browser tentano di "indovinare" il tipo di file analizzando il contenuto, ignorando il MIME type dichiarato. Questo comportamento — chiamato MIME sniffing — può essere sfruttato per attacchi XSS.

Per prevenirlo, aggiungi questo header HTTP alle risposte del tuo server:

X-Content-Type-Options: nosniff

MIME type comuni: guida rapida di riferimento

Conoscere i MIME type più usati ti permette di configurare correttamente il server web, gestire gli upload e debuggare problemi di rendering. Ecco i più importanti suddivisi per categoria:

Come configurare i MIME type su Apache e Nginx

Se il tuo server serve file con MIME type errati, i browser potrebbero non renderizzarli correttamente — un font .woff2 servito come application/octet-stream non viene caricato da Chrome, per esempio. Ecco come correggere la configurazione:

Apache (.htaccess):

AddType image/webp .webp
AddType image/avif .avif
AddType font/woff2 .woff2
AddType application/json .json

Nginx (nginx.conf):

types {
    image/webp    webp;
    image/avif    avif;
    font/woff2    woff2;
    application/json json;
}

In Node.js/Express, il modulo mime-types gestisce automaticamente la mappatura. Con res.type('json') imposti application/json senza doverlo digitare ogni volta.


FAQ

Cosa succede se il MIME type è sbagliato?

Il browser potrebbe rifiutare di eseguire il file o visualizzarlo in modo errato. Ad esempio, JavaScript servito con MIME type sbagliato viene bloccato dai browser moderni in strict mode.

MIME type e Content-Type sono la stessa cosa?

Quasi. Content-Type è l'header HTTP che trasporta il MIME type. Il MIME type è il valore all'interno di quell'header, ad esempio: Content-Type: text/html; charset=UTF-8.

Cosa significa application/octet-stream?

È il MIME type generico per dati binari. Quando un server non conosce il tipo del file, usa application/octet-stream, che indica al browser di proporre il file come download invece di visualizzarlo.