MIME-Types - Multipurpose Internet Mail Extensions

MIME ist die Abkürzung für Multipurpose Internet Mail Extensions. Es handelt sich um eine Kodierung, die den Anwendungsprogrammen im Internet einen Hinweis auf den verwendeten Datentyp geben soll. Ursprünglich wurde dieses Schema für Datei-Anhänge (Attachments) in E-Mails eingeführt. Innerhalb dieser Multipart-Mails trennt MIME die Datei vom Rest der E-Mail und gibt den empfangenden E-Mail-Clients einen Hinweis auf den Datentyp. Diese Information ist wichtig, damit der Empfänger weiß, mit welchem Programm er die Datei öffnen kann.

Was sich für E-Mails als nützlich erwiesen hat, wurde dann für andere Protokolle eingeführt, die zwischen zwei Stationen Daten übertragen. So haben verschiedene HTML-Elemente Attribute, die den MIME-Type als Angabe enthalten. Auch im HTTP-Header hat der MIME-Type seinen Platz gefunden. Sowohl der Browser, als auch der Web-Server führen eine Liste mit ihren bekannten MIME-Types. Bei jeder Kommunikation zwischen Browser und Web-Server wird der MIME-Type ausgehandelt. In der Regel akzeptiert ein Browser jeden MIME-Type. Kennt er ihn nicht, bietet er dem Anwender den Download dieser Datei an. Der Anwender kann sich dann später entscheiden, welches Programm für die Datei geeignet ist.

Ursprünglich konnte man mit SMTP in E-Mails nur Buchstaben, Zahlen und Zeichen versenden. Mit MIME werden die Dateien in Buchstaben und Zeichen umgewandelt und beim Empfänger wieder zurückgewandelt.

Medientypen und Subtypen

Der MIME-Type besteht aus der Angabe eines Medientyps und eines Subtyps, die durch einen Schrägstrich voneinander getrennt sind. Z. B. text/html oder image/jpeg.
Der Medientyp weist daraufhin, um welche Art es sich handelt. Typische Beispiele sind Text, Bilder, Video und Audio.

MedientypenBeschreibung
textDateien mit ASCII-Text
imageBilder, Grafiken, Fotos
videoVideo-Dateien
audioAudio-Dateien
applicationDateien, die an ein bestimmtes Anwendungsprogramm gebunden sind
mulitpartmehrteilige Daten
messageNachrichten
modelDateien mit mehrdimensionalen Strukturen
exampleBeispiel-Medientyp für Dokumentationen

Aus dem Medientyp ergibt sich die Art der Datenstruktur, also ob die Datei Binär oder nach ASCII abgelegt sind. Der Subtyp bezieht sich auf ein oder mehrere Dateiformate, die an ein bestimmtes Programm gebunden sind oder mit speziellen Programmen oder Plugins ausgeführt werden müssen. Subtypen, die mit einem "x-" anfangen, sind Dateien, die auf einem Server ausgeführt werden. Da es sehr viele MIME-Types gibt, ist die folgende Tabelle nur eine kleine Auswahl der wichtigsten und am häufigsten vorkommenden MIME-Types.

MIME-Type Dateiendung Beschreibung
application/gzip *.gz GNU Zip-Dateien
application/msexcel *.xls *.xla Microsoft Excel Dateien
application/mspowerpoint *.ppt *.ppz *.pps *.pot Microsoft Powerpoint Dateien
application/msword *.doc *.dot Microsoft Word Dateien
application/octet-stream *.bin *.exe *.com *.dll *.class Ausführbare Dateien
application/pdf *.pdf Adobe PDF-Dateien
application/postscript *.ai *.eps *.ps Adobe Postscript-Dateien
application/rtf *.rtf Microsoft RTF-Dateien
application/x-javascript *.js serverseitige JavaScript-Dateien
application/x-httpd-php *.php *.phtml PHP-Dateien
application/zip *.zip ZIP-Archivdateien
audio/x-pn-realaudio *.ram *.ra RealAudio-Dateien
audio/x-pn-realaudio-plugin *.rpm RealAudio-Plugin-Dateien
audio/x-qt-stream *.stream Streaming-Dateien
audio/x-wav *.wav Wav-Dateien
image/gif *.gif GIF-Dateien
image/jpeg *.jpeg *.jpg *.jpe JPEG-Dateien
image/tiff *.tiff *.tif TIFF-Dateien
multipart/alternative   mehrteilige Daten gemischt
multipart/byteranges   mehrteilige Daten mit Byte-Angaben
multipart/digest   mehrteilige Daten / Auswahl
multipart/encrypted   mehrteilige Daten verschlüsselt
multipart/form-data   mehrteilige Daten aus HTML-Formular (z.B. File-Upload)
multipart/mixed   mehrteilige Daten gemischt
text/css *.css CSS Stylesheet-Dateien
text/html *.htm *.html *.shtml -Dateien
text/javascript *.js JavaScript-Dateien
text/plain *.txt reine Textdateien
video/mpeg *.mpeg *.mpg *.mpe MPEG-Dateien
video/quicktime *.qt *.mov Quicktime-Dateien
video/x-msvideo *.avi Microsoft AVI-Dateien

Beispiel für MIME-Type in E-Mails

Die folgenden Zeilen zeigen den Quelltext einer E-Mail.

[E-Mail-Header gekürzt]
From: "Sender" <sender@beispiel.org>
To: <empfaenger@beispiel.org>
Subject: =?ISO-8859-15?B?R3J13w==?=
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="=__Part466D9E30.0__="

--=__Part466D9E30.0__=
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Eine Foto im Anhang.

--=__Part466D9E30.0__=
Content-Type: image/jpeg; name="foto.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="foto.jpg"

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
[Anhang gekürzt]
RAQFCBcwRD8H6y8B+voDMoSa1I4Md6+UMzwKVdT31/fz4cotgwwoZDa1sbvrwU1QcEYNlI3KwKwZ
uiFj1Ka6BVAM2WU4FCh+xfXS1/p573//2Q==

--=__Part466D9E30.0__=--

Beispiel für MIME-Type in einem HTTP-Response (Antwort vom Server)

Die folgenden Zeilen zeigen den Header einer HTTP-Antwort vom Server. Der Content-Type deutet daraufhin, welche Art von Daten folgen.

Beispiel 1: Text im HTML-Format
HTTP/1.x 200 OK
Date: Fri, 04 Sep 2009 18:12:35 GMT
Server: Apache/1.3.34 Ben-SSL/1.55
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Beispiel 2: Bild im GIF-Format
HTTP/1.x 200 OK
Content-Length: 35
Date: Sun, 19 Jul 2009 17:30:00 GMT
Content-Type: image/gif