Alexander (HH): Download einer PDF-Datei sicherstellen

Beitrag lesen

Moin Moin!

Die Zeile "ForceType application/octet-stream" hatte ich eingebaut, weil ich gelesen hatte sie wäre für ältere Browser nötig.

Das wären dermaßen alte Relikte, dass sie nur HTTP/1.0 beherrschen. Damit funktionieren auch Name-based Virtual Hosts nicht, sprich: nur eine Domain pro IP-Adresse. Sowas dürfte in freier Wildbahn angesichts der großen Anzahl von Shared-Hosting-Angeboten gründlich ausgerottet sein. Die paar Hardcore-User, die so etwas noch einsetzen, wissen, dass sie mit Problemen rechnen müssen.

Kann sie denn schaden?

Prinzipiell schon. Mit application/pdf weiß mein imaginäres MIME-Type-basierendes Betriebssystem, dass da gleich eine PDF-Datei kommt, kann mir beim Save-As-Dialog gleich die passenden Icons und Optionen für PDF-Dateien anzeigen. Bei application/octet-stream heißt die Ansage "Binärmüll", entsprechend kann mein imaginäres Betriebssystem nur Icons und Optionen für Binärmüll anbieten. Und schlimmer noch: Da mein imaginäres Betriebssystem auch den MIME-Type speichert, muß ich nach dem Speichern nochmal manuell ran und die Datei von Binärmüll auf PDF umtypisieren, weil das System sonst nur meckert, dass es unspezifischen Binärmüll nicht öffnen kann.

Ganz frei erfunden ist das nicht, ganz im Gegenteil. Viele Betriebssysteme speichern zu Dateien zusätzlich Metadaten, und repräsentieren und handhaben anhand dieser die Dateien unterschiedlich. Der bekannteste Vertreter dürfte das klassische MacOS und auch die ersten paar Versionen von MacOS X mit seinen Creator Codes sein. Nur, dass MacOS eben nicht direkt MIME-Typen, sondern 32-Bit-Integer benutzt.

Davon abgesehen könnten ein paar Proxies mit Firewall-Ansätzen auch "nervös" werden, wenn Du ihnen angeblichen Binärmüll anfütterst. Im blödsten Fall schlägt irgendeine schwachsinnige Paranoia-Regel zu und blockiert den Download. Frei nach dem Motto application/octet-stream == EXE-Datei == Böse Malware. Das denke ich mir definitiv nicht aus, mit so einem Schwachsinn habe ich mich schon rumschlagen dürfen. Out-of-the-box ist wohl kein Proxy so konfiguriert, aber auf dem Layer 8 passieren die merkwürdigsten Dinge.

Ich verwende zwar nur Kleinbuchstaben bei den pdfs und mp4s, aber schreibe dann sicherheitshalber lieber "<FilesMatch ".(?i:pdf|mp4)$">".

Ja.

Der Abschluss heißt dann logischerweise "</FilesMatch>", richtig?

Korrekt.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".