Zum Inhalt springen

MIME-Typen

Die Multipurpose Internet Mail Extensions, bekannt als MIME-Typ, ist eine Spezifikation, die das E-Mail-Format erweitert und von Browsern und Servern verwendet wird, um die Art des übertragenen Inhalts zu identifizieren. Die Spezifikation ist im IETF RFC 6838 standardisiert. Ein MIME-Typ ist eine Kennungszeichenkette, keine Dateierweiterung. Browser verwenden in der Regel den MIME-Typ (und nicht die Dateierweiterung), um zu bestimmen, wie ein Dokument verarbeitet werden soll; daher ist es wichtig, Server korrekt zu konfigurieren, um dem Antwort-Header den richtigen MIME-Typ zuzuordnen. Wenn dies nicht korrekt konfiguriert ist, können Browser den Inhalt der Dateien falsch interpretieren, und Websites funktionieren nicht ordnungsgemäß. Auch heruntergeladene Dateien können falsch behandelt werden.

Syntax

MIME-Typen

text
Type/Subtype

Die Struktur eines MIME-Typs besteht aus einem Typ und einem Subtyp, die durch einen Schrägstrich (/) getrennt sind, ohne Leerzeichen. MIME-Typen sind nicht case-sensitiv (Groß-/Kleinschreibung spielt keine Rolle), werden aber üblicherweise in Kleinbuchstaben geschrieben.

Ein MIME-Typ muss immer sowohl einen Typ als auch einen Subtyp enthalten. Jeder Typ verfügt über eine eigene Menge möglicher Subtypen.

Um zusätzliche Details bereitzustellen, können Sie einen optionalen Parameter verwenden.

MIME-Typen

text
type/subtype;parameter=value

MIME-Typen werden in zwei Kategorien unterteilt: diskret und multipart. Jeder Kategorie sind spezifische Subtypen zugeordnet.

Diskrete Typen

MIME-Typen

text
text/plain
text/html
image/jpeg
image/png
audio/mpeg
audio/ogg
audio/*
video/mp4
application/*
application/json
application/javascript
application/ecmascript
application/octet-stream

Diskrete Typen geben die Kategorie des Dokuments an. Sie können zu einer der folgenden gehören:

TypBeschreibungBeispiel für typische Subtypen
applicationEnthält Binärdatenapplication/javascript, application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf
audioAudiodateiaudio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav
fontSchriftart-/Typografiedatenfont/woff, font/ttf, font/otf
modelModelldaten für 3D-Objektemodel/3mf, model/vrml
textTextdokumenttext/plain, text/html, text/css, text/javascript
videoVideodateivideo/webm, video/ogg

Zur Beschreibung eines Textdokuments, das keinem bestimmten Subtyp angehört, wird text/plain verwendet. Dokumente, die Binärdaten ohne einen spezifischen Subtyp enthalten, werden mit application/octet-stream beschrieben.

Multipart-Typen

MIME-Typen

text
multipart/form-data
multipart/byteranges

Multipart-Typen kennzeichnen Dokumente, die aus mehreren Teilen bestehen, von denen jeder einen anderen MIME-Typ haben kann.

TypBeschreibungBeispiel für typische Subtypen
messageNachricht, die andere Nachrichten umfasstmessage/rfc822, message/partial
multipartDaten, die aus mehreren Komponenten bestehenmultipart/form-data, multipart/byteranges

Häufig verwendete MIME-Typen

Die folgende Tabelle listet weit verbreitete, moderne MIME-Typen auf. Viele veraltete Typen, die mit x- beginnen (z. B. image/x-icon), sind veraltet und sollten in neuen Projekten vermieden werden. Eine vollständige, autoritative Liste finden Sie im IANA Media Types registry.

DateierweiterungMedientyp
.html, .htmtext/html
.csstext/css
.jsapplication/javascript
.jsonapplication/json
.pngimage/png
.jpg, .jpegimage/jpeg
.gifimage/gif
.svgimage/svg+xml
.mp3audio/mpeg
.mp4video/mp4
.pdfapplication/pdf
.zipapplication/zip

Festlegen von Content-Type-Headern

Server müssen den korrekten Content-Type-Header senden, damit Browser wissen, wie sie mit der Antwort umgehen sollen. Nachfolgend finden Sie schnelle Beispiele für gängige Umgebungen:

Nginx

nginx
location /api/data {
    default_type application/json;
    add_header Content-Type application/json;
}

Apache (.htaccess)

apache
AddType application/json .json
AddType text/css .css

Node.js (Express)

javascript
app.get('/api/status', (req, res) => {
    res.setHeader('Content-Type', 'application/json');
    res.send(JSON.stringify({ status: 'ok' }));
});

Praxis

Was sind MIME-Typen und welche Funktion haben sie?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.