Перенаправление в HTTP — это механизм, при котором веб-сервер сообщает клиенту (браузеру), что запрошенный ресурс перемещен на другой URL. Клиент затем автоматически выполняет новый запрос по указанному адресу. Основные коды состояния HTTP для перенаправления:
- 301 Moved Permanently: Ресурс был окончательно перемещен. Клиенту следует использовать новый URL для будущих запросов. Поисковые системы передают ссылочный вес.
- 302 Found (ранее "Moved Temporarily"): Ресурс временно доступен по другому адресу. Клиенту следует продолжать использовать исходный URL для будущих запросов. Поисковые системы обычно не передают ссылочный вес.
- 303 See Other: Ответ на запрос, обычно POST, предписывающий клиенту получить ресурс по другому URL с использованием метода GET.
- 307 Temporary Redirect: Аналогичен 302, но не позволяет сменить метод HTTP (например, POST остается POST).
- 308 Permanent Redirect: Аналогичен 301, но не позволяет сменить метод HTTP.
Процесс:
- Клиент отправляет запрос к URL A.
- Сервер, вместо отправки содержимого URL A, возвращает HTTP-ответ с кодом состояния перенаправления (например, 301) и заголовком
Location, содержащим новый URL (URL B).
- Клиент (браузер) автоматически извлекает URL B из заголовка
Location и отправляет новый запрос к URL B.
- Сервер обрабатывает запрос к URL B и возвращает соответствующий ответ (например, 200 OK).
В Node.js с использованием Express.js перенаправление выполняется методом res.redirect():
javascript
Заголовки:
| Заголовок HTTP | Значение | Описание |
|---|
Location | /new-path или https://example.com/ | Указывает новый URL для перенаправления. |
Перенаправления используются для исправления опечаток в URL, перемещения веб-сайтов, обеспечения HTTPS, слияния страниц и URL-шоутенинга.