JSP HTTPステータスコード


HTTP リクエストと HTTP レスポンスは同様の形式で、両方とも次の構造を持っています:

  • ステータス行 + CRLF (キャリッジリターンとラインフィード) で始めます

  • ゼロ行または複数行のヘッダーモジュール+CRLF

  • CRLF

  • などの空行 ファイル、クエリ データ、クエリ出力などのオプションのメッセージ本文

たとえば、サーバー応答ヘッダーは次のようになります:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>


ステータス行には、HTTP バージョン、ステータス コード、および対応するステータス コードが含まれますショートメッセージ。


次の表は、サーバーから返される可能性がある HTTP ステータス コードとそれに関連付けられたメッセージを示しています。

ステータスコードメッセージ説明
100 続ける リクエストの一部のみがサーバーによって受信されますが、サーバーによって拒否されない限り、クライアントはリクエストを続行します
101 プロトコルの切り替え サーバー切り替えプロトコル
200 わかりました リクエストを確認しました
201 作成しました リクエストに応じて完了し、新しいリソースが作成されます
202 承認されました リクエストは受け入れられましたが、処理されませんでした
203 非権威情報
204 コンテンツはありません
205 コンテンツをリセット
206 部分的なコンテンツ
300 複数の選択肢 ハイパーリンク テーブル。ユーザーはハイパーリンクを選択してアクセスでき、最大 5 つのハイパーリンクをサポートします
301 完全に移動されました リクエストされたページは新しいURLに移動されました
302 見つかりました リクエストされたページは新しい URL に一時的に移動されました
303 他を見る リクエストされたページは別の URL で見つかります
304 変更されていません
305 プロキシを使用する
306未使用 このステータス コードは使用されなくなりましたが、ステータス コードは保持されます
307 一時的なリダイレクト リクエストされたページは新しい URL に一時的に移動されました
400 間違ったリクエスト サーバーがリクエストを認識しません
401 無許可 リクエストされたページにはユーザー名とパスワードが必要です
402 お支払いが必要ですこのステータス コードはまだ使用できません
403 禁止 要求されたページへのアクセスは禁止されています
404 見つかりません サーバーは要求されたページを見つけることができません
405 許可されていないメソッド リクエストで指定されたメソッドは許可されていません
406 受け入れられません サーバーは、クライアントが受け入れられない応答のみを作成できます
407 プロキシ認証が必要です プロキシサーバーはリクエストが処理される前に認証される必要があります
408 リクエストタイムアウト リクエスト時間がサーバーの待ち時間を超えたため、接続が切断されました
409 対立 リクエストに競合があります
410 消えた リクエストされたページはもう利用できません
411 長さは必須です 「Content-Length」が定義されていないため、サーバーはリクエストの受け入れを拒否しました
412 前提条件が失敗しました 要求された前提条件はサーバーによって false と評価されました
413 リクエストエンティティが大きすぎます リクエストされたエンティティが大きすぎるため、サーバーはリクエストの受け入れを拒否しました
414 リクエスト URL が長すぎます URL が長すぎるため、サーバーはリクエストの受け入れを拒否しました。「POST」リクエストを「GET」リクエストに変換すると大量のクエリ情報が表示されます
415 サポートされていないメディア タイプ メディアタイプがサポートされていないため、サーバーはリクエストの受け入れを拒否しました
417 期待は外れました
500 内部サーバーエラー リクエストは不完全で、サーバーで予期しない状況が発生しました
501 未実装 リクエストは不完全で、サーバーは必要な機能を提供していません
502 不正なゲートウェイ リクエストは不完全で、サーバーは上流サーバーから無効な応答を受け入れました
503 サービスが利用できません リクエストは不完全で、サーバーは一時的に再起動またはシャットダウンされています
504 ゲートウェイタイムアウト ゲートウェイタイムアウト
505 HTTP バージョンはサポートされていません サーバーは指定された HTTP バージョンをサポートしていません

HTTP ステータス コードを設定するメソッド

次の表に、HttpServletResponse クラスでステータス コードを設定するために使用されるメソッドを示します。 1

public void setStatus ( int statusCode ) このメソッドは 302 レスポンスを生成し、URL に新しいドキュメント public void sendError(int code, String message) このメソッドは、ステータス コード (通常は 404) と短いメッセージを HTML ドキュメントに自動的に挿入し、クライアントに送り返します
<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
   // 设置错误代码,并说明原因
   response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>
上記の JSP ページにアクセスすると、次の結果が得られます: 他のステータス コードを使用して、予期しない結果が得られるかどうかを確認することもできます。
このメソッドは任意のステータス コードを設定できます。応答に特別なステータス コードとドキュメントが含まれている場合は、PrintWriter で何かを返す前に必ず setStatus メソッドを呼び出してください 2public void sendRedirect(String url)
を伝える Location

ヘッダーも生成します。 3


HTTP ステータス コード プログラムの例 次の例では、407 エラー コードがブラウザに送信され、ブラウザは「認証が必要です!!!」と通知します。