MIME-Type: Unterschied zwischen den Versionen
K Textersetzung - „Kategorie:(.*):(.*)“ durch „Kategorie:/$1/$2“ |
K Textersetzung - „[[Kategorie:/“ durch „[[Kategorie:“ |
||
Zeile 385: | Zeile 385: | ||
[[Kategorie:Netzwerk/Protokoll]] | [[Kategorie:Netzwerk/Protokoll]] | ||
[[Kategorie:Datenformat]] | [[Kategorie:Datenformat]] | ||
[[Kategorie: | [[Kategorie:E-Mail/Protokolle]] |
Version vom 28. März 2023, 10:40 Uhr
MIME-Types klassifizieren Daten im Rumpf einer Nachricht im Internet.
Beschreibung
- 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.
Multipurpose Internet Mail Extensions
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.
Syntax
Parameter
Optionen
Umgebungsvariablen
Exit-Status
Konfiguration
Dateien
Anwendung
Sicherheit
Dokumentation
RFC
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
Man-Pages
Info-Pages
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
Projekt
Weblinks
Einzelnachweise
Testfragen
Testfrage 1
Testfrage 2
Testfrage 3
Testfrage 4
Testfrage 5