The server redirects the client to a different URI using a GET request, typically after a POST form submission.
The 303 See Other status code tells the client that the response to the request can be found at a different URI and should be retrieved using a GET method. Unlike 301 or 302, the 303 explicitly changes the request method to GET regardless of what the original method was. This makes it the correct choice for redirecting after POST form submissions.
A 303 redirect most commonly occurs as part of the Post-Redirect-Get (PRG) pattern. After a user submits a form via POST, the server processes the data, then responds with a 303 redirect pointing to a confirmation or results page. The browser follows the redirect using GET, which means refreshing the resulting page won't re-submit the form.
This pattern solves the classic "double submission" problem where users accidentally submit forms twice by refreshing the page or clicking the back button. The 303 ensures the browser's history contains a safe GET request rather than a repeatable POST.
Location header must contain the full or relative URI the client should follow. Ensure it points to a valid, accessible resource.POST /orders HTTP/1.1 Host: shop.example.com Content-Type: application/x-www-form-urlencoded product=widget&qty=2&payment=card
HTTP/1.1 303 See Other Location: /orders/confirmation?id=ord_789
GET /orders/confirmation?id=ord_789 HTTP/1.1 Host: shop.example.com
Monitor redirect chains, detect broken links, and ensure your forms redirect correctly.
Start Free Monitoring