Gängige MIME-Typen

Server und Upload-Formulare verlassen sich auf diese Zeichenketten; ein falscher Typ kann Vorschau, Downloads oder die CSP stören.

Aktualisiert:

ArtMIME-TypTypische Endung
HTMLtext/html.html
CSStext/css.css
JavaScripttext/javascript.js
JSONapplication/json.json
XMLapplication/xml.xml
Klartexttext/plain.txt
CSVtext/csv.csv
PDFapplication/pdf.pdf
ZIPapplication/zip.zip
PNGimage/png.png
JPEGimage/jpeg.jpg
GIFimage/gif.gif
WebPimage/webp.webp
SVGimage/svg+xml.svg
ICOimage/x-icon.ico
MP3audio/mpeg.mp3
WAVaudio/wav.wav
MP4video/mp4.mp4
WebMvideo/webm.webm
WOFF2font/woff2.woff2
URL-kodiertes Formularapplication/x-www-form-urlencoded—
Multipart-Formularmultipart/form-data—

Hinweise

Was der MIME-Typ tatsächlich steuert

Ein MIME-Typ ist das Label, das ein Server einer Antwort anhängt, um dem Browser mitzuteilen, was die Bytes bedeuten. text/html rendert eine Seite, application/pdf öffnet einen PDF-Reader, image/svg+xml kann inline gezeichnet werden und application/octet-stream löst einen Download-Dialog aus. Zwei Dateien, die identisch aussehen, können basierend auf diesem einen Header völlig unterschiedlich behandelt werden. Browser, Upload-Formulare, E-Mail-Clients und Content-Security-Richtlinien lesen ihn, daher ist eine falsche Einstellung eine häufige Ursache für kaputte Vorschauen, erzwungene Downloads und blockierte Skripte.

Wo text/ und application/ heute gelten

Ältere Ratschläge sagten, JavaScript sei application/javascript; der aktuelle Standard ist text/javascript und application/javascript ist veraltet. CSS ist text/css, HTML ist text/html, reiner Text ist text/plain und CSV ist text/csv – alles text/*, weil sie für die menschliche Lesbarkeit konzipiert wurden. Strukturierte Formate sind application/*: application/json, application/xml, application/pdf, application/zip. Die bemerkenswerte Ausnahme ist SVG, das zwar XML ist, aber als image/svg+xml ausgeliefert werden muss, damit Browser es rendern statt es herunterzuladen.

Falsche Typen brechen Uploads und Sicherheit

Ein falsch etikettierter Upload ist eine klassische Fehlerquelle: Eine JSON-Datei, die als text/plain ausgeliefert wird, kann von einem API-Client abgelehnt werden, ein Bild, das als octet-stream zurückgegeben wird, lädt herunter statt angezeigt zu werden, und ein Skript, das als text/html ausgeliefert wird, wird vom Browser blockiert. Strenge Content-Security-Policy-Regeln basieren auf dem MIME-Typ, daher kann eine Stylesheet-Datei mit dem falschen Typ vollständig abgelehnt werden. Wenn eine Vorschau oder ein Download sich seltsam verhält, ist die Prüfung des Content-Type im Response meist die schnellste Diagnose.

Charset und Content-Sniffing

Bei Texttypen sollte der MIME-Typ mit einem Charset kombiniert werden – text/html; charset=utf-8 und application/json; charset=utf-8 sind die sicheren Defaults für mehrsprachige Inhalte. Ältere Browser nutzten Content-Sniffing, um aus den Bytes der Datei einen Typ zu erraten, was Angreifer ausnutzten; das Senden von X-Content-Type-Options: nosniff weist Browser an, dem deklarierten Typ zu vertrauen. Sende stets einen expliziten, korrekten Content-Type statt dich auf die Dateierweiterung zu verlassen, die der Browser nie sieht.

Setzen von Typen auf dem Server und in Formularen

Woher der Typ stammt, ist relevant. Statische Hosts mappen Erweiterungen automatisch, aber Web-Frameworks benötigen oft eine explizite Einstellung – in Express mit res.type('json'), in Nginx über den types-Block und auf Cloudflare Pages über Header oder die Dateierweiterung. HTML-Formulare nutzen enctype, um die Upload-Codierung zu steuern: multipart/form-data für Dateien und application/x-www-form-urlencoded für einfache Felder, während eine API, die JSON erwartet, application/json sendet. Das Senden des falschen Typs ist eine stille Ursache für 415 Unsupported Media Type und 400-Fehlerantworten, die erst nach Inspektion des Request-Headers klar werden.

Weitere relevante Familien

Jenseits der alltäglichen Web-Formate gibt es einige families, die man kennen sollte. Schriftarten nutzen font/woff2 und font/ttf. Bilder werden nach Format aufgeteilt – image/jpeg, image/png, image/webp, image/avif, image/gif –, während Audio und Video audio/mpeg, audio/ogg, video/mp4 und video/webm verwenden. Archive und binäre Daten sind application/zip, application/gzip und application/octet-stream. Wenn eine API eine Datei zurückgibt, die sie nicht identifizieren kann, ist octet-stream die ehrliche Antwort: Sie zwingt den Client zum Download statt zum Raten, was genau das Verhalten ist, das man bei unbekannten Inhalten wünscht.

Häufige Fragen

Welchen MIME-Typ sollte ich für eine .json-Datei verwenden?
Verwenden Sie application/json für JSON-Dateien und API-Antworten. Das ist der Standardtyp, idealerweise mit UTF-8 ausgeliefert.
Welchen MIME-Typ haben .js-Dateien?
Der offizielle Typ für JavaScript ist text/javascript. Das ältere application/javascript ist veraltet und sollte nicht mehr genutzt werden.
Welchen MIME-Typ hat ein SVG-Bild?
SVG-Dateien verwenden image/svg+xml. Nur mit diesem Typ rendern Browser SVG inline.

Quellen