| Wenn ein Programm unterschiedliche Daten-Typen (z.B. Text, Grafik, ...) verarbeiten soll, dann benötigt es Informationen über die Art der Daten. | Dieses Problem wurde im Internet erstmals allgemein gelöst und steht nun als Offener Standard (lizenzfrei) MIME-type zur Verfügung. |
Standards
|
Chancen ohne Monopole |
| Geschichte | Wer hat wann die MIME-types festgelegt ? |
| Syntax | Einfacher gehts kaum |
| Anwendung | Einige Anwendungs-Beispiele |
| XHTML | Der moderne Nachfolger von HTML |
| Liste | MIME-Type Liste des Apache Webservers |
| Links |
|
Ursprung und Geschichte der MIME-Types |
|
|
Allround-Programme wie Browser oder Mail-Programme
müssen mit ganz unterschiedlichen Arten von Dokumenten zurechtkommen:
Texte, Grafiken, Animationen, Sound, ... Die Angabe der "mime-type" vor dem "Laden" eines Dokuments soll es solchen Programm ermöglichen, adäquat zu reagieren: |
Einige Dokument-Arten kann ein Browser selbst bearbeiten: HTML-Webseiten, einfache Texte, einfache Bilder, ... Für andere Typen wird ein Hilfsprogramm (Plugin) eimngesetzt, z.B. SVG-Objektgrafik, Acrobat-(PDF)-Daten, usw. |
| Dieses Problem musste zuerst bei Mail-Programmen mit Anlage (attachment) gelöst werden (daher der Name ...Mail Extensions), tritt heute jedoch bei fast allen Internet-Programmen und darüber hinaus auf. |
Der mime-type - Standard ist bei der Internet
Engineering Task Force (IETF)
mit "Request for Comments"
(RFC) festgelegt:RFC-822 (1982-08) - Vorläufer: ARPAnet - Text RFC-2045 (1996-11) - Struktur von MIME "Botschaften" RFC-2046 (1996-11) - Media Typing System RFC-2047 (1996-11) RFC-2048 (1996-11) - IANA Registration von MIME-types RFC-2049 (1996-11) - Ergänzungen, Beispiele RFC-2077 (1997-01) - Ergänzungen Viel Papier für eine einfache Sache... |
Anwendung von MIME-Types: einige Beispiele |
|
HTML Meta-Elemente:Im <head> von Webseiten sind meistens mehrere <meta>-Elemente untergebracht.Das Attribut http-equiv="content-type" bietet die Möglichkeit zur Angabe der MIME-Type (Hier z.B. text/xml ). Leider wird die Type genau dort ignoriert, wo man sie dringend brauchen würde: Vom M$IE Browser. |
<meta http-equiv="content-type"
content="text/xml; charset=utf-8" />
|
HTML-Elemente:In HTML-tags wird optional die MIME-type als Attribut mit dem Namen type angegeben. Die Angabe der MIME-Type in einem <a>-Hyperlink würde es bequem erlauben, einem Browser die Art der Daten anzukündigen, bevor diese eintreffen. Leider wird diese Angabe vom M$IE Browser in den meisten Fällen ignoriert. |
<script type="text/javascript"></script>
<link rel=stylesheet type="text/css" href=".." /> <object data=".." type="image/svg+xml"></object> <a type="text/xml" href="..">Hyperlink</a> |
HTTP-Header:Ein Webserver sendet unterschiedliche Daten-Typen (HTML, Text, Bilder, SVG, PDF, ...) an den Browser.Zur eindeutigen Kennzeichnung der Daten-Type beginnt jeder Datenstrom mit einem HTTP-Header, in welchem die Type der nachfolgenden Daten definiert wird. Wenn sie Server-Programme erstellen (z.B. PHP, Perl, ...), dann müssen sie dafür sorgen, dass vor Beginn der erzeugten Daten der richtige HTTP-Header steht. |
Ein Browser erhält unterschiedliche Daten vom Webserver. Da jeder Datenstrom mit einem HTTP-Header beginnt, 'weiß' der Browser, wie die nachfolgenden Daten zu interpretieren sind (z.B. als HTML-Quelltext, als JPEG-Bild, usw. ) Manche Daten-Typen werden vom Browser an Hilfsprogramme (Plugins) übergeben, z.B. PDF, SVG,... . Der Browser integriert dann die von den Hilfsprogrammen erzeugten Objekte in die Webseite. Das funktioniert mit allen modernen Browsern ausgezeichnet - leider nicht in allen Fällen mit M$IE. ♦ Details zum HTTP-Header und seiner Programmierung. |
M$-Problem: |
|
XHTML |
|
|
XHTML ist der moderne Nachfolger des HTML-Standards zur Codierung von Webseiten. XHTML bietet bedeutend erweiterte Möglichkeiten und ist leicht anzuwenden, da sich der Code nur in wenigen Details von HTML unterscheidet. |
Alle modernen Browser 'verstehen' XHTML - Mit Ausnahme von M$IE. Dieses Problem kann man mit ein paar Tricks zwar umgehen, das hat jedoch dazu geführt, dass die meisten im Internet verfügbaren XHTML-Seiten bei genauer Interpretation fehlerhaft sind. |
MIME-Type für XHTMLDie korrekte MIME-Type für XHTML-Dokumente istapplication/xhtml+xml
Je nach Interpretation ist auch diese MIME-Type zulässig:
text/xml
XHTML-Webseiten können Elemente aller anderen XML-Familien direkt im Quelltext
enthalten, z.B. SVG-Grafik oder MathML-Formeln. Darüber hinaus ist es möglich,
Bilder und andere Objekte in klasssicher HTML-Technik einzubetten.
|
MIME-Type für HTMLDie MIME-Type klassischer HTML-Webseiten isttext/html
HTML-Webseiten können Bilder und andere Elemente enthalten, jedoch nicht im
Quelltext, sondern in speziellen Einbettungs-Elementen,
z.B. <embed> <iframe> <img> <object> usw.
|
DateinamenDer M$IE Browser ignoriert die MIME-Type völlig, wenn die verwendete Datei auf *.htm oder *.html endet. In diesem Fall wird die Datei als HTML-Webseite verarbeitet und alle darin vorkommenden XHTML-Elemente ignoriert.Übliche Dateinamen für XHTML-Webseiten sind *.xhtml oder *.xml: Diese Dateien werden von M$IE unterschiedlich behandelt, jedenfalls nicht als Webseiten angezeigt, und zwar auch bei korrekter Angabe der MIME-Type. |
HTTP-HeaderMit einem Webserver kann man dynamische Webseiten herstellen. Dazu werden z.B. Dateien *.php oder *.pl verwendet. Da solche 'Script-Programme' nicht nur Webseiten herstellen können sondern z.B. auch Bilder, muss im Programm die MIME-Type der erzeugten Daten angegeben werden.M$IE verwendet jedoch nur die Type text/html korrekt und zeigt den Inhalt als Webseite an. Die Typen application/xhtml+xml und text/xml werden unterschiedlich behandelt, jedenfalls nicht als Webseite angezeigt. |
XSLDie XSL-Technik verwendet eine eigene 'Programmiersprache' zur Herstellung dynamischer Webseiten durch den Browser. XHTML-Elemente könne zwar hergestellt werden, sie werden jedoch von M$IE-Browser ignoriert und das erzeugte Dokument als HTML-Webseite behandelt. |
|
MIME-Types Liste |
|
| In dieser Liste wird die Text-Datei mime.types angezeigt, die in jeder Version des Apache Webservers enthalten ist. Sie ist nicht verbindlich, aber recht praktisch zum Nachsehen. | Die Liste wird ohne Kommentar wiedergegeben, wie sie ist, - ohne Gewähr ! |
|
|
|
Homepages der MIME-types Internet Engineering Task Force (IETF), Request for Comments" (RFC): RFC-822, RFC-2045, RFC-2046, RFC-2047, RFC-2048, RFC-2049, RFC-2077 Information Sciences Institute ISI der USC: mime-type-Listen mit Beschreibungen der Datentypen (Offizielle IANA Registrierung von MIME-Types) |
SelfHTML (de) - Erklärung, Beispiele, Listen Imperial College London: Chemical mime-types Hunnysoft: MIME information page FAQS.org: mime & mail Asahi: MIME-type Liste |
| Microsoft: MIME Type Detection in M$IE (Registry), MIME Type Settings for Windows Media Services (M$IIS, Apache...) | |