Internet-mediatyyppi (media type) on määrätyllä tavalla kuvattu datakokonaisuuden ominaisuus, joka kertoo sekä datan yleisen tyypin (esim. teksti tai ääni) että alityypin, joka tarkemmin ilmaisee datan formaatin (esim. määrätyn ääniformaatin).
Mediatyyppi kuvataan ilmaisulla, joka on muotoa
päätyyppi/
alityyppi
missä päätyyppi (engl. top-level media type)
on jokin seuraavista:
text
image
application
-tyyppejä
voidaan pitää grafiikkaformaatteina
audio
video
application
message
model
multipart
Päätyyppien joukko on tarkoitettu
melko pysyväksi.
Tämä merkitsee käytännössä sitä,
että ne uudet mediatyypit, jotka eivät luontevasti sovi muualle,
sijoitetaan "kaatopaikkaluokkaan" application
.
Esimerkkejä mediatyypeistä:
text/plain
|
pelkkä teksti ilman mitään muotoilukoodeja; tarkoitettu esitettäväksi
sellaisenaan
|
image/gif
|
Gif-muodossa esitetty grafiikka
|
audio/basic
|
eräs äänidatan muoto
|
video/mpeg
|
liikkuva kuva, joka on esitetty Mpeg-muodossa
|
application/postscript
|
Postscript-muodossa oleva dokumentti
|
|
Excel-dokumentti
|
message/partial
|
meiliviesti (mail message), joka muodostaa yhden osan laajemmasta
kokonaisuudesta, isosta viestistä, joka on jaettu osiin
|
model/vrml
|
malli, joka on tehty
VRML-kielellä
(Virtual Reality Modeling Language).
|
multipart/alternative
|
data, joka koostuu saman informaation kahdesta tai useammasta
vaihtoehtoisesta
esitysmuodosta, esim. pelkkänä tekstinä
(text/plain ) ja HTML:nä
(text/html )
|
Mediatyyppiin voidaan myös liittää parametreja kuten
charset
-parametri,
joka kertoo käytetyn merkkikoodin.
Parametreihin ei tässä esityksessä juurikaan puututa.
Internet-mediatyyppejä kutsuttiin alun perin MIME-tyypeiksi (MIME types), ja tätä nimitystä käytetään vieläkin usein. Nimi on alun perin lyhenne sanoista Multipurpose Internet Mail Extensions.
Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printablejoka kertoo vastaanottaville ohjelmille, kuten vastaanottajan meiliohjelmalle, missä muodossa ja minkä merkkikoodin ja koodauksen mukaisena viesti on. Tämä mahdollistaa hyvinkin monenlaisen datan lähettämisen meilitse, kunhan asianomaiset ohjelmat osaavat tunnistaa ja käsitellä mediatyypit oikein. Mediatyyppinä on tässä tapauksessa tekstitiedostojen normaalityyppi
text/plain
.
(Sen jäljessä oleva ; charset="iso-8859-1"
on parametri,
joka kertoo, että merkkien koodaus on ISO 8859-1:n eli
ISO-Latin-1:n mukainen.)
Kenties selvimmin mediatyyppien hyödyllisyys
tulee esiin
Webissä. Kun Web-palvelin (server) lähettää käyttäjän
katseluohjelmalle tämän pyytämän datan (dokumentin), se lähettää mukana
myös otsikkotietoja, jotka kertovat mm. datan mediatyypin
(joka ilmoitetaan otsikkotietojen
Content-Type
-kentässä).
Katseluohjelman tulisi perustaa dokumentin käsittely sen
mediatyyppiin. Esimerkiksi jos mediatyyppi on video/mpeg
,
katseluohjelman tulisi antaa data käsiteltäväksi jollekin ohjelmalle,
joka pystyy esittämään MPEG-muodossa esitettyä liikkuvaa kuvaa, tai
sitten kertoa käyttäjälle, ettei dataa pystytä esittämään (jolloin
katseluohjelma voi tarjoutua tallettamaan datan levylle mahdollista
myöhempää käsittelyä varten).
Mediatyyppien ja niitä käsittelevien
ohjelmien
vastaavuus
pitää tietysti määritellä katseluohjelmassa,
joko järkevien oletusarvojen perusteella tai käyttäjän tekemien
määrittelyjen mukaan.
Esimerkiksi Netscape Communicatorissa tällaisia määrittelyjä pääsee
tekemään seuraavasti: valitaan
Edit
->
Preferences...
->
Navigator
->
Applications
jonka jälkeen voidaan sitten muutella ja
lisäillä mediatyyppien ja ohjelmien välisiä vastaavuuksia.
Periaatteessa tiedoston nimen loppuosalla
eli ekstensiolla
(kuten .html
) ei pitäisi tässä vaiheessa olla enää
mitään merkitystä. Käytännössä etenkin
Internet Explorer sotkee asioita "päättelemällä" itse mediatyypin tiedoston nimestä.
Mediatyyppien (MIME-tyyppien) järjestelmän määrittelee joukko RFC-dokumentteja, ensimmäisenä RFC 2045, joka kuvaa Internet-viestien rakenteeseen tarvittavia laajennuksia. Taustalla (ja pohjana) on vanha yleinen viestimuoto RFC 822, jossa datan muotona on pelkkä riveihin jaettu Ascii-teksti. Ks. Juha Merimaan tiivistelmää RFC 2045:stä.
Mediatyyppijärjestelmän perusteet, muun muassa
edellä luetellut päätyypit (paitsi model
),
on määritelty
RFC 2046:ssa,
joka sisältää myös yleisiä mediatyyppeihin liittyviä spesifikaatioita.
Kyseinen dokumentti on RFC:ksi
harvinaisen luettava, varsinkin alkuosaltaan.
Kyseisten yleisten määrittelyjen lisäksi on olemassa
kymmeniä RFC:itä, joiden nimessä esiintyy MIME ja jotka kuvaavat
mm. eri mediatyyppejä sekä MIME-datan käsittelyä eri yhteyksissä.
Earl Hood on
koonnut sivuston
Multipurpose Internet Mail Extensions MIME, joka
sisältää mm. aihetta koskevat perus-RFC:t hypertekstimuodossa ja niiden
yhteisen sisällysluettelon.
Uusien alityyppien rekisteröinti tapahtuu
RFC 2048:n
mukaisesti.
Ajantasaista rekisteriä
ylläpitää
IANA-niminen organisaatio
nykyisin osoitteessa
http://www.iana.org/assignments/media-types/
Käytännössä kuitenkin mediatyyppejä saatetaan ottaa käyttöön
rekisteröimättä niitä. Periaatteessa tällaisten "yksityisten"
mediatyyppien pitäisi olla sellaisia, että niiden alityypin nimi
alkaa merkeillä x-
.
Todellisuudessa monia rekisteröityjen tyyppien näköisiä, mutta
rekisteröimättömiä tyyppejä (esim. audio/mpeg
, joka
tarkoittaa MPEG3-ääniformaattia) käytetään aika yleisesti.
Dokumentti Multipart Internet Mail Extensions (MIME) (Ian S. Grahamin teoksessa The HTML Sourcebook, 3Ed on lueteltu koko joukko rekisteröimättömiä mutta yleisesti käytettyjä mediatyyppejä (rekisteröityjen tyyppien ohella). Toinen samantapainen luettelo on kirjan Special Edition Using CGI (julkaisija: QUE) liitteessä B.
Lisätietoja mediatyypeistä ja MIMEstä, etenkin eräistä koodauksista, on Nyysioppaan kohdissa Mime ja Merkkien koodaus.
We have a stirring <A href= "http://www.olemiss.edu/depts/music/audio/olemiss.au"><strong>fight song</strong></A> (400k .au).Katseluohjelma näyttää tämän esimerkiksi seuraavanlaisena:
We have a stirring fight song (400k .au).Jos nyt käyttäjä valitsee kyseisen linkin (klikkaamalla tms.), niin hänen katseluohjelmansa lähettää asianomaiselle palvelimelle (tässä
www.olemiss.edu
) pyynnön saada
dokumentti. Palvelin lähettää dokumentin ja sen mukana tiedon sen
mediatyypistä. Jos mediatyyppi on jokin audio
-tyyppi
(esimerkiksi audio/basic
), niin selaimen tulisi käsitellä
se jollakin äänitiedostoille sopivalla tavalla. Jos selain pystyy
esittämään äänet, sen tulisi käynnistää siihen sopiva ohjelma. Jos
ei, niin selain saattaa vain kysyä käyttäjältä, mihin tiedostoon
dokumentti talletetaan, tai kysyy, haluaako käyttäjä tallentaa tiedoston
vai avata sen ja millä ohjelmalla.
Olennaista on, että selain ei saisi suinkaan
ruveta esittämään dokumenttia tekstinä näytöllä. Jotta tämä onnistuisi,
sen täytyy saada oikea tai edes oikeansuuntainen tieto mediatyypistä ja
sen täytyy olla oikein konfiguroitu. Jos esimerkiksi tietokoneeseen,
jossa ei ole äänitukea, asennetaan siihen tarvittava laitteisto ja
ohjelmisto, on syytä tarkistaa myös Web-katseluohjelman asetukset
niin, että se osaa käynnistää sopivan ohjelman, kun tulee
audio
-tyyppistä dataa.
Edellä sanottu merkitsee, että tiedoston nimen päätteellä ei enää pitäisi olla mitään merkitystä sen jälkeen, kun palvelin on lähettänyt tiedoston. Selaimen pitäisi tulkita tiedosto palvelimen ilmoittaman mediatyypin mukaan eikä suinkaan itse yrittää päätellä sitä nimen loppuosan perusteella.
Usein kysytään, miten Web-dokumentissa voisi käyttää linkkiä, jonka
kautta käyttäjät voivat "imuroida" esim. tekstitiedoston tai
binaarimuodossa olevan ohjelman suoraan kovalevylleen. Kysymys perustuu
väärinkäsitykseen. Dokumentin tasolla riittää kirjoittaa normaali linkki,
ja dokumentin ulkopuolella pitää esim. nimen loppuosan valinnalla
huolehtia siitä, että mediatyyppi on oikea. Katseluohjelman ja käyttäjän
asia on valita dokumentin käsittelyn tapa (niistä vaihtoehdoista, jotka
kullekin dokumentille ovat mielekkäitä). Esimerkiksi Netscapen käyttäjä
voi valita linkin siten, että hän käyttääkin hiiren oikeanpuoleista nappia
(eikä vasenta kuten yleensä) ja sitten valitsee avautuvasta valikosta
vaihtoehdon Save Target As...
Palvelimen lähettämä tieto mediatyypistä perustuu yleensä (mutta ei
mitenkään välttämättä) siihen, että palvelimen konfiguraatiossa on
määritelty kuvaus (mäppäys), joka liittää tiedostoon mediatyypin
tiedoston loppuosan perusteella. Palvelin voisi esimerkiksi tulkita
kaikki ne tiedostot, joiden nimi loppuu merkkeihin .doc
,
MS Word application/msword
.
Palvelimen toiminta tässä suhteessa saattaa olla dokumentin tekijän
muutettavissa esim. ns. .htaccess
-tiedoston avulla.
Esimerkiksi
TKK:n Web-palvelimen
www.hut.fi
toiminta tässä suhteessa on kuvattu
paikallisissa Web-ohjeissa
olevassa
erillisessä dokumentissa.
Sitä, minkä mediatyyppitiedon palvelin lähettää, ei välttämättä voi päätellä katseluohjelman toiminnasta. Voihan olla, että palvelimen lähettämä tieto on oikea mutta katseluohjelma tältä osin puutteellisesti konfiguroitu. Niinpä voikin olla tarpeen tarkistaa kyseinen tieto. Tähän on käytettävissä monia palveluita, joiden nimi on HTTP Header Viewer tai jotain vastaavaa, esimerkiksi Rex Swain’s HTTP Viewer.
Toinen, teknisesti hiukan vaativampi
tapa on olla suoraan yhteydessä palvelimeen Telnet- ja HTTP-protokollilla.
Kun halutaan tietää dokumentin
http://
palvelin/
polkunimi
mediatyyppi, otetaan
Telnet-yhteys koneeseen palvelin,
käyttäen
numeroa 80 ellei itse URL:ssä ole ilmoitettu muuta. Sitten annetaan
käsky
HEAD
/
polkunimi HTTP/1.0
ja tyhjä rivi (siis painetaan returnia kahdesti). Seuraavassa esimerkissä
tämä on tehty Unix-koneella, ja tutkittavana dokumenttina on ollut
http://www.hut.fi/home/jkorpela/perhe.jpg
:
beta ~ 51 % telnet www.hut.fi 80 Trying 130.233.224.28... Connected to info-e.hut.fi. Escape character is '^]'. HEAD /home/jkorpela/perhe.jpg HTTP/1.0 HTTP/1.1 200 OK Date: Tue, 23 Sep 1997 12:37:05 GMT Server: Apache/1.2.4 Last-Modified: Tue, 08 Aug 1995 08:29:53 GMT ETag: "16391-9232-30272081" Content-Length: 37426 Accept-Ranges: bytes Connection: close Content-Type: image/jpeg Connection closed by foreign host. beta ~ 52 % exitTässä
Content-Type:
-kertoo, että mediatyyppi
on image/jpeg
.
A
-elementin
kuvauksessa.
WDG Web Authoring FAQ:ssa luku Other Media käsittelee mediatyyppeihin liittyviä asioita.
Mediatyyppejä ei pidä sekottaa
"tiedostotyyppeihin" Windows-mielessä eikä tiedoston
nimen loppuosaan, vaikka näiden asioiden välillä onkin
joitakin yhteyksiä.
Esimerkiksi ".doc
-tyyppi" ei
ole mikään tiedostotyyppi. Aiheesta kertoo lisää juttu
"Sain tiedoston, jonka nimi loppuu .
xyz;
mitähän se sisältää?",
jossa myös kerrotaan, mistä saa tietoja tiedostonnimen loppuosan
ja mediatyypin välisistä mahdollisista yhteyksistä.