MIME-Types (Multipurpose Internet Mail Extensions) kennzeichnen die Art eines Dokuments. Anhand ihrer erfährt der auf den Webserver zugreifende Client, wie er mit den empfangenen Daten umgehen soll. So weiß ein Browser beispielsweise, dass ein Dokument vom Typ text/html direkt im Browser darstellbar ist, während ein Dokument vom Typ audio/wav nur über ein Plugin oder eine separate Anwendung wiedergegeben werden kann. Gäbe es die Unterteilung in MIME-Types nicht, so wüsste ein Browser nicht, was er mit den empfangenen Daten anfangen soll. Der Browser würde z.B. versuchen, alle Daten als Text darzustellen, was bei anderen Daten (beispielsweise Binärdaten) einfach nicht sinnvoll ist.
Ein MIME-Type besteht immer aus einem Haupttyp und einem Untertyp. Der Haupttyp ist nur sehr grob definiert, beispielsweise als text oder audio. Der Untertyp spezialisiert den Medientyp und definiert das text-Dokument z.B. als html und das audio-Dokument als wav.
Das Modul mod_mime ist beim Apache-Webserver dafür zuständig, dass entsprechende MIME-Types für die Dateien generiert werden. Auf Basis von Dateiendungen wird automatisch entschieden, welchen MIME-Type eine Datei hat. Dieser wird dann im HTTP-Header Content-Type (die Angabe über den Typ) an den Client geschickt. Mit einigen Konfigurationsanweisungen können Sie jedoch Einfluss auf die MIME-Types nehmen.
TypesConfig
Diese Anweisung zeigt auf die Datei, aus der der Apache-Webserver die Informationen über alle MIME-Types erhält. Der Dateiname wird relativ zum Server-Root-Verzeichnis angegeben. Standardmäßig wird die Einstellung conf/mime.types verwendet. Diese Datei ist im Lieferumfang des Apache-Webservers enthalten und sollte selbst nicht verändert werden. Sie enthält eine Auflistung von MIME-Types mit den korrespondierenden Dateiendungen. Sollen weitere Typen hinzugefügt werden, so können Sie das über die Anweisung AddType direkt in der Datei httpd.conf realisieren.
AddType
Mit dieser Anweisung können Sie selbst einer Dateiendung einen Typ zuordnen. Um beispielsweise der Dateiendung xhtml den Typ text/html zuzuordnen, ist folgende Anweisung erforderlich:
AddType text/html xhtml
DefaultType
Der Apache-Webserver muss zu jeder Antwort immer einen Content-Type-Header übermitteln. Falls es vorkommt, dass eine unbekannte Dateiendung ohne passenden MIME-Type übermittelt werden soll, greift der Apache auf einen Standardwert zurück, der über die Anweisung DefaultType festgelegt werden kann:
DefaultType text/plain
text/plain ist wohl die beste Standardeinstellung, weil jeder Browser versuchen wird, diese Datei wie eine Textdatei im Browserfenster darzustellen, wenn es sich um ein unbekanntes Dateiformat handelt. In einigen Fällen ist es aber sinnvoll, bestimmten Verzeichnissen einen anderen Default-Wert zuzuteilen, beispielsweise wenn es sich um ein Verzeichnis handelt, in dem ausschließlich Audio-Dateien liegen:
<Directory /web/htdocs/musik>
DefaultType audio/mpeg
</Directory>
Falls sich in diesem Verzeichnis Audio-Dateien mit einer falschen oder ohne Dateiendung befinden, wird für diese trotzdem der korrekte MIME-Type übertragen.
ForceType
Manchmal ist es sinnvoll, den MIME-Type bestimmter Dateien zu ändern, obwohl diese Datei aufgrund ihrer Dateiendung schon einen bestimmten Typ hat. ForceType besitzt eine höhere Priorität als die anderen Zuweisungen und kann dafür verwendet werden, gezielt Dateien andere MIME-Types zuzuordnen. Durch die Konfigurationsanweisung
<Location /images>
ForceType image/jpeg
</Location>
werden alle Dateien des Verzeichnisses image als JPEG-Dateien behandelt, gleichgültig, welche Dateiendung sie haben. Sie können aber auch verhindern, dass ein Browser PDF-Dokumente als solche erkennt und das PDF-Plugin unerwünscht startet, da der Download der PDF-Datei in diesem Fall vielleicht sinnvoller wäre. In der nachfolgenden Konfigurationsanweisung wird PDF-Dokumenten der MIME-Type application/zip zugewiesen.
<Location /downloads/*.pdf>
ForceType application/zip
</Location>
Dieser MIME-Type ist im Browser nicht direkt darstellbar und ein unmittelbarer Download der Dokumente wird erzwungen. (Natürlich gehen Sie dabei das Risiko ein, dass irgendwann ein Browser anfängt, application/zip selbst zu interpretieren, und er dann mit Ihren PDF-Dateien nichts anfangen kann.)
Quelle: WebSite-Administration & Grundlagen Apache ISBN: 3-935539-54-1 www.teia.de