PageRangers.com
PageRangers Hilfebereich

Was ist ein MIME-Typ

Die Abkürzung MIME-Typ bedeutet "Multipurpose Internet Mail Extensions", heutzutage spricht man oft von Internet Media Type. 

MIME-Typen wurden ursprünglich für E-Mails mit Anhang genutzt. Später wurde dieses Schema auf die Kommunikation zwischen Webserver und Browser angepasst. Der MIME-Typ gibt an, um welche Art, bzw. Klasse es sich bei den gesendeten Daten handelt. Bei einer HTTP-Übertragung gibt der MIME-Typ des Webservers an, welche Art von HTTP-Daten er dem Browser sendet. Der Browser liest die MIME-Daten und schaut, welche Anwendung für die Datei in Frage kommt. Einige Anwendungen sind im Browser schon vorhanden, andere müssen hingegen erst extern geladen werden. Jeder Browser und jeder Server hat eine Liste mit ihnen bekannten MIME-Typen. Beim Senden von Dateien müssen sich Browser und Server einigen, ob die ihm bekannten MIME-Typen miteinander übereinstimmen. Die heutigen Browser kennen gewöhnlich jeden MIME-Typ. Wenn ein Browser einen MIME-Typen nicht erkennt bietet er dem Nutzer einen Download der Datei an und diese abzuspeichern. Der Browser schlägt dem Nutzer dann geeignete Programme zum laden der Datei vor. Webserver hingegen verarbeiten keine Dateien, von denen sie die MIME-Typen nicht kennen.

Ein MIME-Typ besteht aus dem Medientyp und dem Subtypen.Die Angaben werden mit einem Schrägstrich („/“) voneinander getrennt. Der Medientyp gibt die Gruppe der Datei an. Es gibt folgende Medientypen:

  • text – Textdatei
  • image – Grafik/Bild
  • video - Videodatei
  • audio – Musik/Sound-Datei
  • application – Dateien, die an ein bestimmtes Programm gebunden sind
  • message - Nachricht
  • multipart – mehrteilige Datei
  • model – Daten, die mehrdimensionale Strukturen repräsentieren
     

Der Subtype gibt genau an, um welche Art es sich bei der Datei handelt.

text/html => HTML-Dokument
image/png => Bild im PNG Format
application/xml => XML Dokument

Die Medientypen werden von der IANA (Internet Assigned Numbers Authority) verwaltet und sind hier einsehbar: http://www.iana.org/assignments/media-types/media-types.xhtml

 

Die meist genutzten MIME-Typen

Die häufigst verwendeten MIME-Typen findest du in der folgenden Tabelle. Viele weitere findest du auf der Webseite von IANA. Die mit x- beginnenden Subtypen, z.B. application/x-javascript, sind Dateien, die auf dem Server ausgeführt werden.

MIME-Typ

Beschreibung/Erklärung

application/gzip

GNU Zip-Dateien

application/msexcel

Microsoft Excel Dateien

application/mspowerpoint

Microsoft Powerpoint Dateien

application/msword

Microsoft Word Dateien

application/octet-stream

Ausführbare Dateien

application/pdf

Adobe PDF-Dateien

application/postscript

Adobe Postscript-Dateien

application/rtf

Microsoft RTF-Dateien

application/x-javascript

serverseitige JavaScript-Dateien

application/x-httpd-php

PHP-Dateien

application/zip

ZIP-Archivdateien

audio/x-pn-realaudio

RealAudio-Dateien

audio/x-pn-realaudio-plugin

RealAudio-Plugin-Dateien

audio/x-qt-stream

Streaming-Dateien

audio/x-wav

Wav-Dateien

image/gif

GIF-Dateien

image/jpeg

JPEG-Dateien

image/tiff

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 Stylesheet-Dateien

text/html

-Dateien

text/javascript

JavaScript-Dateien

text/plain

reine Textdateien

video/mpeg

MPEG-Dateien

video/quicktime

Quicktime-Dateien

video/x-msvideo

Microsoft AVI-Dateien

 

Warum ist es wichtig, den richtigen MIME-Typ im HTTP-Response-Header zu setzen?

Im Fall, dass der MIME-Typ die Art des Dokuments falsch beschreibt, wird die Datei mit anderen Anwendungen bearbeitet und ausgegeben. Gibt man im einem HTML-Dokument an, dass es sich um ein Bild handelt (image/jpeg => JPEG-Datei), wird die HTML-Datei als Bild und nicht wie ein HTML-Dokument ausgegeben. Der MIME-Typ dient als erste Kommunikation zwischen Webserver und Client (Browser). Ein falscher MIME-Typ, der die Klasse der Datei nicht richtig wiedergibt, kann zu einer Fehlermeldung und einem Abbruch der Übertragung führen.

 

Wie wird der MIME-Typ im HTTP-Response-Header gesetzt?

Im folgenden Beispiel siehst du den Header einer HTTP-Antwort vom Server. Der Content-Type gibt an, um welchen MIME-Typ es sich handelt und dass das Dokument ein Text im HTML-Format ist.

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

 

Was kann passieren, wenn der MIME-Typ falsch gesetzt wird?

Wenn der MIME-Typ nicht gesetzt oder falsch gesetzt wurde, versucht der MIME-Parser (auch MIME-Sniffer genannt) den MIME-Typ zu entschlüsseln. Der Sniffer liest zunächst die ersten Bytes des Dokuments. Wenn es sich bei der Datei um eine PNG- oder JPEG-Datei handelt, wird er diese am Header erkennen. Kommt der Parser dabei zu keinem Ergebnis, liest er die Dateiendung. Schlägt dieser Erkennungsversuch ebenfalls fehl, wird die Datei zunächst als HTML-Datei wiedergegeben. Bei einem Fehlschlag wird die Datei nicht gesendet und es erscheint eine Fehlermeldung. Im Protokolldokument wird die Reihenfolge der Analyse festgehalten.

Wie setzt man den MIME-Typ ins HTML-Dokument?

Den MIME-Typ setzt man mit einem Meta-Tag im Header-Bereich des HTML-Dokuments. 
Zusätzlich wird der charset angegeben, damit die Zeichenkodierung richtig aufgelöst werden kann.

<!DOCTYPE html>
<html lang="de"> 
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
...
</head>
<body> ... </body>
</html>

Warum gibt man den MIME-Typ ebenfalls im HTML-Dokument an?

Die Meta-Informationen im HTML-Dokument werden mit dem Meta-Element bereitgestellt. Die Meta-Angaben sollen das Parsen der Seite/Datei erleichtern, indem man dem Browser einen Hinweis gibt, wie er die Datei behandeln soll. Vor dem Erzeugen der HTTP-Antwort vom Server werden die Daten gelesen und in die Kopfzeile eingebaut. Wenn die Informationen im Header des HTTP-Dokuments schon enthalten sind, werden die Angaben des Clients, die in einem Meta-Element geschrieben sind, bei einer Abweichung bevorzugt. Im HTML-Dokument kann man Elemente, wie Skripte, Links und Parameter, mit dem Attribut „type“ versehen und einen Datentypen bestimmen, um das Parsen zu erleichtern.
Aus SEO-Sicht ist es empfehlenswert den MIME-Typ im Header zu deklarieren und sie MIT dem Dokument zu übergeben, damit bestimmte Dateitypen auf dem Server oder dem Client mit bestimmten Anwendungen geladen werden können.