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 | OK | リクエストが確認されました |
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が長すぎるため、サーバーは、要求を受け入れることを拒否します。 詳細については、に添付の「GET」リクエストに "POST"要求へのクエリの多くに表示されます |
415 | サポートされていないメディアタイプ | メディアタイプがサポートされていないため、サーバーは、要求を受け入れることを拒否します |
417 | 期待に失敗しました | |
500 | 内部サーバーエラー | 要求が不完全で、サーバが予期しない状態に会いました |
501 | 実装されていません | リクエストが完了していない、サーバーは必要な機能を提供していません |
502 | 不正なゲートウェイ | 要求が不完全である、上流のサーバーからサーバーが無効な応答を受信しました |
503 | サービス利用不可 | 要求は、サーバーが一時的にシャットダウンまたは再起動され、不完全です |
504 | ゲートウェイタイムアウト | ゲートウェイタイムアウト |
505 | HTTPバージョンをサポートしていません | Serverは、指定されたHTTPバージョンをサポートしていません。 |
HTTPステータスコードの設定方法
次の表は、ステータスコードを設定するために使用するHttpServletResponseクラスのメソッドを示しています。
SN | メソッド と 説明 |
---|---|
1 | 公共ボイドのsetStatus(int型からstatusCode) この方法は、任意の状態コードを設定することができます。 あなたの応答は、ステータスコードと特殊な文書が含まれている場合は、メソッドのsetStatusを呼び出す前に何かを返すPrintWriterを使用してください |
2 | 公共ボイドのsendRedirect(文字列のURL) URLのLocationヘッダを生成する新しい文書を伝えながら、この方法では、302応答を生成します |
3 | 公共ボイドのsendError(int型のコード、文字列メッセージ) この方法は、ステータス・コード(通常は404)、およびショートメッセージ自動的にHTMLドキュメントに挿入することと、クライアントに返送します |
HTTPステータスコードプログラム例
次の例では、ブラウザが「認証が必要です!!!」を教えてくれます、ブラウザに407エラーコードを送信します。
<html> <head> <title>Setting HTTP Status Code</title> </head> <body> <% // 设置错误代码,并说明原因 response.sendError(407, "Need authentication!!!" ); %> </body> </html>
JSPページを超えるアクセスは、次のような結果が得られます:
また、あなたが予期しないものの結果を参照することになる、異なるステータスコードを使用して試すことができます。