303 See Other HTTP Status Code

Description

HTTP status code 303, known as "See Other," is a redirection status code indicating that the requested resource can be found at a different URI (Uniform Resource Identifier) using the GET method. When a web server responds with a 303 status code, it is instructing the client (usually a web browser) to make a separate GET request to the specified URI. This is particularly useful in situations where a POST request to a resource results in a redirection to a new resource or page, avoiding the re-submission of the form data if the user refreshes the new page.

For example, after submitting a form on a website, the server might respond with a 303 status code and redirect the user to a confirmation page or another relevant resource. This prevents the form from being resubmitted if the user refreshes the confirmation page.

The main difference between 303 "See Other" and other redirection status codes, like 301 "Moved Permanently" or 302 "Found", is the explicit indication that the client should use the GET method to access the resource at the new URI, regardless of the original request method. This makes the 303 status code particularly useful for web applications that perform operations (like database updates) in response to a POST request and then want to redirect the user to a new page using a GET request, ensuring a cleaner and safer user experience.

Status

HTTP
303 See Other

Common Causes

Here are the primary causes or reasons for a web server to issue a 303 status code:

  1. Resource has been replaced: When the resource requested by the client has been replaced by another resource at a different URL, the server can use the 303 status code to redirect the client to this new URL.

  2. Method change after POST: It is commonly used in response to a POST request. After receiving a POST request and processing it, if the server wants the client to get a (usually new) resource without re-submitting the form data, it will respond with a 303 status code. This ensures that refreshing or bookmarking the result does not attempt to re-submit the POST request. Instead, the client is redirected to a GET request for the specified resource.

  3. Explicit redirection for confirmation: In situations where a submission has been processed (like form submission or data upload) and the server wants to redirect the client to a confirmation or result page, a 303 status code can be used. This is to prevent the form submission from being accidentally repeated.

  4. Implementing the Post/Redirect/Get pattern: The 303 status code is an integral part of the Post/Redirect/Get (PRG) web development pattern, which prevents duplicate form submissions and ensures web applications behave correctly when the user uses the browser's navigation buttons.

  5. Temporary responses: It can also be used to redirect the client to a temporary status message or result page while the final result or resource is not yet ready or available.

  6. Indicating the preferred response format: Sometimes, a 303 response is used to redirect a client to the same resource but in a different format, as indicated by the Accept header in the client's request.

In summary, the 303 status code is primarily used for redirection following a form submission or when the server wants to direct the client to access a resource at a different URL, especially ensuring that the subsequent request is made using the GET method, regardless of the original request method.

Browser Support

The following table will show you the current browser support for the 303 See Other HTTP status code.

Desktop
Edge Chrome Firefox Opera Safari
YesYesYesYesYes
Tablets / Mobile
Chrome Firefox Opera Safari Samsung Webview
YesYesYesYesYesYes

Last updated by CSSPortal on: 31st March 2024