Ich glaube, ich habe den Grund dafür gefunden.
Wenn ein Webserver auf einen Fehler stößt, stellt er dem Browser normalerweise ein Dokument (normalerweise ein HTML-Dokument, das den Fehler beschreibt) zur Verfügung und zeigt den Fehlerzustand anhand des HTTP-Statuscodes an.
Gemäß diesem Fehlerbericht zeigte Firefox ursprünglich immer das zurückgegebene Dokument an. Normalerweise ist es das, was Sie wollen. Ein Benutzer stellte jedoch ein Problem mit einem falsch konfigurierten AOL-Server fest: Beim Anfordern einer nicht vorhandenen EXE-Datei würde der Server die 404-Seite bereitstellen, jedoch mit einem falschen Content-Type. Dies führte dazu, dass Firefox anbot, das HTML-Dokument mit einer .exe
Erweiterung herunterzuladen. Dies war verwirrend, da keine Anzeichen für einen Fehler auftraten. Sie änderten das Verhalten mit einem einfachen Hack (der die Erstellung einer neuen Fehlermeldungsseite nicht rechtfertigt, da dies ein ungewöhnlicher Fall ist, stattdessen die "nicht gefundene" Seite erneut zu verwenden, was in dem speziellen Beispiel des Reporters des Fehlers Sinn macht).
Aus dem Fehlerbericht, den @ m4573r gefunden hat, klingt es wie das aktuelle Verhalten, wenn Firefox eine Antwort mit einem HTTP-Code erhält, der einen Fehler signalisiert, und die Antwort Content-Type
etwas anderes als HTML ist. Anschließend zeigt Firefox eine Fehlerseite "Datei nicht gefunden" an.
Die überwiegende Mehrheit der Webserver ist so konfiguriert, dass sie im Fehlerfall ein HTML-Dokument bereitstellen. Aus diesem Grund wird dies normalerweise nicht angezeigt. In diesem Eckfall ist die Fehlermeldung jedoch nicht sinnvoll.
wget -d http://www.ssa.gov/framework/images/icons/png/
bestätigt, was hier los ist:
---response begin--- HTTP/1.1 500 Server Error Server: Generic Web Server 1.0 Date: Thu, 20 Feb 2014 23:29:57 GMT Cache-control: public Content-type: magnus-internal/directory Transfer-encoding: chunked ---response end---
Es dient der Fehlerseite mit dem Schein Content-type
von magnus-internal/directory
, das Verhalten in Firefox auszulösen.
Offensichtlich war Google der Meinung, dass dieses Verhalten sinnvoll ist, und implementierte es ähnlich in Chromium.