Vyšlo v Softwarových novinách č. 10/97, v říjnu 1997
Vytištěno z adresy: http://www.earchiv.cz/a710s200/a710s232.php3

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ů.