MIME tipi, ali Multipurpose Internet Mail Extensions, so standardizirani označevalci, ki identificirajo vrsto datotek, ki se prenašajo prek interneta. MIME tipi so bili prvotno razviti za e-pošto, da bi omogočili prenos večvrstnih podatkov (npr. besedilo, slike, video) v sporočilih e-pošte. Kasneje so postali osnovni del HTTP protokola, ki je temelj svetovnega spleta, in se zdaj pogosto uporabljajo v spletnih aplikacijah in brskalnikih.
Za vse uradne vrste MIME je odgovoren organ IANA (Internet Assigned Numbers Authority), le-te pa so opredeljene in standardizirane v RFC 6838 IETF – Media Type Specifications and Registration Procedures. RFC 6838 je dokument, ki ga izdaja IETF (Internet Engineering Task Force) in vsebuje specifikacije za MIME tipe.
Brskalniki pri določanju načina obdelave naslova URL uporabljajo vrsto MIME in ne končnice datoteke, zato je pomembno, da spletni strežniki v glavi Content-Type odgovora pošljejo pravilno vrsto MIME. Če to ni pravilno nastavljeno, lahko brskalniki napačno interpretirajo vsebino datotek, spletna mesta ne bodo delovala pravilno, prenesene datoteke pa bodo morda napačno obdelane.
Struktura tipa MIME
Tip MIME je najpogosteje sestavljen iz dveh delov: tipa in podtipa, ki sta med seboj ločena s poševnico (/) – med njima ni belega prostora:
tip/podtip
Tip predstavlja splošno kategorijo, v katero spada podatkovni tip, na primer video ali besedilo.
Podtip določa točno vrsto podatkov določene vrste, ki jo predstavlja tip MIME. Na primer, za tip MIME text je podtip lahko plain (navadno besedilo), html (izvorna koda HTML) ali koledar (za datoteke iCalendar/.ics).
Vsaka vrsta ima svoj nabor možnih podvrst. Tip MIME ima vedno tip in podtip, nikoli samo enega ali drugega.Dodan je lahko neobvezni parameter, ki zagotavlja dodatne podrobnosti:
tip/podtip;parameter=vrednost
Na primer, za katero koli vrsto MIME, katere glavna vrsta je besedilo, lahko dodate neobvezni parameter charset, s katerim določite nabor znakov, ki se uporablja za znake v podatkih. Če ni naveden noben charset, je privzeta vrednost ASCII (US-ASCII), razen če je ne razveljavijo nastavitve uporabniškega agenta. Če želite določiti besedilno datoteko UTF-8, uporabite tip MIME text/plain;charset=UTF-8.
Tipi MIME ne razlikujejo velikih in malih črk, vendar so običajno zapisani z malimi črkami. Vrednosti parametrov so lahko občutljive na velikost črk.
Vrste
Obstajata dva razreda tipov: diskretni in večdelni. Diskretne vrste so vrste, ki predstavljajo posamezno datoteko ali medij, na primer posamezno besedilno ali glasbeno datoteko ali posamezen videoposnetek. Večdelna vrsta predstavlja dokument, ki je sestavljen iz več sestavnih delov, od katerih ima lahko vsak svojo lastno vrsto MIME; ali pa lahko večdelna vrsta vsebuje več datotek, ki se pošiljajo skupaj v eni operaciji. Večdelne vrste MIME se na primer uporabljajo pri pripenjanju več datotek k e-pošti.
Najprej si oglejmo običajen primer tipa MIME:
besedilo/html
Kot smo že omenili, je tip MIME sestavljen iz dveh delov: tipa in podtipa, v tem primeru je tip “text”, podtip pa “html”.
Trenutno je registriranih deset vrst: aplikacija – application, zvok – audio, primer – example,, pisava – font, slika – image, sporočilo – message, model, ‘multipart’, besedilo – text, in video.
Oglejmo si nekaj drugih pogostih vrst MIME:
multipart/form-data
text/xml
text/csv
text/plain
application/xml
application/zip
application/pdf
Diskretni tipi, ki so trenutno registrirani pri IANA, so:
- aplikacija
Vse vrste binarnih podatkov, ki ne spadajo izrecno v eno od drugih vrst; bodisi podatki, ki se bodo izvajali ali interpretirali na nek način, bodisi binarni podatki, ki za uporabo zahtevajo posebno aplikacijo ali kategorijo aplikacij. Splošni binarni podatki (ali binarni podatki, katerih prava vrsta ni znana) so application/octet-stream. Drugi pogosti primeri so application/pdf, application/pkcs8 in application/zip.
- avdio
Zvočni ali glasbeni podatki. Primeri vključujejo audio/mpeg, audio/vorbis.
- primer
Rezervirano za uporabo kot nadomestni znak v primerih, ki prikazujejo uporabo vrst MIME. Nikoli jih ne uporabljajte zunaj seznamov vzorčne kode in dokumentacije. ‘example’ se lahko uporablja tudi kot podtip; na primer v primeru, ki se nanaša na delo z zvokom na spletu, se lahko tip MIME audio/example uporablja za označevanje, da je tip nadomestni in ga je treba pri uporabi kode v resničnem svetu nadomestiti z ustreznim.
- pisava
Podatki o pisavi/vrsti. Pogosti primeri so font/woff, font/ttf in font/otf.
- slika
Slikovni ali grafični podatki, vključno z bitnimi in vektorskimi nepremičnimi slikami ter animiranimi različicami nepremičnih slik, kot sta animirani GIF ali APNG. Pogosti primeri so image/jpeg, image/png in image/svg+xml.
- model
Podatki modela za 3D predmet ali prizor. Primera sta model/3mf in model/vrml.
- besedilo
Samo besedilni podatki, vključno s katero koli človeku berljivo vsebino, izvorno kodo ali besedilnimi podatki, kot so podatki v formatu CSV (comma-separated value). Primeri vključujejo: text/plain, text/csv in text/html.
- video
Video podatki ali datoteke, kot so filmi MP4 (video/mp4).
Za besedilne dokumente brez posebne podvrste je treba uporabiti text/plain. Podobno velja za binarne dokumente brez določenega ali znanega podtipa, application/octet-stream.
‘Multipart’ oz. večdelni tipi
Te tipi označujejo kategorijo dokumenta, razdeljenega na dele, pogosto z različnimi tipi MIME; uporabljajo se lahko tudi – zlasti v scenarijih e-pošte – za predstavitev več ločenih datotek, ki so vse del iste transakcije. Predstavljajo sestavljeni dokument.
Razen multipart/form-data in multipart/byteranges, HTTP večdelnih dokumentov ne obravnava na poseben način: sporočilo se pošlje brskalniku (ki bo verjetno prikazal okno “Shrani kot”, če ne ve, kako prikazati dokument).
Obstajata dve vrsti večdelnih dokumentov:
- sporočilo
Sporočilo, ki vsebuje druga sporočila. To se lahko uporablja na primer za predstavitev elektronskega sporočila, ki kot del podatkov vključuje posredovano sporočilo, ali za omogočanje pošiljanja zelo velikih sporočil v kosih, kot da gre za več sporočil. Primera sta message/rfc822 (za navajanje posredovanih ali odgovorjenih sporočil) in message/partial, ki omogočata, da se veliko sporočilo samodejno razbije na manjša, ki jih prejemnik ponovno sestavi.
- multipart
Podatki, sestavljeni iz več sestavnih delov, ki imajo lahko različne tipe MIME. Primera sta multipart/form-data (za podatke, ustvarjene z uporabo vmesnika API FormData) in multipart/byteranges (ki se uporablja z odgovorom HTTP 206 “Partial content”, ki se vrne, kadar so pridobljeni podatki le del vsebine, kot je na primer vsebina, ki se posreduje z glavo Range).
Razumevanje in pravilna uporaba vrst MIME sta za spletne razvijalce ključnega pomena iz več razlogov:
- Pravilna obdelava datotek: Spletni strežniki uporabljajo tip MIME in ne končnice datoteke, da določijo, kako obdelati URL. To je pomembno, ker lahko napačna vrsta MIME povzroči napačno razlago datotek, zaradi česar spletna mesta ne delujejo pravilno ali pa se datoteke napačno obdelujejo.
- Združljivost z brskalniki: Različni brskalniki lahko tipe MIME obdelujejo na različne načine. Če strežnik ali aplikacija sporoči napačno vrsto MIME ali privzeto vrsto za neznano vsebino, se lahko brskalniki obnašajo nepričakovano. Nekateri brskalniki lahko poskušajo uganiti pravilno vrsto MIME, kar lahko povzroči izgubo nadzora nad obdelavo in prikazom vsebine.
- Varnost: Nekatere vrste MIME, na primer za izvedljive programe, lahko predstavljajo varnostno tveganje. Ustrezna konfiguracija vrst MIME je ključnega pomena za zagotovitev ustrezne obdelave potencialno nevarne vsebine.
- Predstavitev vsebine: Tipi MIME omogočajo avtorjem in spletnim skrbnikom, da določijo, kako naj se vsebina prikaže ali obdela. Dokument HTML je na primer mogoče poslati kot text/html, ki se prikaže kot spletna stran, ali text/plain, ki prikaže izvorno kodo.
- Združljivost s standardi in protokoli: Pravilna uporaba tipov MIME zagotavlja skladnost s spletnimi standardi in protokoli, kar izboljša interoperabilnost in splošno uporabniško izkušnjo na spletu.
Ustvarjanje lastnega MIME tipa
Če želite ustvariti lasten medijski tip datoteke (MIME type), je pomembno razumeti nekaj ključnih korakov in razlogov za standardizacijo teh tipov. Kot smo že omenili so MIME tipi standardizirani označevalci, ki omogočajo, da se datoteke pravilno prepoznajo in obdelajo v različnih spletnih aplikacijah in brskalnikih. To je nujno za zagotovitev skupne uporabnosti in pravilnega prikaza datotek na različnih platformah.
Koraki za ustvarjanje lastnega MIME tipa
1. Identifikacija potrebe
Najprej določite, zakaj potrebujete nov MIME tip. To je običajno potrebno, če vaša aplikacija uporablja posebne vrste datotek, ki niso zajete z obstoječimi MIME tipi. Na primer, če imate novo vrsto datoteke, ki jo vaše aplikacije uporabljajo za shranjevanje podatkov ali posebne vsebine, morate zagotoviti, da je ta datoteka pravilno prepoznana.
2. Registracija MIME tipa
Ko nastane potreba po novem MIME tipu, je priporočljivo, da ga registrirate pri IANA (Internet Assigned Numbers Authority). S tem zagotovite, da bo vaš MIME tip prepoznan v širšem spletnem okolju. Postopek je naslednji:
- Izpolnjevanje obrazca: Na spletni strani IANA izpolnite obrazec za registracijo novega MIME tipa. Vpišete ime tipa, končnico datoteke, opis in varnostne podrobnosti.
- Pregled in odobritev: Po predložitvi bo vaš predlog pregledan, in če bo odobren, bo dodan v uradni register MIME tipov.
3. Dodajanje MIME tipa na vaš strežnik
Ko je vaš MIME tip registriran, ga morate dodati na vaš spletni strežnik. To omogoča, da strežnik pravilno prepozna in obdeluje datoteke tega tipa. Postopek je odvisen od vrste strežnika, ki ga uporabljate.
4. Uporaba MIME tipa v aplikacijah
Zdaj je treba zagotoviti, da vaše aplikacije pravilno uporabljajo nov MIME tip. To vključuje nastavitev HTTP odzivov in preverjanje MIME tipov v vaši aplikaciji:
- HTTP odzivi: Strežnik mora v odzivih HTTP pravilno nastaviti Content-Type glavo za datoteke novega MIME tipa.
- Preverjanje v aplikacijah: Vaša aplikacija mora preverjati MIME tipe datotek in z njimi ustrezno ravnati. Če na primer vaša aplikacija nalaga datoteke, preverite, ali imajo datoteke ustrezen MIME tip, preden jih sprejmete.
Pomembnost standardizacije
Standardizacija MIME tipov je ključna, ker omogoča enotno prepoznavanje in obdelavo datotek med različnimi sistemi in aplikacijami. Brez standardizacije bi lahko različni sistemi obravnavali iste vrste datotek različno, kar bi vodilo v zmedo in napake. Standardizirani MIME tipi zagotavljajo, da se datoteke pravilno interpretirajo in obdelujejo ne glede na to, kateri sistem ali aplikacija jih uporablja.
Avtorica prispevka: Lea Bogosavljević
O nas
Zavod Rhea se posveča izboljšanju dostopa do storitev in povečanju ozaveščenosti o digitalni pismenosti, zlasti pri ranljivih skupinah. S spodbujanjem digitalne pismenosti ljudem omogočamo boljšo uporabo digitalnih orodij in izboljšamo kakovost življenja. Prav tako se trudimo povečati dostopnost odprtokodne in pregledne programske opreme za trenutne in potencialne uporabnike. Več o nas in naših programih lahko izveste na https://www.rhea.si/.
Viri:
Pena, D. 9.1.2024. An Alphebetized List of MIME Types. Sitepoint. https://www.sitepoint.com/mime-types-complete-list/
MDN WEB DOCS. 18.12.2023. MIME types (IANA media types). https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_Types#structure_of_a_mime_type
Yuan, K. 18.3.2024. Introduction to File MIME Types. https://www.baeldung.com/linux/file-mime-types
Freed, N., Klensin, J. in Hansen, T. 2013. Media Type Specifications and Registration Procedures. RFC Editor. https://www.rfc-editor.org/rfc/rfc6838.html
Naslovna slika: Willi Heidelbach, Vir: https://upload.wikimedia.org/wikipedia/commons/a/ae/Metal_movable_type.jpg.