MIME-Type: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite Mime nach MIME Type, ohne dabei eine Weiterleitung anzulegen
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
= TMP =
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 beispielsweise 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.
== Medientypen ==
Der Internet Media Type besteht aus zwei Teilen: der Angabe eines Medientyps und der 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]].
== 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:
<code>Typ "/" [Baum "."] Subtyp ["+" Suffix] *[";" Parameter]</code>
'''Häufige Beispiele'''
* <code>application/graphql</code>
* <code>application/javascript</code>
* <code>application/json</code>
* <code>application/ld+json</code>
* <code>application/feed+json</code>
* <code>application/msword</code> (.doc)
* <code>application/pdf</code>
* <code>application/sql</code>
* <code>application/vnd.api+json</code>
* <code>application/vnd.ms-excel</code> (.xls)
* <code>application/vnd.ms-powerpoint</code> (.ppt)
* <code>application/vnd.oasis.opendocument.text</code> (.odt)
* <code>application/vnd.openxmlformats-officedocument.presentationml.presentation</code> (.pptx)
* <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code> (.xlsx)
* <code>application/vnd.openxmlformats-officedocument.wordprocessingml.document</code> (.docx)
* <code>application/x-www-form-urlencoded</code>
* <code>application/xml</code>
* <code>application/zip</code>
* <code>application/zstd</code> (.zst)
* <code>audio/mpeg</code>
* <code>audio/ogg</code>
* <code>image/apng</code>
* <code>image/gif</code>
* <code>image/jpeg</code>
* <code>image/png</code>
* <code>image/svg+xml</code> (.svg)
* <code>multipart/form-data</code>
* <code>text/css</code>
* <code>text/csv</code>
* <code>text/html</code>
* <code>text/php</code>
* <code>text/plain</code>
* <code>text/xml</code>
== 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 File Interchange Format|JPEG]] oder [[Portable Network Graphics|PNG]] sind leicht an ihrem Header zu unterscheiden ([[Magische Zahl (Informatik)|Magische Zahl]]). Schlägt die Analyse fehl, wird die [[Dateinamenserweiterung|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 [[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.
== Siehe auch ==
* [[Dateiformat]]
* [[Liste von Dateinamenserweiterungen]]
== Weblinks ==
* [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=N. Freed, N. Borenstein |RFC=2045 |Titel=Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies |Datum=1996-11 |Abschnitt=5 |Abschnittstitel=Content-Type Header Field |Standard= |Updated=2184 |Obsoletes=1590 |Errata=1}}
* {{RFC-Internet |Autor=R. Fielding, U. C. Irvine, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee |RFC=2616 |Titel=Hypertext Transfer Protocol – HTTP/1.1 |Datum=1999-06 |Standard= |Abschnitt=14.17 |Abschnittstitel=Content-Type |Updated=2817 |Obsoletes=2068 |Errata=1}}
* {{RFC-Internet |Autor=N. Freed, N. Borenstein |RFC=2046 |Titel=Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types |Datum=1996-11 |Updated=2646 |Obsoletes=1521 |Errata=1}}
* {{RFC-Internet |Autor=S. Nelson, C. Parks |RFC=2077 |Titel=The Model Primary Content Type for Multipurpose Internet Mail Extensions |Datum=1997-01}}
* {{RFC-Internet |Autor=T. Taylor |RFC=4735 |Titel=Example Media Types for Use in Documentation |Datum=2006-10 |Standard=Proposed}}
* [http://www.iana.org/assignments/media-types/ Liste der IANA]
* [https://wiki.selfhtml.org/wiki/MIME-Type/%C3%9Cbersicht Übersicht von MIME-Typen mit den entsprechenden Dateiendungen] im [[SELFHTML]]-Wiki
* [http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types Apache Server: Zuordnung von Dateiendungen zu MIME-Typen, von 1999 bis heute]
[[Kategorie:Netzwerkprotokoll]]
[[Kategorie:Datenformat]]
[[Kategorie:E-Mail:Protokoll]]
[[Kategorie:E-Mail:Protokoll]]

Version vom 3. Juli 2022, 13:06 Uhr

TMP

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

Medientypen

Der Internet Media Type besteht aus zwei Teilen: der Angabe eines Medientyps und der 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.

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.

Siehe auch

Weblinks