303

See Other

3xx Redirection

Back to list

Server perspective

Use 303 when the original request succeeded or was accepted, but the client should retrieve a different resource next with GET or HEAD.

When to use

  • Return 303 for post/redirect/get flows after form submissions or write operations
  • Use it when the redirect target is an indirect result, confirmation page, or status resource

How to respond

  • Include a Location header naming the retrieval URI
  • Design the target resource to be safely fetched with GET or HEAD

Headers to consider

  • Location

Response body

  • A short explanatory body is optional, but the redirect target should be unambiguous from Location

Server-side pitfalls

  • Do not use 303 when the redirected request must keep the original method
  • Do not confuse 303 with a generic temporary redirect; its value is the forced switch to retrieval semantics

Examples

Redirect after purchase submission

Request:POST /checkout
Response:303 See Other with Location: /orders/123/confirmation

The server avoids duplicate purchase submission by sending the browser to a safe result page.

References

Related 3xx Redirection Codes