308-редирект — это HTTP-статус, который указывает, что запрашиваемый ресурс был постоянно перемещен на новый URL. В отличие от более известного 301-редиректа, 308 гарантирует сохранение метода и тела запроса, что делает его особенно полезным в определенных сценариях.
Как работает 308-редирект?
- Клиент отправляет запрос на старый URL.
- Сервер отвечает статусом 308 и указывает новый URL в заголовке Location.
- Клиент перенаправляет запрос на новый адрес, сохраняя метод и данные исходного запроса (например, POST).
Чем отличается от 301-редиректа?
- Сохранение метода запроса – 301 может преобразовывать метод запроса (например, с POST на GET), тогда как 308 сохраняет его неизменным.
- Явное поведение – 308 был создан для устранения неоднозначностей, связанных с обработкой 301-редиректа различными клиентами.
Преимущества
- Постоянное перенаправление – подходит для случаев, когда URL меняется навсегда.
- Сохранение данных – важно для запросов с методами POST, PUT и другими, которые требуют передачи тела запроса.
- SEO-дружественность – поисковые системы воспринимают 308 как сигнал о постоянном перемещении страницы, что помогает сохранить ее позиции в выдаче.
Пример HTTP-заголовка
HTTP/1.1 308 Permanent Redirect
Location: https://example.com/new-url
Когда использовать?
- Для постоянной миграции URL, особенно когда важна сохранность данных запроса.
- При переносе API-эндпоинтов, где используются методы POST или PUT.
- В сценариях, где требуется строгая и предсказуемая обработка перенаправлений.
Итог
308-редирект — это современный и более безопасный аналог 301-редиректа, который сохраняет метод и данные запроса. Он идеально подходит для постоянных изменений URL, особенно в сложных веб-приложениях и API.