Проверяет понимание разницы между постоянным и временным редиректами HTTP и механизма определения целевого URL браузером.
HTTP-статусы 301 (Moved Permanently) и 302 (Found) оба сообщают клиенту, что запрошенный ресурс доступен по другому URL. Разница в семантике: 301 говорит, что перемещение постоянное, а 302 — временное. Это влияет на поведение браузеров, поисковых роботов и кэширующих прокси.
В ответе на запрос сервер отправляет заголовок Location, содержащий новый URL. Браузер автоматически выполняет новый запрос по этому адресу. Например:
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-pageПосле получения такого ответа браузер переходит на https://example.com/new-page.
Настройка 301 в Express:
app.get('/old', (req, res) => {
res.redirect(301, '/new');
});Настройка 302 в Express:
app.get('/temporary', (req, res) => {
res.redirect(302, '/new');
});Поисковые системы при 301 переносят вес страницы на новый адрес и обновляют индекс. При 302 они продолжают считать старый адрес основным. Браузеры и прокси могут кэшировать 301-ответы, но обычно не кэшируют 302 без явных заголовков кэширования.
Используйте 301 для постоянных перемещений страниц (смена домена, реструктуризация URL), а 302 — для временных перенаправлений (A/B-тесты, временные акции). Правильный выбор статуса критичен для SEO и корректного поведения клиентов.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию