předcházející následující

Aplikační protokoly Internetu


Kapitola 4. Formát zpráv MIME

Obsah

4.1. Typy zpráv MIME
4.2. Metody kódování MIME

Časová náročnost kapitoly: 30 minut

    Formát zpráv přenášených podle standardu definovaného dokumentem RFC 822 má určité nedostatky, jedním z nich je přenos dat v čistě textové ASCII podobě. Z tohoto důvodu byla dodefinovaná alternativní struktura zpráv odstraňující tyto nedostatky. Tato struktura se jmenuje MIME (Multipurpose Internet Mail Extension). Přestože už v názvu se píše, že se jedná o rozšíření Internetové pošty, není to jediný způsob použití, s tímto formátem se setkáme například i u protokolu HTTP.

4.1. Typy zpráv MIME


    MIME rozšiřuje tělo zprávy z původního texového obsahu definovaného v RFC 822 na několik typů. Každý ze základních typů má další podtypy. Velikost zprávy je omezena na 64kB, pokud je zpráva delší než 64kB, musí být rozdělena na několik částí o maximální velikosti 64kB. Standard MIME umožňuje rekurzi, takže zpráva ve standardu MIME může ve svém těle obsahovat další zprávu, také typu MIME.

Nyní budou osvětleny typy zpráv MIME

Typ TEXT
    Typ TEXT slouží k přenosu vlastního těla zprávy (textového sdělení). Podtyp PLAIN (prostý text) je implicitní a odpovídá obsahu podle RFC 822. Další podtypy jsou např. RTF (Rich Text Format)

Typ IMAGE
    Typ IMAGE znamená, že jsou přenášená obrazová data. Jako podtypy jsou definovány GIF a JPEG. Implicitní je formát JPEG. Podtypy IMAGE jsou definovány v RFC 2048, počítá se s jejich rozšiřováním (PNG,...).

Typ AUDIO
    Typ AUDIO znamená, že jsou přenášená zvuková data. Implicitní je podtyp basic. Obsah typu "audio/basic" je jednokanálové audio kódovaní pomocí 8bit µ-law PCM na vzorkovací frekvenci 8000 Hz.

Typ VIDEO
    Typ VIDEO znamená, že jsou přenášená video data. Implicitní je podtyp MPEG.

Typ APPLICATION
    Typ APPLICATION znamená, že je přenášen jiný typ dat. Typicky se jedná o neinterpretovaná binární data nebo informace ke zpracování nějakou aplikací. Podtyp OCTET-STREAM se používá v případě neiterpretovaných binárních dat, kdy je nejjednodušší doporučená akce uživateli uložit informace do souboru. Podtyp POSTSCRIPT je definován pro přenos postscriptového materiálu.

Typ STRUCTURED
    Typ STRUCTURED se také někdy nazývá vícedílný (multipart). Ve strukturovaném typu se nepřenášejí data jako taková, ale určitá kombinace již uvedených typů. Jsou definovány celkem čtyři podtypy. Alternative, který znamená, že data jsou uvedena v různých formátech(ASCII, RTF, DOC), Digest, který znamená, že obsahem je otisk (haš) zprávy, Paralel představuje zprávu, jejíž různé části se mají přehrávat současně, a Mixed, který označuje, že zpráva se skládá ze směsi různých částí (Text, Audio, Video).

Typ MESSAGE
    Typ MESSAGE znamená, že tělo obsahuje zprávy. Definuje podtypy RFC 822 (běžná zpráva), Partial (zpráva je částí celku, takto se odesílají zprávy .delší než 64kB) a External Body (představuje odkaz na soubor, který je vůči emailové zprávě externí).

    

download
vysoká kvalita       nízká kvalita

4.2. Metody kodování MIME


    Kódování MIME slouží k převodu z osmi bitů, které se využívají ve standardu MIME, do sedmi bitů ASCII definovaných standardem RFC 822. Tímto převodem zajistíme bezproblémovou průchodnost dat Internetem.

Base 64
    Data, která jsou výsledkem kódování Base 64, jsou bez zpětného dekódování nečitelná. Velikost kódované zprávy se zvětšuje o jednu třetinu. Algoritmus převádí každou skupinu tří znaků po osmi bitech do čtyř znaků ASCII po šesti bitech. Bity původního znaku se rozdělí mezi několik znaků, které tvoří výstup této metody. Všechny znaky se převádějí do množiny 65 znaků, které jsou společné standardům US-ASCII, EBCDIC a ISO 646. Používá se Base 64 abecedy.

Quoted-Printable
    Kódování Quoted-Printable se používá pro taková data, v nichž většina znaků je již znaky sedmi bitového ASCII. Princip spočívá v tom, že se základní znaky ASCII ponechávají beze změny a kódují se pouze znaky s nejvyšším bitem jedničkovým (8 bitové znaky). Převážná většina zprávy je tudíž i po zakódování čitelná.

Binary
    Hodnota Binary znamená, že k žádnému kódování nedochází, v proudu dat se mohou vyskytovat i znaky mimo sadu ASCII a řádky mohou být delší, než kolik pro úspěšný přenos zpráv dovoluje protokol SMTP.

Seven-Bit
    Hodnota Seven-Bit znamená, že k žádnému kódování nedošlo. Všechny znaky patří do sady ASCII a řádky jsou dostatečně krátké, takže protokol SMTP může zprávu úspěšně přenést.