Zum Inhalt springen

MIME-Typen

Ein MIME-Typ — der Wert des Content-Type-Headers — ist, wie ein Server sagt, was eine Datei ist. Nichts vom Dateinamen erreicht den Browser, darum ist die Erweiterung ein Hinweis für Sie und der Typ ist die Tatsache für den Client. Bei einem Fehler wird eine Stil-Datei ignoriert, eine Schrift kann nicht geladen werden oder eine PDF wird heruntergeladen, statt sich zu öffnen.

Diese Seite listet die Erweiterung und den Typ auf, den das Nachschlag-Werkzeug dieser Website dafür zurückgibt, darum können die beiden niemals auseinandergehen. Wo mehrere Erweiterungen einen Typ teilen — jpg, jpeg und jpe oder yaml und yml — wird jede in einer eigenen Zeile aufgelistet, weil Sie diejenige nachschlagen, die Sie haben.

Zwei Regeln erklären die meisten Überraschungen unten. Ein Typ, der mit application/vnd. beginnt, ist eine Anmeldung des Anbieters, kein offener Standard, darum sind die Office-Typen so lang. Und ein Typ, den der Server nicht kennt, wird am besten als application/octet-stream versendet, was dem Browser sagt, dass er herunterladen soll, statt zu raten.

Web und Text

21

text/* ist die Familie, die ein Browser anzeigt, statt herunterzuladen, und die einzige, wo ein Zeichensatz-Parameter wichtig ist — text/html; charset=utf-8.

ErweiterungMIME-TypWorum es geht
.htmltext/htmlHTML-Dokument
.htmtext/htmlHTML-Dokument, kurze Erweiterung
.shtmltext/htmlHTML mit Server-seitige Includes
.xhtmlapplication/xhtml+xmlXHTML-Dokument
.csstext/cssStylesheet
.csvtext/csvKomma-getrennte Werte
.txttext/plainKlartext
.mdtext/markdownMarkdown-Quelle
.icstext/calendarKalenderereignis
.xmlapplication/xmlXML-Dokument
.jstext/javascriptJavaScript
.mjstext/javascriptJavaScript ES-Modul
.jsonapplication/jsonJSON-Daten
.jsonldapplication/ld+jsonJSON-LD strukturierte Daten
.webmanifestapplication/manifest+jsonWeb-App-Manifest
.yamlapplication/yamlYAML-Dokument
.ymlapplication/yamlYAML, kurze Erweiterung
.tomlapplication/tomlTOML-Konfiguration
.sqlapplication/sqlSQL-Skript
.shapplication/x-shShell-Skript
.wasmapplication/wasmWebAssembly-Modul

Dokumente

12

Office-Typen sind lang, weil sie den Anbieter, Standard und Teil kodieren — vnd. bedeutet eine Anmeldung des Anbieters, nicht ein offenes Format.

ErweiterungMIME-TypWorum es geht
.pdfapplication/pdfPDF-Dokument
.rtfapplication/rtfFormatierten Text
.docapplication/mswordWord-Dokument, altes Binary
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentWord-Dokument
.xlsapplication/vnd.ms-excelExcel-Arbeitsmappe, altes Binary
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetExcel-Arbeitsmappe
.pptapplication/vnd.ms-powerpointPowerPoint-Präsentation, altes Binary
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentationPowerPoint-Präsentation
.odtapplication/vnd.oasis.opendocument.textOpenDocument Text
.odsapplication/vnd.oasis.opendocument.spreadsheetOpenDocument Tabelle
.odpapplication/vnd.oasis.opendocument.presentationOpenDocument Präsentation
.epubapplication/epub+zipEPUB E-Book

Bilder

14

Jeder Bildtyp ist von seinen ersten Bytes schnüffelbar, darum wird ein Browser ihn üblicherweise richtig rendern, selbst wenn der Server ihn falsch beschriftet hat. SVG ist die Ausnahme, die Sie niemals falsch beschriften sollten — es ist ein Dokument, das ein Skript tragen kann.

ErweiterungMIME-TypWorum es geht
.pngimage/pngPNG-Bild
.jpgimage/jpegJPEG-Bild
.jpegimage/jpegJPEG-Bild, lange Erweiterung
.jpeimage/jpegJPEG-Bild, seltene Erweiterung
.gifimage/gifGIF-Bild
.webpimage/webpWebP-Bild
.avifimage/avifAVIF-Bild
.svgimage/svg+xmlSVG-Vektorbild
.bmpimage/bmpBitmap-Bild
.icoimage/vnd.microsoft.iconSymbol-Datei
.tifimage/tiffTIFF-Bild
.tiffimage/tiffTIFF-Bild, lange Erweiterung
.heicimage/heicHEIC-Bild
.heifimage/heifHEIF-Bild

Audio

11

Container und Codec sind zwei verschiedene Fragen. audio/ogg sagt, wie die Datei verpackt ist; was darin sein kann, ist Vorbis, Opus oder FLAC.

ErweiterungMIME-TypWorum es geht
.mp3audio/mpegMP3-Audio
.wavaudio/wavWAV-Audio
.oggaudio/oggOgg-Audio
.ogaaudio/oggOgg-Audio, explizite Erweiterung
.opusaudio/opusOpus-Audio
.m4aaudio/mp4AAC-Audio in MP4-Container
.flacaudio/flacFLAC verlustfreies Audio
.webaaudio/webmWebM-Audio
.aacaudio/aacRohes AAC-Audio
.midaudio/midiMIDI-Sequenz
.midiaudio/midiMIDI, lange Erweiterung

Video

9

Das Streamen eines Videos braucht mehr als nur den richtigen Typ — der Server muss auch auf Bereichsanfragen antworten, oder der Browser lädt die ganze Datei herunter, bevor sie abgespielt wird.

ErweiterungMIME-TypWorum es geht
.mp4video/mp4MP4-Video
.m4vvideo/mp4MP4-Video, Apples Erweiterung
.webmvideo/webmWebM-Video
.ogvvideo/oggOgg-Video
.movvideo/quicktimeQuickTime-Video
.avivideo/x-msvideoAVI-Video
.mkvvideo/x-matroskaMatroska-Video
.wmvvideo/x-ms-wmvWindows Media Video
.3gpvideo/3gpp3GPP Mobiles Video

Schriften

5

Die font/*-Familie wurde spät angemeldet; ältere Werkzeuge senden immer noch application/font-woff und application/x-font-ttf, die Browser akzeptieren, aber nicht für neue Sachen geschrieben werden sollten.

ErweiterungMIME-TypWorum es geht
.wofffont/woffWOFF-Web-Schrift
.woff2font/woff2WOFF2-Web-Schrift
.ttffont/ttfTrueType-Schrift
.otffont/otfOpenType-Schrift
.eotapplication/vnd.ms-fontobjectEmbedded OpenType, nur Internet Explorer

Archive und Binärdateien

12

application/octet-stream ist die ehrliche Antwort, wenn nichts Besseres bekannt ist, und es ist auch das, was einen Download erzwingt, statt zu raten.

ErweiterungMIME-TypWorum es geht
.zipapplication/zipZIP-Archiv
.gzapplication/gzipGzip-Archiv
.tarapplication/x-tarTar-Archiv
.7zapplication/x-7z-compressed7-Zip-Archiv
.rarapplication/vnd.rarRAR-Archiv
.bz2application/x-bzip2Bzip2-Archiv
.isoapplication/x-iso9660-imageDisk-Abbild
.binapplication/octet-streamUnbekannte Binärdaten
.exeapplication/x-msdownloadWindows-Anwendung
.apkapplication/vnd.android.package-archiveAndroid-Paket
.debapplication/vnd.debian.binary-packageDebian-Paket
.swfapplication/x-shockwave-flashFlash-Film, längst veraltet

Häufige Fragen

Was passiert, wenn der MIME-Typ falsch ist?
Es hängt vom Typ ab. Browser lehnen einen Stylesheet ab, der nicht als text/css kommt und ein Modul-Skript, das nicht als ein JavaScript-Typ kommt, beide mit Absicht. Bilder werden von ihren ersten Bytes her schnüffelt und überleben üblicherweise ein falsches Label. Und alles, das als text/plain versendet wird, wird gezeigt, statt heruntergeladen.
Ist text/javascript oder application/javascript richtig?
text/javascript. Es war die historische Form, application/javascript ersetzte es und der aktuelle Standard ist zu text/javascript zurückgegangen und markiert das andere als veraltet. Jeder Browser akzeptiert beide, darum ist dies nur relevant für das, was Sie in neue Konfiguration schreiben.
Warum ist der Word .docx Typ so lang?
Weil er den ganzen Pfad zum Format kodiert: eine Anmeldung des Anbieters (vnd.), die OOXML-Familie und welches ihrer Dokumente es ist. Die Länge ist der Preis für einen Registrierungseintrag, der nicht mit jemandem anderem kollidieren kann.
Brauche ich bei jedem Typ einen Zeichensatz?
Nur bei Texttypen und in der Praxis nur, wo die Vorgabe falsch wäre. text/html; charset=utf-8 lohnt sich zu explizieren; image/png; charset=utf-8 ist bedeutungslos. JSON ist bereits als UTF-8 definiert, darum nimmt application/json keinen Zeichensatz.
Wie schaue ich einen schnell nach?
Das MIME-Typ-Nachschlag-Werkzeug auf dieser Website konvertiert eine Erweiterungsliste zu Typen oder Typen zurück zu Erweiterungen und kann das Ergebnis als nginx- oder Apache-Konfigurations-Block ausgeben.