Was ist der Unterschied zwischen Redirect()
und RedirectPermanent()
. Ich hatte einige Artikel gelesen, aber ich verstehe nicht , wann müssen wir nutzen Redirect()
und RedirectPermanent()
. Können Sie ein Beispiel zeigen?
quelle
Was ist der Unterschied zwischen Redirect()
und RedirectPermanent()
. Ich hatte einige Artikel gelesen, aber ich verstehe nicht , wann müssen wir nutzen Redirect()
und RedirectPermanent()
. Können Sie ein Beispiel zeigen?
Der grundlegende Unterschied zwischen beiden besteht darin, dass RedirectPermanent
dem Browser ein HTTP 301
Statuscode (dauerhaft verschoben) gesendet Redirect
wird, während ein HTTP 302
Statuscode gesendet wird.
Verwenden Sie RedirectPermanent
diese Option, wenn die Ressource dauerhaft verschoben wurde und an ihrem vorherigen Speicherort nicht mehr verfügbar ist. Die meisten Browser speichern diese Antwort im Cache und führen die Umleitung automatisch durch, ohne die ursprüngliche Ressource erneut anzufordern.
Verwenden Sie Redirect
diese Option, wenn die Ressource in Zukunft möglicherweise am selben Speicherort (URL) verfügbar ist.
Beispiel
Angenommen, Sie haben Benutzer in Ihrem System. Sie haben auch die Möglichkeit, vorhandene Benutzer zu löschen. Ihre Website verfügt über eine Ressource /user/{userid}
, die die Details eines bestimmten Benutzers anzeigt. Wenn der Benutzer gelöscht wurde, müssen Sie zur /user/does-not-exist
Seite umleiten . In diesem Fall:
Wenn der Benutzer nie wieder wiederhergestellt wird, sollten Sie ihn verwenden, RedirectPermanent
damit der Browser /user/does-not-exist
bei nachfolgenden Anforderungen direkt darauf zugreifen kann, auch wenn die URL auf verweist /user/{userid}
.
Wenn der Benutzer in Zukunft wiederhergestellt werden kann, sollten Sie einen regulären Benutzer verwenden Redirect
.
RedirectPermanent
dies beim Debuggen ärgerlich sein kann, da beim zweiten Klicken die Aktion des Controllers übersprungen wird und in der ursprünglichen Funktion kein Haltepunkt erreicht wird, wenn sie an eine andere Stelle umgeleitet wird. Es sei denn, Sie leeren Ihren Cache vor jedem Klick.RedirectPermanent
ist 301 undRedirect
ist 302 Statuscodequelle
Sie senden unterschiedliche Antwortcodes an den Browser. 301 ist eine permanente Weiterleitung, 302 eine temporäre. Der Endeffekt ist der gleiche, aber wenn der Client Links indizieren möchte (der häufigste Client, der dies tut, sind Suchmaschinen), weist eine permanente Umleitung den Client an, seine Datensätze zu aktualisieren, um den alten Link zu ignorieren und den neuen zu verwenden . Eine temporäre Umleitung teilt dem Client mit, dass die Seite derzeit umgeleitet wird, der alte Link jedoch nicht aus seiner Indizierungsdatenbank gelöscht werden soll
quelle