У чому різниця між 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 - тимчасове. Кінцевий ефект той самий, але якщо клієнт хоче індексувати посилання (найпоширенішим клієнтом, який це робить, будуть пошукові системи), то постійне переспрямування повідомляє клієнту оновити свої записи, щоб ігнорувати старе посилання та почати використовувати нове . Temp redirect повідомляє клієнтові, що сторінка наразі переспрямовує, але не видаляє старе посилання з бази даних індексації