All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.jetty.http.HttpStatus Maven / Gradle / Ivy

There is a newer version: 11.0.0.beta1
Show newest version
// ========================================================================
// Copyright (c) 2004-2009 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
// You may elect to redistribute this code under either of these licenses.
// ========================================================================

package org.eclipse.jetty.http;

/**
 * 

* HttpStatusCode enum class, for status codes based on various HTTP RFCs. (see * table below) *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
EnumCodeMessage * RFC 1945 - HTTP/1.0 * RFC 2616 - HTTP/1.1 * RFC 2518 - WEBDAV
Informational - 1xx{@link #isInformational(int)}
{@link #CONTINUE_100}100Continue  * Sec. 10.1.1 
{@link #SWITCHING_PROTOCOLS_101}101Switching Protocols  * Sec. 10.1.2 
{@link #PROCESSING_102}102Processing   * Sec. 10.1
Success - 2xx{@link #isSuccess(int)}
{@link #OK_200}200OK * Sec. 9.2 * Sec. 10.2.1 
{@link #CREATED_201}201Created * Sec. 9.2 * Sec. 10.2.2 
{@link #ACCEPTED_202}202Accepted * Sec. 9.2 * Sec. 10.2.3 
{@link #NON_AUTHORITATIVE_INFORMATION_203}203Non Authoritative Information  * Sec. 10.2.4 
{@link #NO_CONTENT_204}204No Content * Sec. 9.2 * Sec. 10.2.5 
{@link #RESET_CONTENT_205}205Reset Content  * Sec. 10.2.6 
{@link #PARTIAL_CONTENT_206}206Partial Content  * Sec. 10.2.7 
{@link #MULTI_STATUS_207}207Multi-Status   * Sec. 10.2
 207Partial Update OK  * draft/01 
Redirection - 3xx{@link #isRedirection(int)}
{@link #MULTIPLE_CHOICES_300}300Multiple Choices * Sec. 9.3 * Sec. 10.3.1 
{@link #MOVED_PERMANENTLY_301}301Moved Permanently * Sec. 9.3 * Sec. 10.3.2 
{@link #MOVED_TEMPORARILY_302}302Moved Temporarily * Sec. 9.3(now "302 Found") 
{@link #FOUND_302}302Found(was "302 Moved Temporarily") * Sec. 10.3.3 
{@link #SEE_OTHER_303}303See Other  * Sec. 10.3.4 
{@link #NOT_MODIFIED_304}304Not Modified * Sec. 9.3 * Sec. 10.3.5 
{@link #USE_PROXY_305}305Use Proxy  * Sec. 10.3.6 
 306(Unused)  * Sec. 10.3.7 
{@link #TEMPORARY_REDIRECT_307}307Temporary Redirect  * Sec. 10.3.8 
Client Error - 4xx{@link #isClientError(int)}
{@link #BAD_REQUEST_400}400Bad Request * Sec. 9.4 * Sec. 10.4.1 
{@link #UNAUTHORIZED_401}401Unauthorized * Sec. 9.4 * Sec. 10.4.2 
{@link #PAYMENT_REQUIRED_402}402Payment Required * Sec. 9.4 * Sec. 10.4.3 
{@link #FORBIDDEN_403}403Forbidden * Sec. 9.4 * Sec. 10.4.4 
{@link #NOT_FOUND_404}404Not Found * Sec. 9.4 * Sec. 10.4.5 
{@link #METHOD_NOT_ALLOWED_405}405Method Not Allowed  * Sec. 10.4.6 
{@link #NOT_ACCEPTABLE_406}406Not Acceptable  * Sec. 10.4.7 
{@link #PROXY_AUTHENTICATION_REQUIRED_407}407Proxy Authentication Required  * Sec. 10.4.8 
{@link #REQUEST_TIMEOUT_408}408Request Timeout  * Sec. 10.4.9 
{@link #CONFLICT_409}409Conflict  * Sec. 10.4.10 *  
{@link #GONE_410}410Gone  * Sec. 10.4.11 *  
{@link #LENGTH_REQUIRED_411}411Length Required  * Sec. 10.4.12 *  
{@link #PRECONDITION_FAILED_412}412Precondition Failed  * Sec. 10.4.13 *  
{@link #REQUEST_ENTITY_TOO_LARGE_413}413Request Entity Too Large  * Sec. 10.4.14 *  
{@link #REQUEST_URI_TOO_LONG_414}414Request-URI Too Long  * Sec. 10.4.15 *  
{@link #UNSUPPORTED_MEDIA_TYPE_415}415Unsupported Media Type  * Sec. 10.4.16 *  
{@link #REQUESTED_RANGE_NOT_SATISFIABLE_416}416Requested Range Not Satisfiable  * Sec. 10.4.17 *  
{@link #EXPECTATION_FAILED_417}417Expectation Failed  * Sec. 10.4.18 *  
 418Reauthentication Required  * draft/01 
 418Unprocessable Entity   * draft/05
 419Proxy Reauthentication Required  * draft/01 
 419Insufficient Space on Resource   * draft/05
 420Method Failure   * draft/05
 421(Unused)   
{@link #UNPROCESSABLE_ENTITY_422}422Unprocessable Entity   * Sec. 10.3
{@link #LOCKED_423}423Locked   * Sec. 10.4
{@link #FAILED_DEPENDENCY_424}424Failed Dependency   * Sec. 10.5
Server Error - 5xx{@link #isServerError(int)}
{@link #INTERNAL_SERVER_ERROR_500}500Internal Server Error * Sec. 9.5 * Sec. 10.5.1 
{@link #NOT_IMPLEMENTED_501}501Not Implemented * Sec. 9.5 * Sec. 10.5.2 
{@link #BAD_GATEWAY_502}502Bad Gateway * Sec. 9.5 * Sec. 10.5.3 
{@link #SERVICE_UNAVAILABLE_503}503Service Unavailable * Sec. 9.5 * Sec. 10.5.4 
{@link #GATEWAY_TIMEOUT_504}504Gateway Timeout  * Sec. 10.5.5 
{@link #HTTP_VERSION_NOT_SUPPORTED_505}505HTTP Version Not Supported  * Sec. 10.5.6 
 506(Unused)   
{@link #INSUFFICIENT_STORAGE_507}507Insufficient Storage   * Sec. 10.6
* * @version $Id$ */ public class HttpStatus { public final static int CONTINUE_100 = 100; public final static int SWITCHING_PROTOCOLS_101 = 101; public final static int PROCESSING_102 = 102; public final static int OK_200 = 200; public final static int CREATED_201 = 201; public final static int ACCEPTED_202 = 202; public final static int NON_AUTHORITATIVE_INFORMATION_203 = 203; public final static int NO_CONTENT_204 = 204; public final static int RESET_CONTENT_205 = 205; public final static int PARTIAL_CONTENT_206 = 206; public final static int MULTI_STATUS_207 = 207; public final static int MULTIPLE_CHOICES_300 = 300; public final static int MOVED_PERMANENTLY_301 = 301; public final static int MOVED_TEMPORARILY_302 = 302; public final static int FOUND_302 = 302; public final static int SEE_OTHER_303 = 303; public final static int NOT_MODIFIED_304 = 304; public final static int USE_PROXY_305 = 305; public final static int TEMPORARY_REDIRECT_307 = 307; public final static int BAD_REQUEST_400 = 400; public final static int UNAUTHORIZED_401 = 401; public final static int PAYMENT_REQUIRED_402 = 402; public final static int FORBIDDEN_403 = 403; public final static int NOT_FOUND_404 = 404; public final static int METHOD_NOT_ALLOWED_405 = 405; public final static int NOT_ACCEPTABLE_406 = 406; public final static int PROXY_AUTHENTICATION_REQUIRED_407 = 407; public final static int REQUEST_TIMEOUT_408 = 408; public final static int CONFLICT_409 = 409; public final static int GONE_410 = 410; public final static int LENGTH_REQUIRED_411 = 411; public final static int PRECONDITION_FAILED_412 = 412; public final static int REQUEST_ENTITY_TOO_LARGE_413 = 413; public final static int REQUEST_URI_TOO_LONG_414 = 414; public final static int UNSUPPORTED_MEDIA_TYPE_415 = 415; public final static int REQUESTED_RANGE_NOT_SATISFIABLE_416 = 416; public final static int EXPECTATION_FAILED_417 = 417; public final static int UNPROCESSABLE_ENTITY_422 = 422; public final static int LOCKED_423 = 423; public final static int FAILED_DEPENDENCY_424 = 424; public final static int INTERNAL_SERVER_ERROR_500 = 500; public final static int NOT_IMPLEMENTED_501 = 501; public final static int BAD_GATEWAY_502 = 502; public final static int SERVICE_UNAVAILABLE_503 = 503; public final static int GATEWAY_TIMEOUT_504 = 504; public final static int HTTP_VERSION_NOT_SUPPORTED_505 = 505; public final static int INSUFFICIENT_STORAGE_507 = 507; public static final int MAX_CODE = 507; private static final Code[] codeMap = new Code[MAX_CODE+1]; static { for (Code code : Code.values()) { codeMap[code._code] = code; } } public enum Code { /* * -------------------------------------------------------------------- * Informational messages in 1xx series. As defined by ... RFC 1945 - * HTTP/1.0 RFC 2616 - HTTP/1.1 RFC 2518 - WebDAV */ /** 100 Continue */ CONTINUE(CONTINUE_100, "Continue"), /** 101 Switching Protocols */ SWITCHING_PROTOCOLS(SWITCHING_PROTOCOLS_101, "Switching Protocols"), /** 102 Processing */ PROCESSING(PROCESSING_102, "Processing"), /* * -------------------------------------------------------------------- * Success messages in 2xx series. As defined by ... RFC 1945 - HTTP/1.0 * RFC 2616 - HTTP/1.1 RFC 2518 - WebDAV */ /** 200 OK */ OK(OK_200, "OK"), /** 201 Created */ CREATED(CREATED_201, "Created"), /** 202 Accepted */ ACCEPTED(ACCEPTED_202, "Accepted"), /** 203 Non Authoritative Information */ NON_AUTHORITATIVE_INFORMATION(NON_AUTHORITATIVE_INFORMATION_203, "Non Authoritative Information"), /** 204 No Content */ NO_CONTENT(NO_CONTENT_204, "No Content"), /** 205 Reset Content */ RESET_CONTENT(RESET_CONTENT_205, "Reset Content"), /** 206 Partial Content */ PARTIAL_CONTENT(PARTIAL_CONTENT_206, "Partial Content"), /** 207 Multi-Status */ MULTI_STATUS(MULTI_STATUS_207, "Multi-Status"), /* * -------------------------------------------------------------------- * Redirection messages in 3xx series. As defined by ... RFC 1945 - * HTTP/1.0 RFC 2616 - HTTP/1.1 */ /** 300 Mutliple Choices */ MULTIPLE_CHOICES(MULTIPLE_CHOICES_300, "Multiple Choices"), /** 301 Moved Permanently */ MOVED_PERMANENTLY(MOVED_PERMANENTLY_301, "Moved Permanently"), /** 302 Moved Temporarily */ MOVED_TEMPORARILY(MOVED_TEMPORARILY_302, "Moved Temporarily"), /** 302 Found */ FOUND(FOUND_302, "Found"), /** 303 See Other */ SEE_OTHER(SEE_OTHER_303, "See Other"), /** 304 Not Modified */ NOT_MODIFIED(NOT_MODIFIED_304, "Not Modified"), /** 305 Use Proxy */ USE_PROXY(USE_PROXY_305, "Use Proxy"), /** 307 Temporary Redirect */ TEMPORARY_REDIRECT(TEMPORARY_REDIRECT_307, "Temporary Redirect"), /* * -------------------------------------------------------------------- * Client Error messages in 4xx series. As defined by ... RFC 1945 - * HTTP/1.0 RFC 2616 - HTTP/1.1 RFC 2518 - WebDAV */ /** 400 Bad Request */ BAD_REQUEST(BAD_REQUEST_400, "Bad Request"), /** 401 Unauthorized */ UNAUTHORIZED(UNAUTHORIZED_401, "Unauthorized"), /** 402 Payment Required */ PAYMENT_REQUIRED(PAYMENT_REQUIRED_402, "Payment Required"), /** 403 Forbidden */ FORBIDDEN(FORBIDDEN_403, "Forbidden"), /** 404 Not Found */ NOT_FOUND(NOT_FOUND_404, "Not Found"), /** 405 Method Not Allowed */ METHOD_NOT_ALLOWED(METHOD_NOT_ALLOWED_405, "Method Not Allowed"), /** 406 Not Acceptable */ NOT_ACCEPTABLE(NOT_ACCEPTABLE_406, "Not Acceptable"), /** 407 Proxy Authentication Required */ PROXY_AUTHENTICATION_REQUIRED(PROXY_AUTHENTICATION_REQUIRED_407, "Proxy Authentication Required"), /** 408 Request Timeout */ REQUEST_TIMEOUT(REQUEST_TIMEOUT_408, "Request Timeout"), /** 409 Conflict */ CONFLICT(CONFLICT_409, "Conflict"), /** 410 Gone */ GONE(GONE_410, "Gone"), /** 411 Length Required */ LENGTH_REQUIRED(LENGTH_REQUIRED_411, "Length Required"), /** 412 Precondition Failed */ PRECONDITION_FAILED(PRECONDITION_FAILED_412, "Precondition Failed"), /** 413 Request Entity Too Large */ REQUEST_ENTITY_TOO_LARGE(REQUEST_ENTITY_TOO_LARGE_413, "Request Entity Too Large"), /** 414 Request-URI Too Long */ REQUEST_URI_TOO_LONG(REQUEST_URI_TOO_LONG_414, "Request-URI Too Long"), /** 415 Unsupported Media Type */ UNSUPPORTED_MEDIA_TYPE(UNSUPPORTED_MEDIA_TYPE_415, "Unsupported Media Type"), /** 416 Requested Range Not Satisfiable */ REQUESTED_RANGE_NOT_SATISFIABLE(REQUESTED_RANGE_NOT_SATISFIABLE_416, "Requested Range Not Satisfiable"), /** 417 Expectation Failed */ EXPECTATION_FAILED(EXPECTATION_FAILED_417, "Expectation Failed"), /** 422 Unprocessable Entity */ UNPROCESSABLE_ENTITY(UNPROCESSABLE_ENTITY_422, "Unprocessable Entity"), /** 423 Locked */ LOCKED(LOCKED_423, "Locked"), /** 424 Failed Dependency */ FAILED_DEPENDENCY(FAILED_DEPENDENCY_424, "Failed Dependency"), /* * -------------------------------------------------------------------- * Server Error messages in 5xx series. As defined by ... RFC 1945 - * HTTP/1.0 RFC 2616 - HTTP/1.1 RFC 2518 - WebDAV */ /** 500 Server Error */ INTERNAL_SERVER_ERROR(INTERNAL_SERVER_ERROR_500, "Server Error"), /** 501 Not Implemented */ NOT_IMPLEMENTED(NOT_IMPLEMENTED_501, "Not Implemented"), /** 502 Bad Gateway */ BAD_GATEWAY(BAD_GATEWAY_502, "Bad Gateway"), /** 503 Service Unavailable */ SERVICE_UNAVAILABLE(SERVICE_UNAVAILABLE_503, "Service Unavailable"), /** 504 Gateway Timeout */ GATEWAY_TIMEOUT(GATEWAY_TIMEOUT_504, "Gateway Timeout"), /** 505 HTTP Version Not Supported */ HTTP_VERSION_NOT_SUPPORTED(HTTP_VERSION_NOT_SUPPORTED_505, "HTTP Version Not Supported"), /** 507 Insufficient Storage */ INSUFFICIENT_STORAGE(INSUFFICIENT_STORAGE_507, "Insufficient Storage"); private final int _code; private final String _message; private Code(int code, String message) { this._code = code; _message=message; } public int getCode() { return _code; } public String getMessage() { return _message; } public boolean equals(int code) { return (this._code == code); } @Override public String toString() { return String.format("[%03d %s]",this._code,this.getMessage()); } /** * Simple test against an code to determine if it falls into the * Informational message category as defined in the RFC 1945 - HTTP/1.0, * and RFC 2616 - * HTTP/1.1. * * @return true if within range of codes that belongs to * Informational messages. */ public boolean isInformational() { return HttpStatus.isInformational(this._code); } /** * Simple test against an code to determine if it falls into the * Success message category as defined in the RFC 1945 - HTTP/1.0, * and RFC 2616 - * HTTP/1.1. * * @return true if within range of codes that belongs to * Success messages. */ public boolean isSuccess() { return HttpStatus.isSuccess(this._code); } /** * Simple test against an code to determine if it falls into the * Redirection message category as defined in the RFC 1945 - HTTP/1.0, * and RFC 2616 - * HTTP/1.1. * * @return true if within range of codes that belongs to * Redirection messages. */ public boolean isRedirection() { return HttpStatus.isRedirection(this._code); } /** * Simple test against an code to determine if it falls into the * Client Error message category as defined in the RFC 1945 - HTTP/1.0, * and RFC 2616 - * HTTP/1.1. * * @return true if within range of codes that belongs to * Client Error messages. */ public boolean isClientError() { return HttpStatus.isClientError(this._code); } /** * Simple test against an code to determine if it falls into the * Server Error message category as defined in the RFC 1945 - HTTP/1.0, * and RFC 2616 - * HTTP/1.1. * * @return true if within range of codes that belongs to * Server Error messages. */ public boolean isServerError() { return HttpStatus.isServerError(this._code); } } /** * Get the HttpStatusCode for a specific code * * @param code * the code to lookup. * @return the {@link HttpStatus} if found, or null if not found. */ public static Code getCode(int code) { if (code <= MAX_CODE) { return codeMap[code]; } return null; } /** * Get the status message for a specific code. * * @param code * the code to look up * @return the specific message, or the code number itself if code * does not match known list. */ public static String getMessage(int code) { Code codeEnum = getCode(code); if (codeEnum != null) { return codeEnum.getMessage(); } else { return Integer.toString(code); } } /** * Simple test against an code to determine if it falls into the * Informational message category as defined in the RFC 1945 - HTTP/1.0, and RFC 2616 - HTTP/1.1. * * @param code * the code to test. * @return true if within range of codes that belongs to * Informational messages. */ public static boolean isInformational(int code) { return ((100 <= code) && (code <= 199)); } /** * Simple test against an code to determine if it falls into the * Success message category as defined in the RFC 1945 - HTTP/1.0, and RFC 2616 - HTTP/1.1. * * @param code * the code to test. * @return true if within range of codes that belongs to * Success messages. */ public static boolean isSuccess(int code) { return ((200 <= code) && (code <= 299)); } /** * Simple test against an code to determine if it falls into the * Redirection message category as defined in the RFC 1945 - HTTP/1.0, and RFC 2616 - HTTP/1.1. * * @param code * the code to test. * @return true if within range of codes that belongs to * Redirection messages. */ public static boolean isRedirection(int code) { return ((300 <= code) && (code <= 399)); } /** * Simple test against an code to determine if it falls into the * Client Error message category as defined in the RFC 1945 - HTTP/1.0, and RFC 2616 - HTTP/1.1. * * @param code * the code to test. * @return true if within range of codes that belongs to * Client Error messages. */ public static boolean isClientError(int code) { return ((400 <= code) && (code <= 499)); } /** * Simple test against an code to determine if it falls into the * Server Error message category as defined in the RFC 1945 - HTTP/1.0, and RFC 2616 - HTTP/1.1. * * @param code * the code to test. * @return true if within range of codes that belongs to * Server Error messages. */ public static boolean isServerError(int code) { return ((500 <= code) && (code <= 599)); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy