MIME-Type: Unterschied zwischen den Versionen

Aus Foxwiki
K (Textersetzung - „Kategorie:Netzwerk“ durch „Kategorie:Netzwerke“)
Markierung: Zurückgesetzt
Keine Bearbeitungszusammenfassung
 
(24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''MIME-Types''' klassifizieren Daten im Rumpf einer Nachricht im [[Internet]].
'''MIME-Types''' - Klassifizieren von Daten im Rumpf einer Nachricht


== Beschreibung ==
== 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]].
* 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 [[Hypertext Transfer Protocol|HTTP]]-Übertragung einem [[Webbrowser|Browser]] mitgeteilt, welche Daten der [[Webserver]] sendet – ob es etwa ein [[Plain text|Plain-Text]]-Dokument, ein [[Hypertext Markup Language|HTML]]-Dokument oder ein [[Portable Network Graphics|PNG]]-Bild ist.  
* Wie im MIME-Standard erläutert, wird z. B. bei einer [[Hypertext Transfer Protocol|HTTP]]-Übertragung einem [[Webbrowser|Browser]] mitgeteilt, welche Daten der [[Webserver]] sendet – ob es etwa ein [[Plain text|Plain-Text]]-Dokument, ein [[Hypertext Markup Language|HTML]]-Dokument oder ein [[Portable Network Graphics|PNG]]-Bild ist.  
* Auch in [[E-Mail]]s wird das „Content-Type“-Header-Feld dazu verwendet, die verschiedenen Daten zu klassifizieren.
* Auch in [[E-Mail]]s 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
 
==== 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.  
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.  
* Ursprünglich wurde dieses Schema für Datei-Anhänge (Attachments) in E-Mails eingeführt.  
Zeile 32: Zeile 31:


Beide Angaben werden durch einen Schrägstrich voneinander getrennt, Beispiel ''image/jpeg''.
Beide Angaben werden durch einen Schrägstrich voneinander getrennt, Beispiel ''image/jpeg''.
* ''application'' – für uninterpretierte binäre Daten, Mischformate (z. B.
* ''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
* Textdokumente mit eingebetteten nichttextuellen Daten) oder Informationen, die von einem bestimmten Programm verarbeitet werden sollen
* ''audio'' – für Audiodaten
* ''audio'' – für Audiodaten
Zeile 42: Zeile 41:
* ''text'' – für Text
* ''text'' – für Text
* ''video'' – für Videomaterial
* ''video'' – für Videomaterial
* ''chemical'' – für z. B.: Moleküle (inoffiziell)
* ''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.  
Es sind zurzeit über 130 Subtypen definiert, zusätzlich integriert jede Rechnergeneration eine Vielzahl von eigenen Medientypen.  
Zeile 184: Zeile 183:
|multipart/form-data
|multipart/form-data
|
|
|mehrteilige Daten aus HTML-Formular (z.B. File-Upload)
|mehrteilige Daten aus HTML-Formular (z. B. File-Upload)
|-
|-
|multipart/mixed
|multipart/mixed
Zeile 265: Zeile 264:
  Date: Sun, 19 Jul 2009 17:30:00 GMT
  Date: Sun, 19 Jul 2009 17:30:00 GMT
  '''Content-Type: image/gif'''
  '''Content-Type: image/gif'''
== Namensgebung ==
== Namensgebung ==
Ein Medientype besteht aus einem ''Typ'' und einem ''Subtyp'', die als ''Baum'' strukturiert sind.  
Ein Medientype besteht aus einem ''Typ'' und einem ''Subtyp'', die als ''Baum'' strukturiert sind.  
Zeile 316: Zeile 316:
So fordert das [[Hypertext Transfer Protocol|HTTP1.1]]-Dokument, dass immer der angegebene Content-Typ zu verwenden ist.  
So fordert das [[Hypertext Transfer Protocol|HTTP1.1]]-Dokument, dass immer der angegebene Content-Typ zu verwenden ist.  
* Nur wenn er fehlt, darf MIME-Sniffing den Typ erraten.
* Nur wenn er fehlt, darf MIME-Sniffing den Typ erraten.
<noinclude>


== Syntax ==
== Anhang ==
=== Parameter ===
=== Siehe auch ===
=== Optionen ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
=== Umgebungsvariablen ===
----
=== Exit-Status ===
* [[HTTP]] - Hypertext Transfer Protocol
* [[E-Mail]]
* [[WWW]] - World Wide Web
* [[SMTP]] - Simple Mail Transfer Protocol
* [[POP3]] - Post Office Protocol
* [[IMAP4]] - Internet Message Access Protocol
* [[Dateiformat]]
* [[Liste von Dateinamenserweiterungen]]


== Konfiguration ==
==== Links ====
=== Dateien ===
===== Weblinks =====
 
== Anwendung ==
== Sicherheit ==
== Dokumentation ==
=== RFC ===
== Weblinks ==
* [http://www.w3.org/2001/tag/2002/0129-mime w3.org]
* [http://www.w3.org/2001/tag/2002/0129-mime w3.org]
* {{RFC-Internet |Autor=M. Sirbu |RFC=1049 |Titel=A Content-Type header field for internet messages |Datum=1988-03 |Kommentar=Erste Spezifikation}}
* {{RFC-Internet |Autor=M. Sirbu |RFC=1049 |Titel=A Content-Type header field for internet messages |Datum=1988-03 |Kommentar=Erste Spezifikation}}
Zeile 342: Zeile 344:
* [http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types Apache Server: Zuordnung von Dateiendungen zu MIME-Typen, von 1999 bis heute]
* [http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types Apache Server: Zuordnung von Dateiendungen zu MIME-Typen, von 1999 bis heute]


=== Man-Pages ===
[[Kategorie:Netzwerk/Protokoll]]
=== Info-Pages ===
[[Kategorie:Daten]]
=== Siehe auch ===
[[Kategorie:E-Mail/Protokolle]]
* [[HTTP]] - Hypertext Transfer Protocol
* [[E-Mail]]
* [[WWW]] - World Wide Web
* [[SMTP]] - Simple Mail Transfer Protocol
* [[POP3]] - Post Office Protocol
* [[IMAP4]] - Internet Message Access Protocol
* [[Dateiformat]]
* [[Liste von Dateinamenserweiterungen]]
 
== Links ==
=== Projekt-Homepage ===
=== Weblinks ===
=== Einzelnachweise ===
<references />
 
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


[[Kategorie:Entwurf]]
</noinclude>
[[Kategorie:Netzwerkeprotokoll]]
[[Kategorie:Datenformat]]
[[Kategorie:E-Mail:Protokolle]]

Aktuelle Version vom 8. Dezember 2023, 01:03 Uhr

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

  1. Angabe eines Medientyps
  2. 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.

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 *.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


Links

Weblinks