Vyšlo v týdeníku CHIPweek č. 4/97, 21. ledna 1997
Vytištěno z adresy: http://www.earchiv.cz/a97/a704k130.php3

MIME type

Jak jsme si řekli již minule, MIME (neboli: Multipurpose Internet Mail Extensions) je konvence o tom, jak ke zprávám elektronické pošty přibalovat nejrůznější přílohy, a jak psát texty zpráv i v jiných jazycích a znakových sadách, než jen v čistém ASCII tvaru. Jednotlivé dílčí konvence, které byly vyvinuty v rámci standardu MIME původně pro potřeby elektronické pošty, se ale úspěšně využívají i jinde, například ve světě služby World Wide Web. Platí to zejména pro tzv. MIME typ.

Jak jsme si již také uvedli minule, hlavním důvodem pro existenci standardu MIME je skutečnost, že mechanismus přenosu zpráv, dodnes používaný v Internetu a označovaný jako tzv. SMTP pošta, garantuje pouze přenos zpráv tvořených sedmibitovými znaky, neboli tzv. čistými ASCII znaky. Je-li zapotřebí přenést elektronickou poštou cokoli jiného, co nemá podobu sedmibitových ASCII znaků, je nutné to do takovéto podoby nejprve převést. Možností jak zakódovat "obecná" data do podoby čistých ASCII znaků je samozřejmě více - úkolem standardu MIME pak je přesně vymezit (a pojmenovat) několik takovýchto možností, a ty zavést jako přípustné (v tom smyslu, že odesilatel si může mezi nimi sám vybírat). Kromě toho je pak nutné v rámci standardu MIME učinit taková opatření, aby o použité volbě kódování byl informován i příjemce, a věděl jak příslušnou část zprávy "vybalit".

Ani po úspěšném "vybalení" netextové přílohy však příjemce ještě zdaleka nemá vyhráno - jak pozná, co jsou vybalená data zač, a jak je má zpracovat? Že například jde o archiv typu ZIP, který musí nejprve "podstrčit" vhodnému archivačnímu programu? Nebo že jde o obrázek, který je třeba předat takovému a takovému prohlížeči? Nebo že jde o spustitelný program, který lze zavést do paměti a předat mu řízení? Možností je celá řada, a nejsou dokonce apriorně omezené - nové a nové datové formáty, které lidé mohou chtít k elektronické poště přibalovat, mohou vznikat průběžně.

Aby příjemce dokázal správně rozpoznat, co jsou data "vybalená" z přílohy zač, musí existovat další konvence, prostřednictvím které se to dozví. Takováto dílčí konvence je součástí standardu MIME, a neformálně se jí říká "MIME type"(formálně jde o položku jménem MIME Content-Type, jejíž konkrétní hodnota určuje typ přenášených dat).

Samotný "MIME-type" je znakový řetězec, který má dvě složky. První z nich určuje základní typ dat, a druhá jej upřesňuje (jde o tzv. podtyp, anglicky "subtype"). Pro první složku je zatím definováno sedm možných hodnot:

  • text (text používající různé znakové sady, formátovaný text, text ve formátu HTML apod.)
  • multipart (kombinace více různých částí, ev. i různých typů, do jednoho celku přílohy)
  • message (zpráva)
  • application (binární data, aplikace, ...)
  • image (statický obrázek)
  • audio (hlasová či zvuková data)
  • video (pohyblivé obrázky, videosekvence, ...)

Každý z těchto typů může být dále upřesněn druhou složkou (podtypem) - například rastrový obrázek ve formátu GIF by měl mít typ image a podtyp gif, tj. MIME typ image/gif. Podobně třeba dokument v nativním formátu editoru MS Word by měl mít MIME typ application/msword apod.

Pro správné pochopení podstaty tzv. MIME-typu je vhodné si ještě znovu zdůraznit, že jde o identifikaci typu dat, určenou jen pro potřeby jejich přenosu - odesilatel může lokálně používat jiné konvence, podle kterých si odvozuje význam dat (například podle přípony souboru, ve kterém se nachází), a pro potřeby odesílání je vybaven převodní tabulkou (s položkami typu: soubor s příponou .doc odešli jako data s MIME-typem application/msword).

Nyní ale k používání MIME-typu i mimo elektronickou poštu - jakmile je jednou vhodná konvence zavedena (a naštěstí i dodržována), bylo by škoda ji nevyužívat i jinde, kde je potřeba řešit stejné problémy jako u přibalování příloh ke zprávám elektronické pošty. Takovouto situací je například i přenos jednotlivých WWW stránek mezi WWW servery a jejich klienty (browsery). I zde je zapotřebí vhodná konvence, podle které příjemce (browser) pozná, zda mu server právě posílá text, který má interpretovat jako HTML kód WWW stránky, nebo třeba jako čistý (ne-HTML) text, nebo jako obrázek či něco ještě jiného. V praxi se pak i zde používá konvence, zavedená standardem MIME, konkrétně ta její část která definuje tzv. MIME-typ. Takže když například WWW server posílá nějakému browseru WWW stránku v HTML tvaru, připojuje k ní údaj o tom, že jde o data s MIME-typem text/html.