Skip to content

Glossary

MIME type

L'intestazione 'che tipo di dati è questo'

By Published Updated

Un MIME type (Multipurpose Internet Mail Extensions, ora formalmente solo «media type» per RFC 6838) è un identificatore in due parti nel formato tipo/sottotipo che dice a un client che tipo di dati sta guardando.

Esempi comuni:

  • text/html — documento HTML
  • application/json — dati JSON
  • image/png, image/jpeg, image/webp — formati immagine
  • application/pdf — documento PDF
  • multipart/form-data — payload di caricamento file
  • application/octet-stream — binario opaco; il fallback «solo byte, scopri tu cos’è»

Le risposte HTTP portano i MIME type nell’intestazione Content-Type. I Data URI (usati dal nostro strumento immagine-in-Base64) incorporano il MIME type direttamente: data:image/png;base64,iVBOR.... I browser usano il MIME type dichiarato per decidere come renderizzare o scaricare una risorsa.

Nota storica: il MIME è stato originariamente definito per gli allegati email. Lo stesso registro ora definisce i tipi di media per il web, l’IM, RSS e la maggior parte dei protocolli moderni.

Il Registro dei Media Type IANA: ogni MIME type legittimo è registrato presso la Internet Assigned Numbers Authority. I tipi di primo livello sono fissi (text, image, audio, video, application, multipart, message, model, font, example, più il prefisso legacy X-). I sottotipi vengono aggiunti attraverso un processo di registrazione IETF o vendor-tree; application/vnd.openxmlformats-officedocument.wordprocessingml.document (il MIME type formale per .docx) è un esempio del vendor-tree. I sottotipi sconosciuti tornano a application/octet-stream, che di solito attiva un prompt di download del browser piuttosto che il rendering inline.

MIME sniffing — il problema di sicurezza: se un server restituisce il Content-Type sbagliato, i browser storicamente cercavano di indovinare dai primi byte della risposta. Questo «content sniffing» permetteva attacchi cross-site in cui un’immagine caricata dall’utente poteva essere reinterpretata come HTML o JavaScript. La soluzione è X-Content-Type-Options: nosniff, che forza il browser a rispettare il tipo dichiarato e a rifiutarsi di eseguire contenuto non corrispondente. I moderni framework web spediscono questa intestazione per impostazione predefinita. Riferimento: RFC 6838 — Media Type Specifications and Registration Procedures.

Parametri: charset, boundary, profile

Un MIME type può portare parametri dopo un punto e virgola. Il più comune è charset: Content-Type: text/html; charset=utf-8 dice al browser che la risposta è HTML codificata come UTF-8. Senza di esso, i browser tornano alle codifiche legacy (Windows-1252 in molti casi) che storpiano il testo non-ASCII. Per i caricamenti multipart/form-data, il parametro boundary specifica il delimitatore tra le parti: multipart/form-data; boundary=---WebKitFormBoundary7MA4YWxkTrZu0gW. JSON-LD usa un parametro profile: application/ld+json; profile="https://www.w3.org/ns/activitystreams". I parametri non fanno distinzione tra maiuscole e minuscole per i nomi; i valori non fanno distinzione per la maggior parte dei parametri noti ma fanno distinzione per il boundary multipart.

La convenzione del suffisso +

RFC 6839 ha aggiunto una convenzione di suffisso a sintassi strutturata che consente ai nuovi media type di dichiarare quale formato generico analizzano: application/atom+xml, application/vnd.api+json, image/svg+xml. Il suffisso dice a un parser generico (una libreria XML o JSON) come leggere i byte anche se non riconosce il tipo specifico del vendor. Gli standard web moderni si basano molto su questo — ogni media type API basato su JSON termina in +json; ogni media type basato su XML termina in +xml. Al 2026 il registro IANA elenca più di 2.300 media type registrati in tutte le categorie di primo livello, con l’albero application/ (oltre 1.800 voci) di gran lunga il più grande. Riferimento: IANA Media Types Registry.

Frequently asked questions

Che cos'è un MIME type?
Un MIME type (tipo Multipurpose Internet Mail Extensions) è un identificatore in due parti per il formato di un file o flusso di dati, scritto come tipo/sottotipo — per esempio, image/png o application/json. Browser e server lo usano per decidere come gestire il contenuto.
Come influisce un MIME type sul modo in cui un browser gestisce un file?
Un browser usa il MIME type dell'intestazione Content-Type per scegliere come renderizzare o scaricare il contenuto. Inviare text/html causa il rendering; application/octet-stream attiva una finestra di download; image/jpeg viene visualizzato inline. Le discrepanze causano pagine rotte o problemi di sicurezza.
Qual è la differenza tra un MIME type e un'estensione di file?
Un'estensione di file è un suggerimento di denominazione; un MIME type è quello che il server dichiara che il contenuto è realmente. Un file chiamato .txt potrebbe essere servito come application/javascript — il MIME type, non l'estensione, determina come il browser lo tratta.
Cosa succede se un server invia il MIME type sbagliato?
I browser moderni applicano protezioni di 'MIME sniffing' — potrebbero rifiutarsi di eseguire uno script con un tipo errato, proteggendo da certi attacchi di iniezione. L'intestazione X-Content-Type-Options: nosniff istruisce i browser a fidarsi del tipo dichiarato e a non indovinare.

Related

Published May 14, 2026 · Last reviewed May 31, 2026