Ответ 1
Основное различие между ними состоит в том, что RedirectPermanent
отправляет браузеру код статуса HTTP 301
(перемещенный постоянный), тогда как Redirect
отправит код состояния HTTP 302
.
Используйте RedirectPermanent
, если ресурс был перемещен навсегда и больше не будет доступен в предыдущем местоположении. Большинство браузеров кэширует этот ответ и автоматически выполняет перенаправление без повторного запроса исходного ресурса.
Используйте Redirect
, если ресурс может быть доступен в том же месте (URL) в будущем.
Пример
Скажем, что у вас есть пользователи в вашей системе. У вас также есть возможность удалить существующих пользователей. На вашем веб-сайте есть ресурс /user/{userid}
, который отображает детали данного пользователя. Если пользователь был удален, вы должны перенаправить на страницу /user/does-not-exist
. В этом случае:
Если пользователь снова будет никогда, вы должны использовать RedirectPermanent
, чтобы браузер мог перейти непосредственно к /user/does-not-exist
в последующих запросах, даже если URL указывает на /user/{userid}
.
Если пользователь может не удаляться в будущем, вы должны использовать обычный Redirect
.