MIME-Typ
Ein MIME-Typ ist eine standardisierte Bezeichnung, die das Format einer übertragenen Datei angibt, etwa "text/html" oder "image/png", damit der Empfänger sie korrekt interpretieren kann.
Kurz erklärt
Damit ein Browser weiß, wie er eine empfangene Datei behandeln soll - als Text darstellen, als Bild rendern oder zum Download anbieten -, muss er deren Format kennen. Der MIME-Typ liefert genau diese Information, üblicherweise im HTTP-Header Content-Type. Der Aufbau folgt immer dem Muster Haupttyp/Untertyp, etwa text/html, image/jpeg oder application/json.
Beispiel
Sendet ein Server eine HTML-Seite, setzt er den Header Content-Type: text/html. Für eine JSON-Antwort einer API wäre es stattdessen Content-Type: application/json - der Browser oder Client weiß dadurch sofort, wie er die folgenden Daten interpretieren muss, unabhängig vom tatsächlichen Dateinamen.
Warum ist das relevant?
Ein falscher oder fehlender MIME-Typ kann dazu führen, dass Inhalte falsch dargestellt, als Text statt als Bild angezeigt oder in bestimmten Fällen sogar zu einem Sicherheitsrisiko werden - etwa wenn ein Browser eine hochgeladene Datei aufgrund eines irreführenden MIME-Typs fälschlich als ausführbares Skript interpretiert. Server sollten den MIME-Typ deshalb stets korrekt und explizit setzen, statt sich allein auf die Dateiendung zu verlassen.
Häufige Missverständnisse
Der MIME-Typ wird nicht automatisch korrekt aus der Dateiendung abgeleitet - auch wenn viele Server das standardmäßig anhand der Endung tun, kann eine Datei mit falscher oder fehlender Endung dennoch über einen expliziten Header korrekt oder eben inkorrekt ausgezeichnet werden. Browser dürfen laut Standard zudem einen unklar deklarierten MIME-Typ unter bestimmten Umständen “erraten” (MIME-Sniffing), was Sicherheitsrisiken bergen kann - moderne Websites unterbinden dieses Verhalten häufig gezielt über den Header X-Content-Type-Options: nosniff.