303 See Other

When the result of a request is viewable at a different URI, the server responds with 303 See Other. The Location header links to an alternative page, such as an upload confirmation message, rather than the recently uploaded resource. The method for the follow-up request is GET or HEAD.

Usage

The 303 See Other status code is typically returned after a POST, PUT, or DELETE request. The result of the operation is viewable at a different URL, and the client fetches the new resource with a GET request to the specified Location.

Note

Many servers historically send 302 when they mean 303, and many clients treat 302 as 303 by changing the request method to GET.

SEO impact

Google classifies 303 as a temporary redirect alongside 302 and 307. Googlebot follows the redirect but treats 303 as a weak signal the target is the preferred URL.

Example

The client requests deletion of a specific resource. The server sends 303 See Other because the original location no longer holds a viewable resource and points to a confirmation page at the new Location.

Request

DELETE /tasks/314 HTTP/1.1
Host: www.example.re

Response

HTTP/1.1 303 See Other
Location: http://www.example.re/confirmation/delete.html

303 vs 307

Both 303 and 307 are temporary redirects, but the method handling differs. A 303 response changes the request method to GET (or HEAD), regardless of the original method. A 307 response preserves the original method and body. Use 303 after a POST when the client needs to retrieve a result page. Use 307 when the exact request must repeat at the new location.

Code references

.NET

HttpStatusCode.SeeOther

Rust

http::StatusCode::SEE_OTHER

Rails

:see_other

Go

http.StatusSeeOther

Symfony

Response::HTTP_SEE_OTHER

Python3.5+

http.HTTPStatus.SEE_OTHER

Java

java.net.HttpURLConnection.HTTP_SEE_OTHER

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_SEE_OTHER

Angular

@angular/common/http/HttpStatusCode.SeeOther

See also

Last updated: April 4, 2026