Additional HTTP Status Codes
RFC 6585
Document | Type |
RFC - Proposed Standard
(April 2012; No errata)
Updates RFC 2616
Was draft-nottingham-http-new-status (individual in app area)
|
|
---|---|---|---|
Last updated | 2015-10-14 | ||
Stream | IETF | ||
Formats | plain text html pdf htmlized bibtex | ||
Reviews | |||
Stream | WG state | (None) | |
Document shepherd | No shepherd assigned | ||
IESG | IESG state | RFC 6585 (Proposed Standard) | |
Consensus Boilerplate | Unknown | ||
Telechat date | |||
Responsible AD | Barry Leiba | ||
Send notices to | stpeter@stpeter.im |
Internet Engineering Task Force (IETF) M. Nottingham Request for Comments: 6585 Rackspace Updates: 2616 R. Fielding Category: Standards Track Adobe ISSN: 2070-1721 April 2012 Additional HTTP Status Codes Abstract This document specifies additional HyperText Transfer Protocol (HTTP) status codes for a variety of common situations. Status of This Memo This is an Internet Standards Track document. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6585. Copyright Notice Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Nottingham & Fielding Standards Track [Page 1] RFC 6585 Additional HTTP Status Codes April 2012 Table of Contents 1. Introduction ....................................................2 2. Requirements ....................................................2 3. 428 Precondition Required .......................................2 4. 429 Too Many Requests ...........................................3 5. 431 Request Header Fields Too Large .............................4 6. 511 Network Authentication Required .............................4 7. Security Considerations .........................................6 8. IANA Considerations .............................................7 9. References ......................................................7 Appendix A. Acknowledgements .......................................9 Appendix B. Issues Raised by Captive Portals .......................9 1. Introduction This document specifies additional HTTP [RFC2616] status codes for a variety of common situations, to improve interoperability and avoid confusion when other, less precise status codes are used. Note that these status codes are optional; servers cannot be required to support them. However, because clients will treat unknown status codes as a generic error of the same class (e.g., 499 is treated as 400 if it is not recognized), they can be safely deployed by existing servers (see [RFC2616] Section 6.1.1 for more information). 2. Requirements The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 3. 428 Precondition Required The 428 status code indicates that the origin server requires the request to be conditional. Its typical use is to avoid the "lost update" problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict. By requiring requests to be conditional, the server can assure that clients are working with the correct copies. Responses using this status code SHOULD explain how to resubmit the request successfully. For example: HTTP/1.1 428 Precondition Required Content-Type: text/html Nottingham & Fielding Standards Track [Page 2] RFC 6585 Additional HTTP Status Codes April 2012 <html> <head> <title>Precondition Required</title> </head> <body> <h1>Precondition Required</h1> <p>This request is required to be conditional; try using "If-Match".</p> </body> </html> Responses with the 428 status code MUST NOT be stored by a cache. 4. 429 Too Many Requests The 429 status code indicates that the user has sent too many requests in a given amount of time ("rate limiting"). The response representations SHOULD include details explaining the condition, and MAY include a Retry-After header indicating how longShow full document text