web-dev-qa-db-ja.com

Webページで「ファイルが見つかりません」とはどういう意味ですか?

Firefox(Linuxで実行)で http://www.ssa.gov/framework/images/icons/png/ などの特定のHTTP URLにアクセスすると、驚くべきことに、「ファイルが見つかりません」というメッセージを含む「ページの読み込みに問題があります」ブラウザエラーが発生します。 localファイルに使用されます:

Firefox

関係するファイルがないため、テキストは意味をなさないようです。

最初はFirefoxのバグかもしれないと思っていましたが、Chromiumでも同じことが起こります。

Chromium

Wgetにダウンロードするように指示すると、500 Server Errorが報告されます。ただし、500エラーを受け取ったときにブラウザに「ファイルが見つかりません」と表示されることはありません。これは、アクセスしたときに表示されないためです https://httpbin.org/status/5

このエラーメッセージの原因とはどういう意味ですか?

3

私はこれの理由を見つけたと思います。

Webサーバーでエラーが発生すると、通常、ブラウザーにドキュメント(通常はエラーを説明するHTMLドキュメント)が提供され、HTTPステータスコードを使用してエラー状態が示されます。

このバグレポート によると、Firefoxは元々常に返されたドキュメントを表示していました。通常、これはあなたが望むものです。ただし、ユーザーは、誤って構成されたAOLサーバーに問題があることを発見しました。存在しないEXEファイルを要求すると、サーバーは404ページを提供しますが、Content-Typeが正しくありません。そのため、Firefoxは.exe拡張子の付いたHTMLドキュメントのダウンロードを提案しましたが、エラーが発生した兆候がなかったため、混乱を招きました。彼らは単純なハックで動作を変更しました(これはまれなケースであるため、新しいエラーメッセージページを作成する必要はありません。代わりに、バグのレポーターが示した特定の例で意味のある「見つかりません」ページを再利用します)。

バグレポート その @ m4573rが見つかりました から、Firefoxがエラーを通知するHTTPコードを含む応答を受信したときの現在の動作のように聞こえますand応答のContent-TypeがHTML以外の場合、Firefoxは「ファイルが見つかりません」というエラーページを表示します。

Webサーバーの大部分は、エラー時にHTMLドキュメントを提供するように構成されているため、通常はこれが表示されません。しかし、このコーナーケースでは、エラーメッセージは意味がありません。

wget -d http://www.ssa.gov/framework/images/icons/png/はここで何が起こっているかを確認します:

---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---

Content-typeの偽のmagnus-internal/directoryでエラーページを提供し、Firefoxでの動作をトリガーします。

明らかに、Googleはこの動作が理にかなっていると考え、Chromiumでも同様に実装しました。

13

バグとして報告されています in ... 2008:/優先度の低いリストに含まれているようです。

1
m4573r

質問でファイルは関係ないとおっしゃっていたので、Webの仕組みについて少しお話しすることで疑問が解消されると思います。

サーバーにリクエストを送信すると、実際には、サーバーに保存されているファイル、またはリクエストが動的コンテンツを要求している場合はサーバーによって生成されたファイルをリクエストしていることになります。

URLは3つの部分に分かれています:

1)Http:// <<使用されるプロトコル

2)www.whatever.com <<サーバーを識別するために使用されるDNS(uがコンテンツを要求している場所からのcomp)

3)/music/song.mp3 <<サーバー上のファイルの場所

したがって、このエラーメッセージは、要求したファイルが見つからないことを示しているだけです。音楽ファイルの例を取り上げましたが、拡張子が.htmlのWebページでもリクエストでき、同じエラーが生成される場合があります。

このエラーは、リソース、つまりWebページ、音楽ファイル、ビデオ、または要求したファイルのタイプがサーバー上で見つからなかったことを示しています。

1
Ankit Goel