MIME

e-mailek formátumának jelzésére szolgáló internetes szabvány

A MIME (Multipurpose Internet Mail Extensions) internetes szabvány, ami eredetileg az SMTP-vel továbbított e-mailek formátumának jelzésére szolgált, de később átvette a HTTP és a SIP is. A MIME szabvány a következő hat RFC-ben van specifikálva: 2045, 2046, 2047, 4288, 4289 és 2077.

Az SMTP és a HTTP protokoll üzenetei számos más internetes protokollhoz hasonlóan néhány típus: érték alakú fejlécből és egy törzsből állnak. A MIME szabvány az encoded-word (kódolt szó) jelölés révén lehetővé teszi nem ASCII[notes 1] tartalom használatát a fejlécekben, illetve néhány új fejléctípust definiál, amelyek meghatározzák, hogyan kell a törzset feldolgozni.

MIME fejlécek szerkesztés

  • MIME-Version: elméletileg a használt MIME szabvány verziószámát jelzi. A gyakorlatban, noha a szabványon számos kisebb módosítást végeztek, a verziót sosem növelték, így a fejléc értéke mindig 1.0.
  • Content-Description: az üzenet tartalmának emberi nyelven történő leírása. A gyakorlatban ezt a fejlécet ritkán használják.
  • Content-ID: az elküldött tartalom egyedi azonosítója.
  • Content-Type: a legfontosabb MIME fejléc, amely a tartalom (az üzenet törzse) típusát adja meg egy típus/altípus alakú kóddal. Ebben a fejlécben adható meg a szöveg kódolása is.
  • Content-Disposition: ezzel a fejléccel egy fájlnevet lehet társítani az üzenethez. Ez alapján tudnak például a böngészők értelmes nevet ajánlani a letöltendő fájlnak akkor is, ha az URL-ben csak egy azonosítószám szerepel.
  • Content-Transfer-Encoding: ez a fejléc jelzi, hogy a bináris tartalom át lett-e kódolva szövegessé, és ha igen, akkor hogyan.

Encoded-word szerkesztés

Az encoded-word jelölés lehetővé teszi a fejlécekben nem ASCII értékek használatát; ennek révén lehet például ékezetes betűket használni egy levél tárgyában. A jelölés =?karakterkészlet?kódolás?érték?= alakú: a karakterkészlet határozza meg, hogyan kell a nem ASCII szöveget bináris kóddá alakítani, a kódolás pedig azt, hogyan kell ezt a kódot olyan ASCII karakterekkel reprezentálni, amelyek megengedettek a fejlécben. A szokásos, IANA által nyilvántartott karakterkészletek használhatóak (például ISO-8859-1 vagy UTF-8), a kódolás pedig base64 vagy quoted-printable-szerű lehet; előbbit B, utóbbit Q jelzi. A Q által jelzett kódolás azért tér el a normális quoted-printable-től, mert bizonyos karakterek nem használhatóak egy fejlécben illetve egy encoded-word jelölésben (így például a ?= karaktersorozat nem fordulhat elő, mert az az encoded-word jelölés végét jelezné).

Például egy "Árvíztűrő tükörfúrógép" tárgyú levél "Subject:" fejléce UTF-8 kódolással így néz ki:

Subject: =?utf-8?Q?=C3=81rv=C3=ADzt=C5=B1r=C5=91_t=C3=BCk=C3=B6rf=C3=BAr=C3=B3g=C3=A9p?=

Tartalomtípusok szerkesztés

Egy üzenet a sima szöveg mellett számos egyéb dolgot is tartalmazhat: nem ASCII karakterkészletű kódolt szöveget, HTML kódot, képet, hangot, videót stb. A Content-type fejléc jelzi, hogy a fogadónak a kapott bájtsorozatot ezek melyikeként kell értelmeznie.

A fejléc egy típus/altípus alakú jelölést és szöveges típusok esetén opcionálisan egy karakterkódolást tartalmazhat. A típus jelzi a tartalom jellegét, ez általában a következők egyike: text (szöveg – ember által is olvasható szöveges formátum), image (kép), audio (hang), video vagy application (alkalmazás – általában egy specifikus szoftver által használt formátum). Lehetőség van több különböző típusú részből álló üzenet küldésére is a multipart (többrészes) tartalomtípussal.

A MIME szabvány nyitott, bárki regisztrálhat új tartalomtípust. A csak egy bizonyos cég által használt formátumok típusai általában application/vnd.gyártó-program alakúak (a vnd a vendor (forgalmazó) szóból van). Ha az altípus neve elején x- van, az azt jelenti, hogy nem szabványos típus – az ilyen típust nem lehet regisztrálni az IANA-nál.

Néhány gyakran használt tartalomtípus:

Típus/Altípus Leírás
text/plain ASCII szöveg (ez az alapértelmezett tartalomtípus)
text/html HTML fájl
text/javascript Javascript kód
text/CSS CSS fájl
image/gif GIF kép
image/jpeg JPEG kép
audio/mp3 MP3 zene
audio/x-wav WAV hangfájl
video/mpeg MPEG film
application/octet-stream közelebbről meg nem határozott jelentésű bájtsorozat
application/javascript JavaScript fájl
application/json JSON fájl
application/vnd.ms-excel Microsoft Excel dokumentum
application/x-shockwave-flash Adobe Flash fájl
multipart/mixed többrészes üzenet
multipart/alternative egy üzenet több különböző formátumban

Lásd még szerkesztés

Megjegyzések szerkesztés

  1. Az ASCII itt a szigorú értelemben veendő, azaz 128 féle karaktert tud jelölni, szemben a 256 karakteres kiterjesztett ASCII-val.

Külső hivatkozások szerkesztés