Junior
115
questionbank

Как работает перенаправление (redirect) в HTTP?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Перенаправление в 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.

Процесс:

  1. Клиент отправляет запрос к URL A.
  2. Сервер, вместо отправки содержимого URL A, возвращает HTTP-ответ с кодом состояния перенаправления (например, 301) и заголовком Location, содержащим новый URL (URL B).
  3. Клиент (браузер) автоматически извлекает URL B из заголовка Location и отправляет новый запрос к URL B.
  4. Сервер обрабатывает запрос к URL B и возвращает соответствующий ответ (например, 200 OK).

В Node.js с использованием Express.js перенаправление выполняется методом res.redirect():

javascript

Заголовки:

Заголовок HTTPЗначениеОписание
Location/new-path или https://example.com/Указывает новый URL для перенаправления.

Перенаправления используются для исправления опечаток в URL, перемещения веб-сайтов, обеспечения HTTPS, слияния страниц и URL-шоутенинга.