303 See Other
Utilisation
Le code de statut 303 See Other est généralement renvoyé à la suite d’une requête POST, PUT ou DELETE. Le résultat de l’opération est consultable à une autre URL, et le client récupère la nouvelle ressource au moyen d’une requête GET vers le Location indiqué.
Remarque
Historiquement, de nombreux serveurs envoient 302 alors qu’ils veulent dire 303, et de nombreux clients traitent 302 comme un 303 en changeant la méthode de la requête en GET.
Impact SEO
Google classe 303 parmi les redirections temporaires, au même titre que 302 et 307. Googlebot suit la redirection mais considère 303 comme un signal faible indiquant que la cible est l’URL privilégiée.
Exemple
Le client demande la suppression d’une ressource précise. Le serveur envoie 303 See Other parce que l’emplacement d’origine n’héberge plus de ressource consultable, et il pointe vers une page de confirmation située au nouveau Location.
Requête
DELETE /tasks/314 HTTP/1.1
Host: example.com
Réponse
HTTP/1.1 303 See Other
Location: http://example.com/confirmation/delete.html
303 face à 307
303 et 307 sont tous deux des redirections temporaires, mais le traitement de la méthode diffère. Une réponse 303 change la méthode de la requête en GET (ou HEAD), quelle que soit la méthode d’origine. Une réponse 307 conserve la méthode et le corps d’origine. Utilisez 303 après un POST lorsque le client doit récupérer une page de résultat. Utilisez 307 lorsque la requête exacte doit être répétée au nouvel emplacement.
Références de code
.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