Der MIME-Typ
Unbekannter Datentyp – und jetzt?
Damit man Daten sinnvoll verwenden kann, ist es hilfreich zu wissen, worum es
sich überhaupt handelt. Dies ist im Falle von Dateien, die direkt
heruntergeladen werden, kein Problem, da man hier anhand der Dateiendung
feststellen kann, worum es sich aller Wahrscheinlichkeit nach handelt, doch
wenn Daten durch ein Skript, o. ä. bereitgestellt werden, sieht die Sache ganz
anders aus. Hier hilft dann i. d. R. nur zu raten, mit welcher Sorte Daten man
es zu tun bekommt. Anhand der erhaltenen Daten zu ermitteln, worum es sich
handelt, erweist sich sehr schnell als fehleranfällig, und was im Falle von
Textdateien noch recht passabel
funktioniert, geht im Regelfalle schief, sowie
Binärdaten übergeben werden.
Da die übergebenen Daten keinerlei Kopfdaten bereitstellen, anhand derer man
erkennen könnte, worum es geht, bleibt dem Programm, das die Daten anfordert,
also nur, die heruntergeladenen Daten auf Platte zu speichern, damit der
Anwender nachschauen kann, worum es sich handelt – was jedoch kaum praktikabel
sein dürfte – oder aber eine sehr rechenzeitaufwendige Datenanalyse zu starten,
um vielleicht den Dateityp zu ermitteln, mit dem es zu tun bekommt.
Doch egal welchen Ansatz man hier wählt, aus Gesichtspunkten der
Benutzerfreundlichkeit scheiden beide aus.
Was der MIME-Typ aussagt
Um diesem Problem zu begegnen, wird beim Datentransfer z. B. mittels HTTP
ein bestimmter Eintrag zusammen mit den
Kopfdaten übermittelt, der dem Empfänger signalisiert, womit er es zu tun
bekommt, so daß dieser sofort entscheiden kann, wie er mit dieser Datei zu
verfahren hat. Bekannte Datentypen wird er, so er selbst über diese Möglichkeiten
verfügt, direkt verarbeiten, oder wenn er auf eine passende Erweiterung
zugreifen kann, die Daten an diese weiterleiten. Lediglich bei unbekannten
Daten wird der Empfänger diese dem Anwender zum Download anbieten.
Wenn man sich den MIME-Typ eines Datenobjektes einmal anschaut, so stellt man
fest, daß er aus zwei Bezeichnern besteht, die durch einen Schrägstrich
voneinander getrennt sind, z. B. text/html. Der Teil
vor dem Schrägstrich gibt dabei an, um welchen allgemeinen Datentyp es sich
handelt (in diesem Fall sind es Textdaten), und das, was hinter dem
Schrägstrich steht, gibt an, worum es sich genau handelt. In diesem Fall sind
es HTML-Daten, die, in einen Webbrowser geladen, diesem mitteilen, wie er die
dadurch beschriebene Seite darstellen soll.
Eine Datei, die hingegen als image/jpeg übergeben
wird, erkennt der Browser sofort als JPEG-Datei, die dieser anschließend
darstellt, und zwar für sich, wenn über einen Verweis darauf zugegriffen wird
oder aber als Teil eines HTML-Dokuments, wenn dieses besagte Datei als Bild
einbindet.
text/plain
Hierbei handelt es sich um genau das, was der MIME-Typ aussagt: Reine
Textdaten. Der Browser wird eine solche Datei ohne weitere Bearbeitung so
darstellen, wie sie auf dem Server vorliegt, d. h. mit allen Zeilenumbrüchen
usw. dort, wo sie auch in der Textdatei plaziert worden sind.
Man kann natürlich auch andere Daten als reine Textdaten mit diesem MIME-Typ
übergeben, nur werden diese dann in ihrer Rohform dargestellt. Eine HTML-Datei,
die beispielsweise auf diese Art und Weise übergeben wird, erscheint in ihrer
Rohform, d. h. so, wie sie auf Platte abgelegt ist.
Sie werden diesem MIME-Typ normalerweise nicht begegnen, es sei denn, daß Ihnen eine Textdatei angeboten wird, die Sie so auf Platte speichern sollen. Eine Webseite auf diesem Wege zu erstellen, erweist sich i. d. R. als fruchtloses Unterfangen, da Sie das Layout nur innerhalb der Textdatei selber festlegen können und auch keine Verweise setzen oder andere Dateien einbinden können.
nach obentext/html
Diesem MIME-Typen werden Sie normalerweise immer dann begegnen, wenn Sie eine
Webseite aufrufen. Dies teilt dem Browser mit, daß die Datei keine normale
Textdatei ist, sondern zusätzlich Formatierungsinformationen bereitstellt,
anhand derer der Browser das Dokument korrekt darstellen kann.
Leider ist die Überprüfung von HTML-Dokumenten sehr lax, was schnell dazu
verleitet, problematischen HTML-Code zu schreiben, der zwar von einem Browser
noch dargestellt wird, dafür aber Syntax- und logische Fehler enthält – was
dazu führt, daß dieser fehlerhafte Code von unterschiedlichen Browsern (sogar
verschiedene Versionen innerhalb derselben Browserfamilie) vollkommen
unterschiedlich dargestellt wird.
Um diesem Problem zu begegnen, ist der Einsatz eines Validierungsdienstes
unbedingt empfehlenswert.
application/javascript
Dieser MIME-Typ tritt immer dann in Erscheinung, wenn JavaScript, der in ein
HTML-Dokument eingebunden werden soll, aus einer externen Quelle nachgeladen
wird. Dieser weist den Browser an, den in der Datei enthaltenen Code
auszuführen.
Dabei gilt es jedoch zu beachten, daß das JavaScript sich einen globalen
Namensraum teilt, selbst wenn er auf mehrere Dateien aufgeteilt ist. Hier gilt
es dann, dies zu berücksichtigen, insbesondere dann, wenn mehrere Dateien
Bezeichner einführen, die auf den gleichen Namen lauten.
Zwar findet man oftmals noch den MIME-Typ text/javascript, doch dieser gilt als veraltet und sollte daher nicht verwendet werden. Stattdessen ist application/javascript zu verwenden, um Dateien, die JavaScript enthalten, zu übergeben.
nach obentext/css
Dies bezeichnet ein Cascading Style Sheet, das Formatierungsinformationen für
den Browser bereitstellt, damit er die HTML-Datei, von der es eingebunden wird,
korrekt darstellen kann. Im Regelfall wird der Browser die in einer HTML-Datei
enthaltenen Elemente der Reihe nach anzeigen, doch komplexere Seitenlayouts
können erfordern, daß die Elemente anders angeordnet werden, als sie in der
HTML-Datei notiert wurden.
Da es jedoch mittlerweile eine Trennung zwischen HTML-Code (der angibt,
was der Browser darzustellen hat) und den
Formatierungsinformationen (legen fest, wie der
Browser die verschiedenen Elemente darzustellen hat) gibt, ist es erforderlich,
die Formatierungsinformationen irgendwo zu hinterlegen. Damit jedoch auf allen
Seiten einheitliche Formatangaben erfolgen, können diese in zentralen Dateien,
welche dann mit diesem MIME-Typ übergeben werden, notiert und dann von allen
Dokumenten eingebunden werden.
application/xhtml+xml
Dieser MIME-Typ bezeichnet letztlich Textdateien, aber die Art und Weise, wie
sie verarbeitet werden, weist einige Besonderheiten auf. So ist das XHTML, das
hierdurch kenntlich gemacht wird, im Gegensatz zum HTML nicht von SGML
abgeleitet, sondern stattdessen von XML, und zweitens stellt das übergebene
Dokument keinen Text dar, sondern letztlich eine XML-Anwendung, auch wenn es
als Textdatei auf Platte vorliegt.
Zudem wird man feststellen, daß der Browser bei der Ausführung von XHTML
wesentlich kleinlicher ist, als er bei der Darstellung von HTML wäre, da er,
sowie er einen Fehler findet, eine Fehlermeldung ausgibt, anstatt das Dokument
anzuzeigen. Dies kann einerseits ein Nachteil sein, da Sie so nicht
umhinkommen, gültign XHTML-Code zu schreiben, aber andererseits ist es auch
entschieden von Vorteil, da Sie so die Gewißheit haben, ein syntaktisch
korrektes Dokument erstellt zu haben, wenn es von einem Browser dargestellt
wird. Etwaige logische Fehler können dann ganz einfach mit einem
Validierungsdienst lokalisiert werden.