2017-05-31 1 views
0

奇妙なウェブページが私の道を横切った。 (そして、開発者であれば私は謎を解かなければならない)サーバーはWebページに対して404を返しますが、ブラウザでページが正常に表示されています - なぜですか?

すべてのブラウザでWebページにアクセスすると、すべて正常に見える。期待どおりにWebページが表示されます。

しかしコンソールで見たときにサーバがacually 404のステータスコードを返します。

enter image description here

なぜブラウザがページをレンダリングしていますか?ボディを見てみると

は、有効なHTMLが返されますを示しています。

enter image description here

は待って​​。 404に応答し、途中でHTMLを送信しますか?ブラウザはそれをレンダリングしますか?

どうしてですか?これはサーバーの設定ミスですか?それとも私は理解していないここで賢明な何かですか?このような振る舞いをする目的でサーバーを構成する実用的な理由はありますか?

答えて

0

Another answer on Stack Overflowには、HTTPステータスコード404プラスHTML応答本文が実際にspecで推奨されています。

ステータスコードの4xxのクラスが
クライアントが誤りを犯しているようだここで例を対象としています。 HEADに
要求を応答する場合を除き、サーバはエラー状況
説明を含む表現を含むべきである、それは一時的または永久的な
状態であるかどうか。これらのステータスコードは、
リクエストメソッドに適用されます。利用者エージェントは、含まれている
表現をユーザに表示すべきである(SHOULD)。

これは、2つの可能な説明を私に残します:

説明1:それはサーバーエラーです。

  • サーバーブラウザはレスポンスボディはエラーの詳細が含まれていて、それを表示すると考え誤っリターン404のステータスコード
  • - エンドユーザーのために、これは

実際のページです説明2:クローラとページウォッチャーを倒すことが目的で実行されています。

  • サーバが目的で404を返します - 彼らは
  • ブラウザは影響を受けません、エラーとしてそれを解釈して、ブラウザ以外のユーザーエージェントが結果を処理しません、エンドユーザーは、ページ限り気にしません。が表示されています

2番目のものは、あなたのページのインデックスを作成したくない場合は、実際には巧妙です。

関連する問題