Servlets-http-status-codes
サーブレット-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/1.1)、ステータスコード(例では200)、およびステータスコードに対応する非常に短いメッセージ(例ではOK)で構成されています。
以下は、Webサーバーから返される可能性のあるHTTPステータスコードと関連メッセージのリストです-
Code | Message | Description |
---|---|---|
100 | Continue | Only a part of the request has been received by the server, but as long as it has not been rejected, the client should continue with the request |
101 | Switching Protocols | The server switches protocol. |
200 | OK | The request is OK |
201 | Created | The request is complete, and a new resource is created |
202 | Accepted | The request is accepted for processing, but the processing is not complete. |
203 | Non-authoritative Information | |
204 | No Content | |
205 | Reset Content | |
206 | Partial Content | |
300 | Multiple Choices | A link list. The user can select a link and go to that location. Maximum five addresses |
301 | Moved Permanently | The requested page has moved to a new url |
302 | Found | The requested page has moved temporarily to a new url |
303 | See Other | The requested page can be found under a different url |
304 | Not Modified | |
305 | Use Proxy | |
306 | Unused | This code was used in a previous version. It is no longer used, but the code is reserved |
307 | Temporary Redirect | The requested page has moved temporarily to a new url. |
400 | Bad Request | The server did not understand the request |
401 | Unauthorized | The requested page needs a username and a password |
402 | Payment Required | You cannot use this code yet |
403 | Forbidden | Access is forbidden to the requested page |
404 | Not Found | The server cannot find the requested page. |
405 | Method Not Allowed | The method specified in the request is not allowed. |
406 | Not Acceptable | The server can only generate a response that is not accepted by the client. |
407 | Proxy Authentication Required | You must authenticate with a proxy server before this request can be served. |
408 | Request Timeout | The request took longer than the server was prepared to wait. |
409 | Conflict | The request could not be completed because of a conflict. |
410 | Gone | The requested page is no longer available. |
411 | Length Required | The "Content-Length" is not defined. The server will not accept the request without it. |
412 | Precondition Failed | The precondition given in the request evaluated to false by the server. |
413 | Request Entity Too Large | The server will not accept the request, because the request entity is too large. |
414 | Request-url Too Long | The server will not accept the request, because the url is too long. Occurs when you convert a "post" request to a "get" request with a long query information. |
415 | Unsupported Media Type | The server will not accept the request, because the media type is not supported. |
417 | Expectation Failed | |
500 | Internal Server Error | The request was not completed. The server met an unexpected condition. |
501 | Not Implemented | The request was not completed. The server did not support the functionality required. |
502 | Bad Gateway | The request was not completed. The server received an invalid response from the upstream server. |
503 | Service Unavailable | The request was not completed. The server is temporarily overloading or down. |
504 | Gateway Timeout | The gateway has timed out. |
505 | HTTP Version Not Supported | The server does not support the "http protocol" version. |
HTTPステータスコードを設定する方法
次のメソッドを使用して、サーブレットプログラムでHTTPステータスコードを設定できます。 これらのメソッドは、_HttpServletResponse_オブジェクトで使用できます。
Sr.No. | Method & Description |
---|---|
1 |
このメソッドは、任意のステータスコードを設定します。 setStatusメソッドは、引数としてint(ステータスコード)を取ります。 応答に特別なステータスコードとドキュメントが含まれる場合は、_PrintWriter_でコンテンツを実際に返す前にsetStatusを呼び出してください。 |
2 |
public void sendRedirect(String url) このメソッドは、新しいドキュメントのURLを提供する_Location_ヘッダーとともに302応答を生成します |
3 |
public void sendError(int code, String message) このメソッドは、HTMLドキュメント内で自動的にフォーマットされてクライアントに送信される短いメッセージとともに、ステータスコード(通常404)を送信します。 |
HTTPステータスコードの例
以下は、クライアントブラウザに407エラーコードを送信し、ブラウザに「認証が必要!!!」と表示される例です。メッセージ。
//Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
//Extend HttpServlet class
public class showError extends HttpServlet {
//Method to handle GET method request.
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Set error code and reason.
response.sendError(407, "Need authentication!!!" );
}
//Method to handle POST method request.
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
今、上記のサーブレットを呼び出すと、次の結果が表示されます-
HTTP Status 407 - Need authentication!!!
type Status report
messageNeed authentication!!!
descriptionThe client must first authenticate itself with the proxy (Need authentication!!!).
Apache Tomcat/5.5.29