303 See Other
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.
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: example.com
Response
HTTP/1.1 303 See Other
Location: http://example.com/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