MIME tipi, ali Multipurpose Internet Mail Extensions, so standardizirani označevalci, ki identificirajo vrsto datotek, ki se prenašajo prek interneta in tudi dialogi za odpiranje datotek v programih na nekaterih sistemih. 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.
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.
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
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.
Zvočni ali glasbeni podatki. Primeri vključujejo audio/mpeg, audio/vorbis.
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.
Podatki o pisavi/vrsti. Pogosti primeri so font/woff, font/ttf in font/otf.
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.
Podatki modela za 3D predmet ali prizor. Primera sta model/3mf in model/vrml.
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 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.
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, 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.
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:
Č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:
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:
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ć
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/.
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
Odprtokodni (FOSS) projekti so postali ključni del sodobne digitalnega sveta. Njihova prilagodljivost, transparentnost in dostopnost…
Zamisel o brezplačni in odprtokodni programski opremi (Free and Open Source Software - FOSS) je…
V digitalni dobi, kjer je varnost podatkov ključnega pomena, postaja večfaktorsko preverjanje pristnosti (Multi Factor…
V današnjem digitalnem svetu, kjer se večina interakcij in transakcij odvija prek svetovnega spleta, je…
V obdobju, kjer so podatki postali nova valuta, je varovanje zasebnosti posameznikov postalo ključno vprašanje.…
V času, ko so osebni podatki postali dragoceno in ranljivo blago, je uvedba splošne uredbe…