3

プロジェクト用の単純な HTTP サーバーを構築しています。ほとんどの Web サイトには、カスタム 404 エラー ページがあります。ただし、Firefox が一般的な 404 ページ (または 405 など) を吐き出すことがあります。何をすべきかをどのように決定しますか?HTTP 応答はどうあるべきですか? 「HTTP/1.0 404 NOT FOUND」で十分ですか?

ありがとう

4

5 に答える 5

5

サーバーが要求されたリソース(Webページなど)を見つけられない場合、サーバーはHTTPヘッダーセクションでHTTP / 1.0 404NOTFOUNDを送信します。

サーバーはこのエラーのエラーページをマップできるため、読み取り可能なエラーページを取得できます。ブラウザは独自のエラーページをマッピングすることもできるため、ブラウザ固有のエラー404メッセージを確認できます。

ログファイルのステータスフィールドにエラーコードが表示されます。

この構造を使用して、ユーザーを特定のページにリダイレクトできます。

<HTML>
<head>
<meta HTTP-EQUIV="Refresh" CONTENT="5; URL=not404.htm">
</head>
</HTML>

Welcome to 404 ErrorPages.comの詳細をご覧ください

于 2008-10-15T21:22:35.130 に答える
2

HTTP サーバーを作成している場合は、プロトコルについて説明している RFC を参照してください: http://www.faqs.org/rfcs/rfc2616.html

404 ステータス コードの場合、次のように表示されます。

サーバーは Request-URI に一致するものを見つけられませんでした。
状態が一時的なものか
永続的なものかは示されていません。410 (Gone) ステータス コードは、古いリソースが永続的に利用できず、転送アドレスがないことを内部で構成可能なメカニズムを通じてサーバーが認識している場合に使用する必要があります。このステータス コードは、サーバーが要求が拒否された理由を正確に明らかにしたくない場合、または他の応答が適用できない場合に一般的に使用されます。

ブラウザが各ステータス コードをどのように処理するかを制御することはできません。ブラウザの適切な動作に依存する必要があります。

とはいえ、既存の HTTP サーバーのいずれかを使用することでメリットが得られる場合があります。数日前に投稿された C または C++ で HTTP サーバーを作成する方法に関するこの質問を見てください。

于 2008-10-15T20:56:34.777 に答える
2

404 応答コードを含む html 本文を返すことは完全に有効です。本文が指定されていない場合、ブラウザはデフォルトのページを表示します。

  1. HTTP/1.0 404 NOT FOUNDのみを送信すると、ブラウザのデフォルトが表示されます。
  2. レスポンスに本文を追加すると、ブラウザはほとんどそれを使用します。
于 2008-10-15T20:57:23.793 に答える
1

そのため、Firefox はほとんどの状況で一般的な 404 エラー ページを表示しません。あなたが考えているのは Internet Explorer で、Web サイトの 404 ページが特定のサイズよりも小さい場合は無視し、独自のページを表示します。

于 2008-10-15T20:55:08.837 に答える
-2

通常は Web サーバーに設定します。つまり、サーバーが 404 を取得した場合は、このページを参照してください。

于 2008-10-15T20:52:34.973 に答える