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