MIME
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.
Tartalomjegyzék
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 | MPEG Layer 3 zene |
audio/x-wav | WAVE hang |
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]
- ↑ Az ASCII itt a szigorú értelemben veendő, azaz 128 féle karaktert tud jelölni, szemben a 256 karakteres kiterjesztett ASCII-val.