Visual RFC.
ALL RFCs / RFC 6585
Read the RFC ↗

RFC 6585 / START HERE

HTTP status extensions, before the details

Additional HTTP Status Codes: HTTP means Hypertext Transfer Protocol; 428, 429, 431 and 511 are response status numbers.

An HTTP status tells a client what happened to its request. RFC 6585 adds four specific responses for conditional updates, too many requests, oversized request headers, and network access portals.

The idea in one picture

  1. Send an HTTP request

  2. Read the specific status

  3. Choose a suitable next step

A simplified picture of the idea; the chapters explain the actual mechanisms.

Why it exists

These responses help clients distinguish problems that need different next steps. Repeating an unchanged request is not always useful: the client may need a precondition, a wait, fewer header bytes, or separate network access.

A familiar example

An editing app can receive 428 when a server requires a condition before saving. An API can use 429 to explain a rate limit. These status codes are optional, so clients cannot assume every server will send them or guarantee that a retry succeeds.

Helpful background

You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.

What you’ll learn next

Begin with chapter one, or choose a topic.

  1. 428: Require a conditionA server asks for a conditional update instead of letting an unconditional write overwrite someone else’s work.
  2. 429: Explain a rate limitA response explains that the user sent too many requests; an optional Retry-After field can suggest a waiting period.
  3. 431: Reduce request headersA server rejects oversized request header fields; a smaller request can be submitted again.
  4. 511: Recognize a network portalAn intercepting network proxy asks the client to obtain network access; the response is not a login request from the intended website.
Start with chapter one →

This introduction explains RFC 6585 (2012). Read the original RFC ↗