303 See Other

The result of the request is at another URL that should be fetched with GET, whatever method was originally used.

Status

HTTP/1.1 303 See Other

Details

303 is the post-redirect-get pattern in protocol form. A POST creates or updates something, the server answers 303 with the location of the result, and the client fetches it with GET. Refreshing the resulting page is then harmless because it repeats a GET rather than the original POST.

Unlike 302, the method rewrite is required rather than tolerated, which makes 303 the correct choice whenever you deliberately want the follow-up request to be a GET.

Headers

Common causes

How to fix it

As the client

As the server

Examples

POST /orders HTTP/1.1
Host: shop.example.com
Content-Type: application/x-www-form-urlencoded

sku=ABC&qty=2

HTTP/1.1 303 See Other
Location: /orders/5521/confirmation

Specifications

RFC 9110 §15.4.4

See also