MIME-Type
MIME-Types - Klassifizieren von Daten im Rumpf einer Nachricht
Beschreibung
- Multipurpose Internet Mail Extensions
- Der Internet Media Type, auch MIME-Type (nach der Spezifikation Multipurpose Internet Mail Extensions) oder Content-Type (nach dem Namen des Feldes), klassifiziert die Daten im Rumpf einer Nachricht im Internet.
- Wie im MIME-Standard erläutert, wird z. B. bei einer HTTP-Übertragung einem Browser mitgeteilt, welche Daten der Webserver sendet – ob es etwa ein Plain-Text-Dokument, ein HTML-Dokument oder ein PNG-Bild ist.
- Auch in E-Mails wird das „Content-Type“-Header-Feld dazu verwendet, die verschiedenen Daten zu klassifizieren.
- MIME ist die Abkürzung für Multipurpose Internet Mail Extensions
Es handelt sich um eine Codierung, 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
Internet Media Type besteht aus zwei Teilen
- Angabe eines Medientyps
- Angabe eines Subtyps.
Beide Angaben werden durch einen Schrägstrich voneinander getrennt, Beispiel image/jpeg.
- application – für uninterpretierte binäre Daten, Mischformate (z. B.
- Textdokumente mit eingebetteten nichttextuellen Daten) oder Informationen, die von einem bestimmten Programm verarbeitet werden sollen
- audio – für Audiodaten
- example – Beispiel-Medientyp für Dokumentationen
- image – für Grafiken
- message – für Nachrichten, beispielsweise message/rfc822
- model – für Daten, die mehrdimensionale Strukturen repräsentieren
- multipart – für mehrteilige Daten
- text – für Text
- video – für Videomaterial
- chemical – für z. B. : Moleküle (inoffiziell)
Es sind zurzeit über 130 Subtypen definiert, zusätzlich integriert jede Rechnergeneration eine Vielzahl von eigenen Medientypen.
- Verwaltet werden die Medientypen von der Internet Assigned Numbers Authority.
Medientypen und Subtypen
Der MIME-Type besteht aus der Angabe eines Medientyps und eines Subtyps, die durch einen Schrägstrich voneinander getrennt sind
text/html oder image/jpeg
Der Medientyp weist daraufhin, um welche Art es sich handelt.
- Typische Beispiele sind Text, Bilder, Video und Audio.
Medientypen | Beschreibung |
---|---|
text | Dateien mit ASCII-Text |
image | Bilder, Grafiken, Fotos |
video | Video-Dateien |
audio | Audio-Dateien |
application | Dateien, die an ein bestimmtes Anwendungsprogramm gebunden sind |
mulitpart | mehrteilige Daten |
message | Nachrichten |
model | Dateien mit mehrdimensionalen Strukturen |
example | Beispiel-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 | 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
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
Namensgebung
Ein Medientype besteht aus einem Typ und einem Subtyp, die als Baum strukturiert sind.
- Eine Medientype kann optional auch einen Suffix und Parameter enthalten:
Typ "/" [Baum "."] Subtyp ["+" Suffix] *[";" Parameter]
Häufige Beispiele
application/graphql
application/javascript
application/json
application/ld+json
application/feed+json
application/msword
(.doc)application/pdf
application/sql
application/vnd.api+json
application/vnd.ms-excel
(.xls)application/vnd.ms-powerpoint
(.ppt)application/vnd.oasis.opendocument.text
(.odt)application/vnd.openxmlformats-officedocument.presentationml.presentation
(.pptx)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
(.xlsx)application/vnd.openxmlformats-officedocument.wordprocessingml.document
(.docx)application/x-www-form-urlencoded
application/xml
application/zip
application/zstd
(.zst)audio/mpeg
audio/ogg
image/apng
image/gif
image/jpeg
image/png
image/svg+xml
(.svg)multipart/form-data
text/css
text/csv
text/html
text/php
text/plain
text/xml
MIME-Sniffing
Fehlt die Angabe des MIME-Typs, soll das MIME-Sniffing den MIME-Typ erkennen.
- Dazu werden zunächst die ersten Bytes des Dokuments gelesen.
- Bilder im Format JPEG oder PNG sind leicht an ihrem Header zu unterscheiden (Magische Zahl).
- Schlägt die Analyse fehl, wird die Dateiendung herangezogen.
- Danach wird entweder eine Standard-Darstellung versucht, beispielsweise die Wiedergabe als HTML-Datei, oder die Wiedergabe wird mit einer Fehlermeldung abgebrochen.
Die Reihenfolge der Analyse wird in Protokolldokumenten festgelegt. So fordert das HTTP1.1-Dokument, dass immer der angegebene Content-Typ zu verwenden ist.
- Nur wenn er fehlt, darf MIME-Sniffing den Typ erraten.
Anhang
Siehe auch
- HTTP - Hypertext Transfer Protocol
- WWW - World Wide Web
- SMTP - Simple Mail Transfer Protocol
- POP3 - Post Office Protocol
- IMAP4 - Internet Message Access Protocol
- Dateiformat
- Liste von Dateinamenserweiterungen
Links
Weblinks
- w3.org
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Liste der IANA
- Übersicht von MIME-Typen mit den entsprechenden Dateiendungen im SELFHTML-Wiki
- Apache Server: Zuordnung von Dateiendungen zu MIME-Typen, von 1999 bis heute