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

MIME

Některé z technologií, dodnes používaných v Internetu, jsou už poměrně staršího data, a byly vyvinuty v době, kdy na jejich fungování byly kladeny poněkud jiné požadavky než dnes. Platí to například i o elektronické poště, která je dnes v Internetu používána - ve snaze maximálně vyhovět původnímu zadání ji její autoři koncipovali takovým způsobem, který je dnes, při dosti odlišných požadavcích uživatelů, pociťován spíše jako určitý handicap.

Zadání, které autoři dodnes používané internetové pošty na začátku své práce dostali, znělo: maximálně efektivně využít všechny dostupné přenosové kanály, a zajistit přenos běžných, neformátovaných textových zpráv, tvořených "čistými" ASCII znaky. To také autoři tzv. SMTP pošty, jak se jí dodnes říká, splnili - protokol SMTP (Simple Mail Transfer Protocol), který zajišťuje faktický přenos zpráv mezi jednotlivými poštovními servery (poštovními úřady), stejně tak jako dokument RFC822, který definuje formát přenášených zpráv, koncipovali takovým způsobem, že v těle zprávy připouští pouze tzv. "čistý ASCII text" (neboli text složený výhradně ze znaků, pro jejichž znázornění postačuje 7 bitů). O nějakém přenosu netextových souborů, či dokonce spustitelných souborů, obrázků, databází, digitalizovaného zvuku či videa se tehdy vůbec neuvažovalo.

Dnes se takto definovaná pošta používá v celém Internetu. Ty její implementace, které se důsledně drží definice protokolu SMTP a standardu RFC822, se k přenášených textům skutečně chovají jako k posloupnostem "čistých ASCII znaků", znázornitelných v 7 bitech - a to i v situaci, kdy k přenosu zpráv samy používají přenosové kanály schopné přenášet sedmibitové znaky. Důsledně v tom smyslu, že pokud by snad nějaký znak náhodou nebyl "čistý ASCII znak", tj. nebyl by znázornitelný v 7 bitech, ale jen v bitech 8, "ořízly" by mu jeho nejvýznamnější bit, a tím z něj vyrobily nějaký úplně jiný znak. Jiné implementace se takto drasticky chovat nemusí, a mohou bez problémů přenést i 8 bitové znaky - ale pořádek musí být, a když už jednou někdo zavedl standard říkající že přenášený text smí být jen 7-bitový čistý ASCII, není radno podstrkovat přenosovým mechanismům elektronické pošty něco jiného (nebo není radno se následně divit, co se skutečně přeneslo). V praxi se sice může stát, že některé zprávy s jiným než čistým ASCII obsahem se mohou mezi některými poštovními servery přenést bez problémů, ale také nemusí. Zaručeno to není.

Jak se ale s touto vlastností internetové pošty vyrovnat dnes, kdy uživatelé chtějí jednak psát své zprávy i v jiných jazycích a znakových sadách, než jen v angličtině vedoucí na čistý ASCII text (tedy například v češtině, s háčky a čárkami). Nebo když chtějí ke svým zprávám přibalovat v roli příloh nejrůznější věci, které lze zabalit do formy souboru - ať již formátované dokumenty z nejrůznějších editorů, spreadsheety, databáze, celé programy apod. Pokud takovéto věci nejsou tvořeny čistým ASCII textem (což nejsou), přenosovými kanály elektronické pošty s velkou pravděpodobností neprojdou bez újmy na nejvýznamnějším bitu každého svého bytu!

Řešení právě nastíněného dilematu naštěstí není nijak principiálně složité, alespoň ne po technické stránce - to, co je potřeba přenést a co není čistý ASCII text, se jednoduše zkonvertuje do podoby čistého ASCII textu, přenese, a pak zase překonvertuje zpět do původní podoby. Jednoduché, ne? Způsobů, jak konverzi i zpětné de-konvertování provést, je přitom celá řada.

Skutečným problémem je spíše organizační stránka věci - jaký způsob konverze zvolit, aby mu obě strany správně (a také stejně) rozuměly? Jak vyjádřit význam a povahu přenášených dat, tak aby je příjemce nejen dokázal správně "vybalit", ale věděl také co jsou zač a jak má s nimi naložit? Pokud se dvě strany explicitně dohodnou, je vše jednoduché. Ale co když píšete někomu, kdo vámi používanou konvenci dopředu nezná? Pak nezbývá než nějaká obecně známá, všeobecně respektovaná a dodržovaná konvence, nejlépe ve formě skutečného standardu. A právě takovouto konvencí je dnes v Internetu standard MIME (od: Multipurpose Internet Mail Extensions).