В чем разница между Redirect() и RedirectPermanent(). Я прочитал несколько статей, но я не понимаю, когда мы должны использовать Redirect() и RedirectPermanent(). Можете ли вы показать примеры.
Redirect() vs RedirectPermanent() в ASP.NET MVC
Ответ 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.
Ответ 2
RedirectPermanent - 301, а Redirect - код состояния 302
Ответ 3
Они отправляют разные коды ответов в браузер. 301 - постоянная переадресация, 302 - временная. Конечный эффект одинаков, но если клиент хочет индексировать ссылки (наиболее распространенным клиентом, который делает это, будут поисковые системы), то постоянное перенаправление сообщает клиенту обновлять свои записи, чтобы игнорировать старую ссылку и начать использовать новую, Временное перенаправление сообщает клиенту, что страница перенаправляется на данный момент, но не удаляет старую ссылку из базы данных индексирования