
Wenn die Computer der Benutzer anhand der Dateierweiterungen (.pdf, .mp3, .docx, .dotx usw.) entscheiden können, was mit diesen Dateien geschehen soll, warum müssen dann Webserver und E-Mail-Anwendungen auch einen MIME-Typ angeben?
Ich kann mir vorstellen, dass dies nützlich ist, wenn Sie eine Datei auf eine Art und Weise bereitstellen möchten, die von der Standardeinstellung abweicht (z. B. eine PY- oder HTML-Datei als reinen Text anzeigen) oder wenn die Dateierweiterung auf dem Clientcomputer nicht registriert ist. Aber in den meisten Fällen, wenn ich ein neues Dateiformat erstelle (z. B. .foobaz) und es den Leuten ermöglichen möchte, diese Dateien im Internet und per E-Mail zu teilen, sollte es dann nicht ausreichen, sich darauf zu verlassen, dass der Client die Dateierweiterung erkennt?
Antwort1
Der MIME-Typ gibt eindeutig den Verwendungszweck der Datei an. Dateierweiterungen geben nur Hinweise auf den Inhalt. Beide können falsch sein. DOC wurde von zahlreichen Texteditoren mit einer Vielzahl interner Dateiformate verwendet.
Das Vortäuschen von Erweiterungen wird häufig verwendet, um Leute über den Dateityp zu täuschen. Dies kann für Malware verschiedener Art verwendet werden. Es kann auch zu Sicherheitslücken führen. Wenn myfile.txt aus Sicherheitsgründen als Textdatei validiert und später durch Inhaltsüberprüfung als ausführbare Datei ausgeführt wird, kann Ihr Computer infiziert sein.
Unix verwendet ein Executable-Bit, um anzugeben, welche Datei ausgeführt werden kann. Skripte können mit einem Bang-Pfad beginnen, der angibt, welcher Interpreter sie ausführen soll. Mit dem Befehl file lässt sich der Dateityp mit oder ohne Erweiterung relativ zuverlässig bestimmen.
Die Verwendung von Erweiterungen zur Identifizierung der zu verwendenden Datei kann zu Mehrdeutigkeiten führen. Wenn ich myfile.exe, myfile.com, myfile.bat und myfile.cmd habe, das ausgeführt wird, wenn ich den Befehl myfile ausführe.
Antwort2
Sie sehen es falsch herum.
Eine Datei benötigt einen MIME-Typ, damit ein Client weiß, wie er mit der Datei umgehen soll.
Deine Frage sollte auch andersherum lauten:
Warum brauchen wir Dateierweiterungen, wenn wir Dateitypen anhand des MIME-Typs identifizieren können?
Die Antwort darauf ist wahrscheinlich, dass es für Menschen einfacher ist, den Dateityp anhand des Namens zu identifizieren. Unter Windows kann es auch andere Gründe geben.
Antwort3
Dies passiert nur in der Windows-Welt. In der Unix-Welt müssen Dateien keine Erweiterung haben, sie werden durch den MIME-Typ identifiziert.
Antwort4
Kleine und maßgeschneiderte (individuell gestaltete) Anwendungen neigen dazu, bei ihren Dateierweiterungen eher großzügig zu sein. Dies kann dazu führen, dass Dateierweiterungen zur Darstellung mehrerer Dateitypen verwendet werden.
Da nicht garantiert werden kann, dass eine Dateierweiterung einem bestimmten Dateityp entspricht, ist der Empfänger möglicherweise nicht in der Lage, den Dateityp zu identifizieren und nicht das richtige Programm zum Öffnen der Datei zu erhalten.
Neben MIME-Typen gibt es noch weitere Systeme zur Identifizierung von Dateien, beispielsweise Magic Numbers. Das bedeutet, dass keine Dateierweiterungen erforderlich sind. Dateierweiterungen können auch von Benutzern umbenannt werden, die die Dateien dann nicht öffnen können und daher wahrscheinlich den Support kontaktieren.