
MIME typ
Způsoby kódování, které standard MIME zavádí, umožňují "protlačit" skrz přenosový mechanismus v podstatě libovolná data, která mají být přenesena. S vlastními daty však musí být vždy přenesena i informace o tom, co jsou tato data zač - zda například jde o obrázek ve formátu GIF, dokument ve formátu MS Word, text ve formátu jazyka HTML apod. Právě podle této informace se totiž příjemce bude rozhodovat, co s příslušným datovým objektem učiní (například tehdy, když mu uživatel dá kliknutím najevo, že si jej přeje zobrazit). Je dobré si uvědomit, že tato informace o typu dat je nezávislá na způsobu jejich kódování - fakt, že určitá data jsou pro potřeby přenosu zakódována např. pomocí kódování Base64, ještě neříká nic o tom, co jsou tato data zač a jak má být s nimi dále naloženo.
Pro potřeby identifikace datového obsahu používá standard MIME dvouúrovňovou "klasifikaci", obecně zapisovanou jako dvojice "typ/podtyp" (anglicky: type/subtype). Na vyšší úrovni se rozeznává celkem sedm možných hlavních typů (které jsou dále upřesňovány konkrétními podtypy):
- typ "text": podle definice jakýkoli text, který je apriorně srozumitelný a nevyžaduje použití specifických programů, které by teprve dokázaly "porozumět" jeho obsahu. V praxi se sem řadí například:
- "čistý ASCII text", bez jakéhokoli formátování. Pro něj se používá podtyp "plain" (tj. celý tzv. MIME typ je zde "text/plain").
- text v jazyku HTML (MIME typ "text/html").
- text ve formátu "richtext" či "enriched", který je definován v dokumentech RFC 1341, resp. 1896.
Mezi "textové" typy (tj. pod hlavní typ "text") se naopak nezařazují takové texty, které obsahují nějaké binární formátovací informace - což jsou například nativní formáty textových editorů typu Word, AmiPro apod.
- typ "image": pro obrázky, příklady konkrétních dvojic typ/podtyp jsou např. image/gif, image/jpeg apod.
- typ "audio", pro zvuková data
- typ "video", pro obrazová data, například video/mpeg
- typ "application": obecně pro všechny ostatní druhy dat, které musí být pro potřeby zpracování "předhozeny" nějakému konkrétnímu programu (aplikaci, odsud označení hlavního typu), nebo mají samy "spustitelný" charakter, jako například skripty v jazyky JavaScript. Příkladem mohou být MIME typy "application/msword", "application/pdf" apod.
- typ "multipart": tento typ vychází vstříc potřebě připojovat ke zprávám více příloh, resp. vytvářet takové zprávy, jejichž obsah (tělo) bude rozdělen na několik částí, které mohou mít zcela samostatný obsah - se samostatným způsobem kódování i samostatným datovým typem. Příkladem může být univerzální typ "multipart/mixed", umožňující téměř libovolnou kombinaci částí zprávy.
- typ "message": používá se v případě, kdy obsahem jedné zprávy je jiná zpráva. Příkladem celého MIME typu je "message/RFC822", kdy jedna zpráva obsahuje další zprávu, formátovanou dle standardu RFC822.
Na celém konceptu tzv. MIME typů je zajímavý ještě jeden fakt - jde o řešení, které se prosadilo i jinde, mimo rámec elektronické pošty, v situaci kdy také bylo třeba přesně vyspecifikovat, co jsou určitá data zač. Konkrétně se jedná v komunikaci mezi WWW serverem a jeho klientem, uskutečňovanou prostřednictvím protokolu HTTP (HyperText Transfer Protocol). Také zde je totiž nutné, aby server klientovi explicitně řekl, jaký je typ dat, která mu právě posílá. No a k tomu se využívá již jednou zavedená dvouúrovňová hierarchie MIME typů.