308 редирект

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

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

В интернет-маркетинге и SEO 308 редирект используется реже, чем 301, но может быть полезен для API и обработки форм, где важно сохранить метод POST при перенаправлении.

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

[править]

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

HTTP/1.1 308 Permanent Redirect
Location: https://example.com/new-page

Отличие от 301

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

Данное различие критично для форм, отправляемых методом POST. Если форма отправляется на старый URL, а там настроен 301, данные могут быть утеряны или обработаны неверно. 308 гарантирует корректную передачу данных.

Отличие от 307

[править]
  • 307 - временное перенаправление с сохранением метода.
  • 308 - постоянное перенаправление с сохранением метода.

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

[править]

308 редирект применяется в специфических ситуациях, где критично сохранение метода запроса при постоянном перемещении ресурса.

Перенос API-эндпоинтов

[править]

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

Обработка форм

[править]

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

Загрузка файлов

[править]

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

Приложения с REST API

[править]

В REST-архитектуре важно сохранять методы запросов (GET, POST, PUT, DELETE) при перенаправлениях для соблюдения идемпотентности и семантики операций.

Влияние на SEO

[править]

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

Передача веса

[править]

Как и 301, 308 редирект передаёт большую часть ссылочного веса со старой страницы на новую.

Индексация

[править]

Поисковые системы воспринимают 308 как постоянное перенаправление и со временем заменяют старый URL на новый в индексе.

Поддержка браузерами и поисковиками

[править]

Все современные браузеры и поисковые системы поддерживают 308 редирект, однако 301 остаётся более распространённым и привычным для большинства задач.

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

[править]

Способ настройки зависит от типа веб-сервера.

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

В Nginx директива `permanent` по умолчанию означает 301, поэтому для явного указания 308 лучше использовать `return`:

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

Когда использовать 301 вместо 308

[править]
  • Для обычных веб-страниц, где метод запроса не важен (например, при смене домена или структуры URL).
  • Если нет уверенности в полной поддержке 308 старыми браузерами или прокси-серверами (хотя на практике это встречается редко).
  • Для большинства стандартных SEO-задач, где 301 является общепринятым стандартом.

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

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

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

[править]