Redirect()との違いは何ですかRedirectPermanent()。Redirect()いくつかの記事を読んだことがありますが、いつandを使用する必要があるのか わかりませんRedirectPermanent()。例を示していただけますか。
3 に答える
2 つの基本的な違いはRedirectPermanent、ブラウザーにHTTP 301(Moved Permanently) ステータス コードRedirectを送信するのに対し、ブラウザーはステータス コードを送信するHTTP 302ことです。
RedirectPermanentリソースが完全に移動され、以前の場所にアクセスできなくなる場合に使用します。ほとんどのブラウザーは、この応答をキャッシュし、元のリソースを再度要求することなく自動的にリダイレクトを実行します。
Redirectリソースが将来同じ場所 (URL) で利用可能になる可能性がある場合に使用します。
例
システムにユーザーがいるとしましょう。既存のユーザーを削除するオプションもあります。Web サイトには/user/{userid}、特定のユーザーの詳細を表示するリソースがあります。ユーザーが削除されている場合は、ページにリダイレクトする必要があり/user/does-not-existます。この場合:
ユーザーが二度と復元されない場合は、 を使用して、URL が を指していても、後続のリクエストでRedirectPermanentブラウザーが直接アクセスできるようにする必要があります。/user/does-not-exist/user/{userid}
ユーザーが将来復元される可能性がある場合は、通常のRedirect.
RedirectPermanent301 およびRedirect302 ステータス コード
これらは、異なる応答コードをブラウザーに送信します。301 は永続的なリダイレクトで、302 は一時的なリダイレクトです。最終的な効果は同じですが、クライアントがリンクのインデックスを作成したい場合 (これを行う最も一般的なクライアントは検索エンジンです)、永続的なリダイレクトにより、古いリンクを無視して新しいリンクの使用を開始するようにレコードを更新するようにクライアントに指示されます。 . 一時リダイレクトは、ページが現在リダイレクト中であることをクライアントに伝えますが、インデックス データベースから古いリンクを削除することはありません。