307 редирект

Материал из Энциклопедия интернет-маркетинга MarketWiki

307 редирект (временное перенаправление с сохранением метода) - HTTP-статус, указывающий, что запрашиваемая страница временно доступна по другому адресу, при этом метод запроса (GET, POST, PUT и др.) должен сохраняться. 307 является более современной альтернативой 302-редиректа для случаев, когда важно не изменять тип запроса.

В интернет-маркетинге и SEO 307 редирект используется в ситуациях, аналогичных 302, но с гарантией сохранения метода запроса. Это особенно важно для API и обработки форм.

Как работает 307 редирект

[править]

При получении статуса 307 браузер или поисковый робот повторяет тот же метод запроса (GET, POST, PUT) на новый URL.

HTTP/1.1 307 Temporary Redirect
Location: https://example.com/temp-page

Отличие от 302

[править]
  • 302 - также временное перенаправление, но метод запроса может быть изменён на GET (например, POST-запрос с данными формы может быть перенаправлен как GET-запрос).
  • 307 - метод запроса сохраняется неизменным. Это гарантирует, что данные, отправленные методом POST, будут переданы на новый URL также методом POST.

Отличие от 308

[править]
  • 307 - временное перенаправление с сохранением метода.
  • 308 - постоянное перенаправление с сохранением метода (аналог 301 для случаев с сохранением метода).

Когда использовать 307 редирект

[править]

307 редирект применяется в ситуациях, где критически важно сохранить метод запроса.

Временное перемещение API-эндпоинтов

[править]

При временной смене адресов API-методов важно сохранять метод запроса, чтобы не нарушить работу интеграций.

Временная обработка форм

[править]

Если URL, на который отправляется форма, временно меняется, 307 гарантирует, что данные будут отправлены правильным методом (обычно POST) на новый адрес.

Временная загрузка файлов

[править]

Для сохранения метода POST при временной загрузке файлов на новый адрес.

Технические работы

[править]

Во время обновления API или обработчиков форм можно временно перенаправлять запросы на резервные эндпоинты.

Влияние на SEO

[править]

С точки зрения SEO, 307 редирект работает аналогично 302.

Сохранение веса

[править]

Поскольку 307 сигнализирует о временном перемещении, поисковые системы оставляют ссылочный вес на исходной странице.

Индексация

[править]

Поисковые системы продолжают держать в индексе старый URL и периодически проверяют, не вернулась ли страница на место.

Длительное использование

[править]

Если 307 редирект используется слишком долго (месяцами), поисковые системы могут начать воспринимать его как постоянный, однако это не гарантировано и зависит от конкретного алгоритма.

Как настроить 307 редирект

[править]

Способ настройки зависит от типа веб-сервера или используемой технологии.

RewriteRule ^old-api/endpoint$ /new-api/endpoint [R=307,L]
rewrite ^/old-api/endpoint$ /new-api/endpoint redirect;

Или с помощью return:

location /old-api/endpoint {
    return 307 /new-api/endpoint;
}
header("HTTP/1.1 307 Temporary Redirect");
header("Location: /new-api/endpoint");
exit();

В Express (Node.js)

[править]
res.redirect(307, '/new-api/endpoint');

Когда использовать 302 вместо 307

[править]
  • Для обычных веб-страниц, где метод запроса не важен (например, при перенаправлении пользователей на временную заглушку).
  • Когда нет уверенности в полной поддержке 307 старыми браузерами или прокси-серверами (хотя на практике это встречается редко).
  • Для большинства стандартных временных перенаправлений пользователей, где разница между 302 и 307 не имеет значения.

Типичные ошибки

[править]
  • Использование 307 для страниц, на которые ведут ссылки из социальных сетей и мессенджеров - там метод запроса всегда GET, поэтому разница с 302 несущественна, а использование 307 избыточно.
  • Игнорирование вопроса поддержки старыми браузерами (хотя это крайне редкая ситуация).
  • Путаница между 307 (временный) и 308 (постоянный).
  • Отсутствие корректной обработки 307 в старых библиотеках и API-клиентах.

Связанные термины

[править]