MIME-/Content-Type-Referenz
ReferenzNachschlagetabelle gängiger MIME-Typen und ihrer Dateierweiterungen, mit Suche.
| Content-Type | Erweiterungen | Kategorie | Beschreibung |
|---|
Auf dieser Seite
Was ist eine MIME-Typ-Referenz?#
Ein MIME-Typ (auch Medientyp oder Content-Type genannt) ist das kurze Label, das dem Empfänger sagt, welche Art von Bytes ein Dokument enthält: text/html ist eine Webseite, application/json sind JSON-Daten, image/png ist ein PNG-Bild. Das Format ist immer Typ/Untertyp — eine grobe Kategorie, ein Schrägstrich, dann ein spezifischer Name. HTTP verlässt sich auf diese Labels, um zu entscheiden, ob eine Antwort gerendert, heruntergeladen, geparst oder abgelehnt wird; Browser verlassen sich darauf, den richtigen Handler zu wählen (ein <img> erwartet einen Bildtyp, ein <script> einen JavaScript-Typ); E-Mail verlässt sich darauf, um Dateien anzuhängen.
Das Format sieht einfach aus, aber die Landschaft ist ernsthaft verwirrend. Es gibt sieben Top-Level-Kategorien (application, audio, font, image, model, text, video), viele Dateien passen zu mehreren Erweiterungen (.jpg, .jpeg, .jpe sind alle image/jpeg), einige Typen haben eine alte und eine moderne Form (application/javascript versus text/javascript), und die falsche Wahl verursacht echte Bugs — ein als text/plain ausgeliefertes Stylesheet wird nicht angewendet, eine als application/octet-stream ausgelieferte Schrift wird nicht laden. Diese Seite ist ein durchsuchbares Nachschlagewerk, damit Sie immer das richtige Label wählen.
Verwendung#
- Suchen nach irgendwas. Das Feld Typ oder Erweiterung suchen… filtert die gesamte Tabelle. Drei Abfragemöglichkeiten:
- Tippen Sie eine Dateierweiterung mit führendem Punkt —
.jpg,.woff2,.mp4— und Sie erhalten exakt die Typen, die dieser Erweiterung zugeordnet sind. - Tippen Sie den Typ oder Untertyp selbst —
image,json,svg— um nach Name einzuschränken. - Tippen Sie ein Wort —
archive,font,spreadsheet— um die Beschreibungen zu durchsuchen.
- Tippen Sie eine Dateierweiterung mit führendem Punkt —
- Lesen Sie die Zeile. Spalten sind Content-Type (der vollständige
Typ/Untertyp), Erweiterungen (die geläufigen Dateiendungen, die darauf abgebildet werden), Kategorie (eine der sieben Top-Level-Gruppen) und Beschreibung (eine einzeilige Notiz, wofür der Typ gedacht ist). - Wählen Sie den richtigen. Für eine gegebene Erweiterung gibt es normalerweise einen kanonischen Typ; wo zwei existieren (der JavaScript-Fall ist der Klassiker), erklärt die Beschreibung, welcher aktuell ist.
Hauptfunktionen#
- Sieben Kategorien, eine Tabelle. Application-, Audio-, Font-, Image-, Model-, Text- und Video-Typen leben alle zusammen, sodass Sie von einer Font-Frage zu einer Video-Frage springen können, ohne die Seite zu wechseln.
- Erweiterungs-erste Suche. Die häufigste Aufgabe in der Praxis ist „Ich habe eine
.xlsx-Datei, was setze ich als Content-Type?“ —.xlsxeinzutippen landet direkt beiapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet. - Sowohl die modernen als auch die alten Namen. Wo ein Typ noch eine alte Form hat, die in der Wildbahn vorkommt, werden beide mit einem Hinweis gelistet, sodass Sie entweder Richtung eines HTTP-Headers erkennen.
- Hersteller-Typen inklusive. Microsoft Office, ZIP, gzip, 7z, RAR, WebAssembly, Web App Manifest, GraphQL — die langen
application/vnd.*- undapplication/*+json/application/*+xml-Formen sind alle dabei. - Lokal und sofort. Der Datensatz ist in die Seite eingebettet; jede Suche ist ein clientseitiger Filter ohne Anfrage.
Ausführliches Beispiel#
JavaScript ist der verwirrendste Eintrag, weil der Typ im Laufe der Jahre den Namen gewechselt hat und Server noch beide senden. Suchen Sie javascript und Sie erhalten zwei Zeilen:
text/javascript—js,mjs— „der standardmäßige, moderne MIME-Typ.“application/javascript—js— „veralteter JavaScript-MIME-Typ (noch immer weit verbreitet).“
Die Kurzfassung: text/javascript ist das, was die aktuellen HTML- und Fetch-Standards verwenden möchten und was moderne Server ausgeben; application/javascript ist der ältere RFC-4329-Name, den Sie noch in älteren Content-Type-Headern und älterer Dokumentation sehen werden. Sie bedeuten dasselbe und Browser behandeln sie identisch — aber für eine neue Server-Konfiguration bevorzugen Sie text/javascript.
Ein paar weitere Nachschlagewerte, die sich zu merken lohnen, alle eine Suche entfernt:
.json→application/json.svg→image/svg+xml(es ist ein Bild, aber das+xml-Suffix kennzeichnet es als XML-basiert).woff2→font/woff2(beachten Sie die dediziertefont/-Top-Level-Kategorie, nichtapplication/).wasm→application/wasm(WebAssembly-Binär — muss exakt so ausgeliefert werden, ohne Charset, sonst kompiliert es nicht).pdf→application/pdf
Wenn ein Typ unbekannt ist, fallen Server auf application/octet-stream zurück — der generische „das ist irgendwelche Binärdaten, nimm nichts an“-Typ. Browser reagieren meist mit einem Download der Datei, statt sie anzuzeigen.
FAQ#
text/javascript oder application/javascript — welches verwende ich?#
Für neuen Code senden Sie text/javascript. Es ist das, was die aktuellen WHATWG-HTML- und Fetch-Spezifikationen verlangen, und was Browser tatsächlich prüfen, wenn sie entscheiden, ob ein <script> ausgeführt wird. application/javascript funktioniert noch überall (es ist der ältere Standard), aber es ist das Legacy-Format. Wenn Sie einen neuen Server, eine Mime-Datenbank oder ein Build-Tool konfigurieren, defaulten Sie auf text/javascript.
Warum hat SVG +xml in seinem Typ?#
Das +xml-Suffix ist ein Struktur-Syntax-Suffix: Es sagt Ihnen, dass die Serialisierung des Typs darunter XML ist. Also bedeutet image/svg+xml „ein Bild, spezifisch eines in XML beschriebenes“. Dieselbe Konvention erscheint bei application/ld+json (verknüpfte Daten, als JSON serialisiert) und application/graphql+json. Tools, die das Suffix verstehen, können auf einen generischen XML- oder JSON-Parser zurückfallen.
Wofür ist application/octet-stream?#
Es ist der Sammelbegriff für „beliebige Binärdaten, unbekannter Typ“. Server geben es zurück, wenn sie eine Datei nicht identifizieren können, und das sichere Client-Verhalten ist, sie herunterzuladen statt zu versuchen, sie zu rendern oder auszuführen. Wenn Sie jemals sehen, dass eine Datei, die Sie im Browser öffnen wollten, stattdessen heruntergeladen wird, ist ein falscher oder fehlender Content-Type (der auf octet-stream zurückfällt) der übliche Verdächtige.
Wie setze ich eigentlich einen Content-Type für meine Dateien?#
Das hängt davon ab, woher die Datei ausgeliefert wird — ein statischer Datei-Server liest ihn aus der Erweiterung über eine Mime-Datenbank, ein Web-Framework setzt ihn im Code (oft response.setContentType(...) oder eine Header-Zuweisung), und ein CDN legt ihn im Upload oder in den Objekt-Metadaten frei. Der exakte Aufruf unterscheidet sich pro Stack; das Einzige, was stimmen muss, ist die finale Zeichenkette on the wire, und genau die liefert dieses Nachschlagewerk.