303 See Other
Применение
Код состояния 303 See Other обычно возвращается после запроса POST, PUT или DELETE. Результат операции доступен для просмотра по другому URL, и клиент получает новый ресурс GET-запросом по адресу, указанному в Location.
Примечание
Исторически многие серверы отправляют 302 там, где подразумевают 303, а многие клиенты обрабатывают 302 как 303, меняя метод запроса на GET.
Влияние на SEO
Google относит 303 к временным перенаправлениям наряду с 302 и 307. Googlebot следует перенаправлению, но считает 303 слабым сигналом того, что целевой URL является предпочтительным.
Пример
Клиент запрашивает удаление конкретного ресурса. Сервер отправляет 303 See Other, поскольку по исходному адресу больше нет ресурса для просмотра, и указывает на страницу подтверждения в новом Location.
Запрос
DELETE /tasks/314 HTTP/1.1
Host: example.com
Ответ
HTTP/1.1 303 See Other
Location: http://example.com/confirmation/delete.html
303 против 307
И 303, и 307 являются временными перенаправлениями, но обработка метода у них различается. Ответ 303 меняет метод запроса на GET (или HEAD) независимо от исходного метода. Ответ 307 сохраняет исходный метод и тело. Используйте 303 после POST, когда клиенту нужно получить страницу с результатом. Используйте 307, когда по новому адресу необходимо повторить запрос в точности.
Примеры кода
.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