MIME-Type
Der Internet Media Type oder MIME-Type (Multipurpose Internet Mail Extensions) gibt an, welche Art von Daten gesendet werden. Aus dem Namen geht hervor, dass das, was da spezifiziert wird, ursprünglich für E-Mails mit Anhängen (attachments) gedacht war. Solche so genannten Multipart-Mails enthalten die gesamten zu übertragenden Daten in einer Datei. Innerhalb der Datei musste eine Konvention gefunden werden, wie die einzelnen Teile (z. B. Text der E-Mail und angehängte ZIP-Datei) voneinander zu trennen seien. Das Schema erwies sich nicht nur für E-Mails als nützlich.
Fast immer, wenn entfernte Programme (z. B. Web-Browser und Web-Server) wegen einer bevorstehenden Datenübertragung miteinander kommunizieren, geht es auch um die Art der zu übertragenden Daten. Dabei hat sich im gesamten Internet das Schema der MIME-Typen durchgesetzt. Auch im Web stößt man an verschiedenen Stellen auf MIME-Typen:
- Verschiedene HTML-Elemente haben Attribute, die als Wertzuweisung die Angabe eines MIME-Typen erwarten, nämlich
- Wenn ein CGI-Script an den aufrufenden Browser einen HTTP-Header sendet, muss es den MIME-Typ der nachfolgenden Daten senden.
- In JavaScript gibt es ein eigenes Objekt MIME-Typen, das es erlaubt, in JavaScript die verfügbaren MIME-Typen des Browsers zu ermitteln.
Sowohl jeder Web-Browser als auch jeder Web-Server führt eine Liste mit ihm bekannten MIME-Typen. Bei der Kommunikation müssen sie sich darauf einigen, ob der Empfänger den MIME-Typ akzeptiert, den der Sender senden will. Moderne Browser akzeptieren zwar in der Regel jeden MIME-Typ und bieten dem Anwender einfach an, falls sie den MIME-Typ nicht kennen, die zu empfangenden Daten als Download-Datei abzuspeichern. Web-Server sind dagegen meist empfindlicher. MIME-Typen, die sie nicht kennen, verarbeiten sie nicht. Gerade wenn auf dem Server-Rechner nicht alltägliche Dateiformate bereitgestellt werden, ist es wichtig, den MIME-Typ dafür in der Konfiguration des Web-Servers zu notieren.
Bei Standard-Dateiformaten sollten Sie unbedingt die MIME-Typ-Angaben verwenden, die dafür etabliert sind. Die Übersicht listet viele bekannte MIME-Typen auf. Wenn Sie trotz Recherchen, zum Beispiel im IANA-Verzeichnis der Media-Typen keinerlei Anhaltspunkte dafür finden, ob es zu einem Dateiformat einen bereits etablierten MIME-Typ gibt, können Sie selber einen festlegen. Gleiches gilt für völlig eigene Dateiformate.
Schema
Dazu müssen Sie das Schema der MIME-Typen kennen. Ein MIME-Typ besteht aus zwei Teilen: der Angabe eines Medientyps und der Angabe eines Subtyps. Beide Angaben werden durch einfachen Schrägstrich voneinander getrennt. Beispiele: text/html
, image/gif
.
Es gibt folgende Medientypen:
text |
für Textdateien |
image |
für Grafikdateien |
video |
für Videodateien |
audio |
für Sound-Dateien |
application |
für Dateien, die an ein bestimmtes Programm gebunden sind |
multipart |
für mehrteilige Daten |
message |
für Nachrichten |
model |
für Dateien, die mehrdimensionale Strukturen repräsentieren |
Subtypen für server-eigene Dateiformate, d. h. Dateitypen, die auf dem Server ausgeführt werden können, werden meist mit x-
eingeleitet.
Das Schema der MIME-Typen wird in den Requests for Comments (RFCs) mit den Nummern 2045, 2046 und 2077 festgelegt.
Da es beispielsweise unterschiedliche Bildformate gibt, kann man dies durch einen entsprechenden Subtyp kennzeichnen, etwa
-
image/gif
, -
image/jpeg
, -
audio/mpeg
oder -
application/pdf
.
Einige MIME-Typen erlauben auch die Angabe von Parametern. Jeder Parameter beginnt mit einem Semikolon ;
, gefolgt von dem Parameternamen, einem Gleichheitszeichen =
und dem Parameterwert. Vor und hinter dem Semikolon sind Leerstellen zulässig. Ein Beispiel für einen MIME-Typ mit Parameter findet man im Content-Type-Header: text/html;charset=utf-8
;