HTTPQUERY
Русский

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