JSP-Httpステータスコード
この章では、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 version (HTTP/1.1 in the example)、ステータスコード(例では200)、およびステータスコードに対応する非常に短いメッセージ (OK in the example)。
次の表に、Webサーバーから返される可能性のあるHTTPステータスコードと関連メッセージを示します。
コード | メッセージ | 説明 |
---|---|---|
100 | 継続する | リクエストの一部のみがサーバーによって受信されましたが、それが拒否されない限り、クライアントはリクエストを続行する必要があります |
101 | スイッチングプロトコル | サーバーはプロトコルを切り替えます。 |
200 | OK | リクエストは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 | Request-urlが長すぎます | URLが長すぎるため、サーバーはリクエストを受け入れません。これは、「post」リクエストを長いクエリ情報を含む「get」リクエストに変換するときに発生します。 |
415 | サポートされていないメディアタイプ | メディアタイプがサポートされていないため、サーバーは要求を受け入れません。 |
417 | 期待に失敗しました | |
500 | 内部サーバーエラー | リクエストは完了しませんでした。サーバーが予期しない条件を満たしました。 |
501 | 実装されていません | リクエストは完了しませんでした。サーバーは必要な機能をサポートしていませんでした。 |
502 | 悪いゲートウェイ | リクエストは完了しませんでした。サーバーがアップストリームサーバーから無効な応答を受信しました。 |
503 | サービスは利用できません | リクエストは完了しませんでした。サーバーが一時的に過負荷またはダウンしています。 |
504 | ゲートウェイタイムアウト | ゲートウェイがタイムアウトしました。 |
505 | HTTPバージョンはサポートされていません | サーバーはサポートしていません "http protocol" バージョン。 |
HTTPステータスコードを設定する方法
次の方法を使用して、サーブレットプログラムでHTTPステータスコードを設定できます。これらのメソッドは、HttpServletResponseオブジェクトで使用できます。
S.No. | 方法と説明 |
---|---|
1 | public void setStatus ( int statusCode ) このメソッドは、任意のステータスコードを設定します。setStatusメソッドは、引数としてint(ステータスコード)を取ります。返信に特別なステータスコードとドキュメントが含まれている場合は、必ず電話してくださいsetStatusPrintWriterでコンテンツを実際に返す前。 |
2 | public void sendRedirect(String url) このメソッドは、新しいドキュメントのURLを示すLocationヘッダーとともに302応答を生成します。 |
3 | public void sendError(int code, String message) このメソッドは、ステータスコード(通常は404)を、HTMLドキュメント内で自動的にフォーマットされてクライアントに送信される短いメッセージとともに送信します。 |
HTTPステータスコードの例
次の例は、407エラーコードがクライアントブラウザに送信される方法を示しています。この後、ブラウザはあなたに「Need authentication!!!「メッセージ。
<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
// Set error code and reason.
response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>
次の出力が表示されます-
HTTP Status 407 - Need authentication!!!
type Status report
message Need authentication!!!
description The client must first authenticate itself with the proxy (Need authentication!!!).
Apache Tomcat/5.5.29
HTTPステータスコードをより快適に使用するには、さまざまなステータスコードとその説明を設定してみてください。