Package org.springframework.http

# Enum Class HttpStatus

java.lang.Object
java.lang.Enum<HttpStatus>
org.springframework.http.HttpStatus

All Implemented Interfaces:
  `Serializable`, `Comparable<HttpStatus>`, `Constable`, `HttpStatusCode`

public enum HttpStatus extends Enum<HttpStatus> implements HttpStatusCode
Enumeration of HTTP status codes.

The HTTP status code series can be retrieved via `series()`.

Since:
  3.0
Author:
  Arjen Poutsma, Sebastien Deleuze, Brian Clozel
See Also:
  - `HttpStatus.Series`
  - HTTP Status Code Registry
  - List of HTTP status codes - Wikipedia

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`HttpStatus.Series`
Enumeration of HTTP status series.

## Nested classes/interfaces inherited from class java.lang.Enum

`Enum.EnumDesc<E extends Enum<E>>`

## Enum Constant Summary

Enum Constants
Enum Constant
Description
`ACCEPTED`
`202 Accepted`.
`ALREADY_REPORTED`
`208 Already Reported`.
`BAD_GATEWAY`
`502 Bad Gateway`.
`BAD_REQUEST`
`400 Bad Request`.
`BANDWIDTH_LIMIT_EXCEEDED`
`509 Bandwidth Limit Exceeded`
`CHECKPOINT`
Deprecated.
in favor of `EARLY_HINTS` which will be returned from `HttpStatus.valueOf(103)`
`CONFLICT`
`409 Conflict`.
`CONTINUE`
`100 Continue`.
`CREATED`
`201 Created`.
`DESTINATION_LOCKED`
Deprecated.
See WebDAV Draft Changes
`EARLY_HINTS`
`103 Early Hints`.
`EXPECTATION_FAILED`
`417 Expectation Failed`.
`FAILED_DEPENDENCY`
`424 Failed Dependency`.
`FORBIDDEN`
`403 Forbidden`.
`FOUND`
`302 Found`.
`GATEWAY_TIMEOUT`
`504 Gateway Timeout`.
`GONE`
`410 Gone`.
`HTTP_VERSION_NOT_SUPPORTED`
`505 HTTP Version Not Supported`.
`I_AM_A_TEAPOT`
`418 I'm a teapot`.
`IM_USED`
`226 IM Used`.
`INSUFFICIENT_SPACE_ON_RESOURCE`
Deprecated.
See WebDAV Draft Changes
`INSUFFICIENT_STORAGE`
`507 Insufficient Storage`
`INTERNAL_SERVER_ERROR`
`500 Internal Server Error`.
`LENGTH_REQUIRED`
`411 Length Required`.
`LOCKED`
`423 Locked`.
`LOOP_DETECTED`
`508 Loop Detected`
`METHOD_FAILURE`
Deprecated.
See WebDAV Draft Changes
`METHOD_NOT_ALLOWED`
`405 Method Not Allowed`.
`MOVED_PERMANENTLY`
`301 Moved Permanently`.
`MOVED_TEMPORARILY`
Deprecated.
in favor of `FOUND` which will be returned from `HttpStatus.valueOf(302)`
`MULTI_STATUS`
`207 Multi-Status`.
`MULTIPLE_CHOICES`
`300 Multiple Choices`.
`NETWORK_AUTHENTICATION_REQUIRED`
`511 Network Authentication Required`.
`NO_CONTENT`
`204 No Content`.
`NON_AUTHORITATIVE_INFORMATION`
`203 Non-Authoritative Information`.
`NOT_ACCEPTABLE`
`406 Not Acceptable`.
`NOT_EXTENDED`
`510 Not Extended`
`NOT_FOUND`
`404 Not Found`.
`NOT_IMPLEMENTED`
`501 Not Implemented`.
`NOT_MODIFIED`
`304 Not Modified`.
`OK`
`200 OK`.
`PARTIAL_CONTENT`
`206 Partial Content`.
`PAYLOAD_TOO_LARGE`
`413 Payload Too Large`.
`PAYMENT_REQUIRED`
`402 Payment Required`.
`PERMANENT_REDIRECT`
`308 Permanent Redirect`.
`PRECONDITION_FAILED`
`412 Precondition failed`.
`PRECONDITION_REQUIRED`
`428 Precondition Required`.
`PROCESSING`
`102 Processing`.
`PROXY_AUTHENTICATION_REQUIRED`
`407 Proxy Authentication Required`.
`REQUEST_ENTITY_TOO_LARGE`
Deprecated.
in favor of `PAYLOAD_TOO_LARGE` which will be returned from `HttpStatus.valueOf(413)`
`REQUEST_HEADER_FIELDS_TOO_LARGE`
`431 Request Header Fields Too Large`.
`REQUEST_TIMEOUT`
`408 Request Timeout`.
`REQUEST_URI_TOO_LONG`
Deprecated.
in favor of `URI_TOO_LONG` which will be returned from `HttpStatus.valueOf(414)`
`REQUESTED_RANGE_NOT_SATISFIABLE`
`416 Requested Range Not Satisfiable`.
`RESET_CONTENT`
`205 Reset Content`.
`SEE_OTHER`
`303 See Other`.
`SERVICE_UNAVAILABLE`
`503 Service Unavailable`.
`SWITCHING_PROTOCOLS`
`101 Switching Protocols`.
`TEMPORARY_REDIRECT`
`307 Temporary Redirect`.
`TOO_EARLY`
`425 Too Early`.
`TOO_MANY_REQUESTS`
`429 Too Many Requests`.
`UNAUTHORIZED`
`401 Unauthorized`.
`UNAVAILABLE_FOR_LEGAL_REASONS`
`451 Unavailable For Legal Reasons`.
`UNPROCESSABLE_ENTITY`
`422 Unprocessable Entity`.
`UNSUPPORTED_MEDIA_TYPE`
`415 Unsupported Media Type`.
`UPGRADE_REQUIRED`
`426 Upgrade Required`.
`URI_TOO_LONG`
`414 URI Too Long`.
`USE_PROXY`
Deprecated.
due to security concerns regarding in-band configuration of a proxy
`VARIANT_ALSO_NEGOTIATES`
`506 Variant Also Negotiates`

## Method Summary

Modifier and Type
Method
Description
`String`
`getReasonPhrase()`
Return the reason phrase of this status code.
`boolean`
`is1xxInformational()`
Whether this status code is in the Informational class (`1xx`).
`boolean`
`is2xxSuccessful()`
Whether this status code is in the Successful class (`2xx`).
`boolean`
`is3xxRedirection()`
Whether this status code is in the Redirection class (`3xx`).
`boolean`
`is4xxClientError()`
Whether this status code is in the Client Error class (`4xx`).
`boolean`
`is5xxServerError()`
Whether this status code is in the Server Error class (`5xx`).
`boolean`
`isError()`
Whether this status code is in the Client or Server Error class
`static HttpStatus`
`resolve(int statusCode)`
Resolve the given status code to an `HttpStatus`, if possible.
`HttpStatus.Series`
`series()`
Return the HTTP status series of this status code.
`String`
`toString()`
Return a string representation of this status code.
`int`
`value()`
Return the integer value of this status code.
`static HttpStatus`
`valueOf(int statusCode)`
Return the `HttpStatus` enum constant with the specified numeric value.
`static HttpStatus`
`valueOf(String name)`
Returns the enum constant of this class with the specified name.
`static HttpStatus[]`
`values()`
Returns an array containing the constants of this enum class, in the order they are declared.

### Methods inherited from class java.lang.Enum

`clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.http.HttpStatusCode

`isSameCodeAs`

## Enum Constant Details

### CONTINUE

public static final HttpStatus CONTINUE
`100 Continue`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.2.1

### SWITCHING_PROTOCOLS

public static final HttpStatus SWITCHING_PROTOCOLS
`101 Switching Protocols`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.2.2

### PROCESSING

public static final HttpStatus PROCESSING
`102 Processing`.

See Also:
  - WebDAV

### EARLY_HINTS

public static final HttpStatus EARLY_HINTS
`103 Early Hints`.

Since:
  6.0.5
See Also:
  - An HTTP Status Code for Indicating Hints

### CHECKPOINT

@Deprecated(since="6.0.5") public static final HttpStatus CHECKPOINT
Deprecated.
in favor of `EARLY_HINTS` which will be returned from `HttpStatus.valueOf(103)`
`103 Checkpoint`.

See Also:
  - A proposal for supporting resumable POST/PUT HTTP requests in HTTP/1.0

### OK

public static final HttpStatus OK
`200 OK`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.3.1

### CREATED

public static final HttpStatus CREATED
`201 Created`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.3.2

### ACCEPTED

public static final HttpStatus ACCEPTED
`202 Accepted`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.3.3

### NON_AUTHORITATIVE_INFORMATION

public static final HttpStatus NON_AUTHORITATIVE_INFORMATION
`203 Non-Authoritative Information`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.3.4

### NO_CONTENT

public static final HttpStatus NO_CONTENT
`204 No Content`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.3.5

### RESET_CONTENT

public static final HttpStatus RESET_CONTENT
`205 Reset Content`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.3.6

### PARTIAL_CONTENT

public static final HttpStatus PARTIAL_CONTENT
`206 Partial Content`.

See Also:
  - HTTP/1.1: Range Requests, section 4.1

### MULTI_STATUS

public static final HttpStatus MULTI_STATUS
`207 Multi-Status`.

See Also:
  - WebDAV

### ALREADY_REPORTED

public static final HttpStatus ALREADY_REPORTED
`208 Already Reported`.

See Also:
  - WebDAV Binding Extensions

### IM_USED

public static final HttpStatus IM_USED
`226 IM Used`.

See Also:
  - Delta encoding in HTTP

### MULTIPLE_CHOICES

public static final HttpStatus MULTIPLE_CHOICES
`300 Multiple Choices`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.4.1

### MOVED_PERMANENTLY

public static final HttpStatus MOVED_PERMANENTLY
`301 Moved Permanently`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.4.2

### FOUND

public static final HttpStatus FOUND
`302 Found`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.4.3

### MOVED_TEMPORARILY

@Deprecated public static final HttpStatus MOVED_TEMPORARILY
Deprecated.
in favor of `FOUND` which will be returned from `HttpStatus.valueOf(302)`
`302 Moved Temporarily`.

See Also:
  - HTTP/1.0, section 9.3

### SEE_OTHER

public static final HttpStatus SEE_OTHER
`303 See Other`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.4.4

### NOT_MODIFIED

public static final HttpStatus NOT_MODIFIED
`304 Not Modified`.

See Also:
  - HTTP/1.1: Conditional Requests, section 4.1

### USE_PROXY

@Deprecated public static final HttpStatus USE_PROXY
Deprecated.
due to security concerns regarding in-band configuration of a proxy
`305 Use Proxy`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.4.5

### TEMPORARY_REDIRECT

public static final HttpStatus TEMPORARY_REDIRECT
`307 Temporary Redirect`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.4.7

### PERMANENT_REDIRECT

public static final HttpStatus PERMANENT_REDIRECT
`308 Permanent Redirect`.

See Also:
  - RFC 7238

### BAD_REQUEST

public static final HttpStatus BAD_REQUEST
`400 Bad Request`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.1

### UNAUTHORIZED

public static final HttpStatus UNAUTHORIZED
`401 Unauthorized`.

See Also:
  - HTTP/1.1: Authentication, section 3.1

### PAYMENT_REQUIRED

public static final HttpStatus PAYMENT_REQUIRED
`402 Payment Required`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.2

### FORBIDDEN

public static final HttpStatus FORBIDDEN
`403 Forbidden`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.3

### NOT_FOUND

public static final HttpStatus NOT_FOUND
`404 Not Found`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.4

### METHOD_NOT_ALLOWED

public static final HttpStatus METHOD_NOT_ALLOWED
`405 Method Not Allowed`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.5

### NOT_ACCEPTABLE

public static final HttpStatus NOT_ACCEPTABLE
`406 Not Acceptable`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.6

### PROXY_AUTHENTICATION_REQUIRED

public static final HttpStatus PROXY_AUTHENTICATION_REQUIRED
`407 Proxy Authentication Required`.

See Also:
  - HTTP/1.1: Authentication, section 3.2

### REQUEST_TIMEOUT

public static final HttpStatus REQUEST_TIMEOUT
`408 Request Timeout`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.7

### CONFLICT

public static final HttpStatus CONFLICT
`409 Conflict`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.8

### GONE

public static final HttpStatus GONE
`410 Gone`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.9

### LENGTH_REQUIRED

public static final HttpStatus LENGTH_REQUIRED
`411 Length Required`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.10

### PRECONDITION_FAILED

public static final HttpStatus PRECONDITION_FAILED
`412 Precondition failed`.

See Also:
  - HTTP/1.1: Conditional Requests, section 4.2

### PAYLOAD_TOO_LARGE

public static final HttpStatus PAYLOAD_TOO_LARGE
`413 Payload Too Large`.

Since:
  4.1
See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.11

### REQUEST_ENTITY_TOO_LARGE

@Deprecated public static final HttpStatus REQUEST_ENTITY_TOO_LARGE
Deprecated.
in favor of `PAYLOAD_TOO_LARGE` which will be returned from `HttpStatus.valueOf(413)`
`413 Request Entity Too Large`.

See Also:
  - HTTP/1.1, section 10.4.14

### URI_TOO_LONG

public static final HttpStatus URI_TOO_LONG
`414 URI Too Long`.

Since:
  4.1
See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.12

### REQUEST_URI_TOO_LONG

@Deprecated public static final HttpStatus REQUEST_URI_TOO_LONG
Deprecated.
in favor of `URI_TOO_LONG` which will be returned from `HttpStatus.valueOf(414)`
`414 Request-URI Too Long`.

See Also:
  - HTTP/1.1, section 10.4.15

### UNSUPPORTED_MEDIA_TYPE

public static final HttpStatus UNSUPPORTED_MEDIA_TYPE
`415 Unsupported Media Type`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.13

### REQUESTED_RANGE_NOT_SATISFIABLE

public static final HttpStatus REQUESTED_RANGE_NOT_SATISFIABLE
`416 Requested Range Not Satisfiable`.

See Also:
  - HTTP/1.1: Range Requests, section 4.4

### EXPECTATION_FAILED

public static final HttpStatus EXPECTATION_FAILED
`417 Expectation Failed`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.5.14

### I_AM_A_TEAPOT

public static final HttpStatus I_AM_A_TEAPOT
`418 I'm a teapot`.

See Also:
  - HTCPCP/1.0

### INSUFFICIENT_SPACE_ON_RESOURCE

@Deprecated public static final HttpStatus INSUFFICIENT_SPACE_ON_RESOURCE
Deprecated.
See WebDAV Draft Changes

### METHOD_FAILURE

@Deprecated public static final HttpStatus METHOD_FAILURE
Deprecated.
See WebDAV Draft Changes

### DESTINATION_LOCKED

@Deprecated public static final HttpStatus DESTINATION_LOCKED
Deprecated.
See WebDAV Draft Changes

### UNPROCESSABLE_ENTITY

public static final HttpStatus UNPROCESSABLE_ENTITY
`422 Unprocessable Entity`.

See Also:
  - WebDAV

### LOCKED

public static final HttpStatus LOCKED
`423 Locked`.

See Also:
  - WebDAV

### FAILED_DEPENDENCY

public static final HttpStatus FAILED_DEPENDENCY
`424 Failed Dependency`.

See Also:
  - WebDAV

### TOO_EARLY

public static final HttpStatus TOO_EARLY
`425 Too Early`.

Since:
  5.2
See Also:
  - RFC 8470

### UPGRADE_REQUIRED

public static final HttpStatus UPGRADE_REQUIRED
`426 Upgrade Required`.

See Also:
  - Upgrading to TLS Within HTTP/1.1

### PRECONDITION_REQUIRED

public static final HttpStatus PRECONDITION_REQUIRED
`428 Precondition Required`.

See Also:
  - Additional HTTP Status Codes

### TOO_MANY_REQUESTS

public static final HttpStatus TOO_MANY_REQUESTS
`429 Too Many Requests`.

See Also:
  - Additional HTTP Status Codes

### REQUEST_HEADER_FIELDS_TOO_LARGE

public static final HttpStatus REQUEST_HEADER_FIELDS_TOO_LARGE
`431 Request Header Fields Too Large`.

See Also:
  - Additional HTTP Status Codes

### UNAVAILABLE_FOR_LEGAL_REASONS

public static final HttpStatus UNAVAILABLE_FOR_LEGAL_REASONS
`451 Unavailable For Legal Reasons`.

Since:
  4.3
See Also:
  - An HTTP Status Code to Report Legal Obstacles

### INTERNAL_SERVER_ERROR

public static final HttpStatus INTERNAL_SERVER_ERROR
`500 Internal Server Error`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.6.1

### NOT_IMPLEMENTED

public static final HttpStatus NOT_IMPLEMENTED
`501 Not Implemented`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.6.2

### BAD_GATEWAY

public static final HttpStatus BAD_GATEWAY
`502 Bad Gateway`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.6.3

### SERVICE_UNAVAILABLE

public static final HttpStatus SERVICE_UNAVAILABLE
`503 Service Unavailable`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.6.4

### GATEWAY_TIMEOUT

public static final HttpStatus GATEWAY_TIMEOUT
`504 Gateway Timeout`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.6.5

### HTTP_VERSION_NOT_SUPPORTED

public static final HttpStatus HTTP_VERSION_NOT_SUPPORTED
`505 HTTP Version Not Supported`.

See Also:
  - HTTP/1.1: Semantics and Content, section 6.6.6

### VARIANT_ALSO_NEGOTIATES

public static final HttpStatus VARIANT_ALSO_NEGOTIATES
`506 Variant Also Negotiates`

See Also:
  - Transparent Content Negotiation

### INSUFFICIENT_STORAGE

public static final HttpStatus INSUFFICIENT_STORAGE
`507 Insufficient Storage`

See Also:
  - WebDAV

### LOOP_DETECTED

public static final HttpStatus LOOP_DETECTED
`508 Loop Detected`

See Also:
  - WebDAV Binding Extensions

### BANDWIDTH_LIMIT_EXCEEDED

public static final HttpStatus BANDWIDTH_LIMIT_EXCEEDED
`509 Bandwidth Limit Exceeded`

### NOT_EXTENDED

public static final HttpStatus NOT_EXTENDED
`510 Not Extended`

See Also:
  - HTTP Extension Framework

### NETWORK_AUTHENTICATION_REQUIRED

public static final HttpStatus NETWORK_AUTHENTICATION_REQUIRED
`511 Network Authentication Required`.

See Also:
  - Additional HTTP Status Codes

## Method Details

### values

public static HttpStatus[] values()
Returns an array containing the constants of this enum class, in the order they are declared.

Returns:
  an array containing the constants of this enum class, in the order they are declared

### valueOf

public static HttpStatus valueOf(String name)
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum class has no constant with the specified name
  `NullPointerException` - if the argument is null

### value

public int value()
Description copied from interface: `HttpStatusCode`
Return the integer value of this status code.

Specified by:
  `value` in interface `HttpStatusCode`

### series

public HttpStatus.Series series()
Return the HTTP status series of this status code.

See Also:
  - `HttpStatus.Series`

### getReasonPhrase

public String getReasonPhrase()
Return the reason phrase of this status code.

### is1xxInformational

public boolean is1xxInformational()
Description copied from interface: `HttpStatusCode`
Whether this status code is in the Informational class (`1xx`).

Specified by:
  `is1xxInformational` in interface `HttpStatusCode`
See Also:
  - RFC 2616

### is2xxSuccessful

public boolean is2xxSuccessful()
Description copied from interface: `HttpStatusCode`
Whether this status code is in the Successful class (`2xx`).

Specified by:
  `is2xxSuccessful` in interface `HttpStatusCode`
See Also:
  - RFC 2616

### is3xxRedirection

public boolean is3xxRedirection()
Description copied from interface: `HttpStatusCode`
Whether this status code is in the Redirection class (`3xx`).

Specified by:
  `is3xxRedirection` in interface `HttpStatusCode`
See Also:
  - RFC 2616

### is4xxClientError

public boolean is4xxClientError()
Description copied from interface: `HttpStatusCode`
Whether this status code is in the Client Error class (`4xx`).

Specified by:
  `is4xxClientError` in interface `HttpStatusCode`
See Also:
  - RFC 2616

### is5xxServerError

public boolean is5xxServerError()
Description copied from interface: `HttpStatusCode`
Whether this status code is in the Server Error class (`5xx`).

Specified by:
  `is5xxServerError` in interface `HttpStatusCode`
See Also:
  - RFC 2616

### isError

public boolean isError()
Description copied from interface: `HttpStatusCode`
Whether this status code is in the Client or Server Error class

Specified by:
  `isError` in interface `HttpStatusCode`
See Also:
  - RFC 2616
  - RFC 2616 (`4xx` or `5xx`).
  - `HttpStatusCode.is4xxClientError()`
  - `HttpStatusCode.is5xxServerError()`

### toString

public String toString()
Return a string representation of this status code.

Overrides:
  `toString` in class `Enum<HttpStatus>`

### valueOf

public static HttpStatus valueOf(int statusCode)
Return the `HttpStatus` enum constant with the specified numeric value.

Parameters:
  `statusCode` - the numeric value of the enum to be returned
Returns:
  the enum constant with the specified numeric value
Throws:
  `IllegalArgumentException` - if this enum has no constant for the specified numeric value

### resolve

@Nullable public static HttpStatus resolve(int statusCode)
Resolve the given status code to an `HttpStatus`, if possible.

Parameters:
  `statusCode` - the HTTP status code (potentially non-standard)
Returns:
  the corresponding `HttpStatus`, or `null` if not found
Since:
  5.0