Quelle est la différence entre Redirect()
et RedirectPermanent()
. J'avais lu quelques articles, mais je ne comprends pas quand nous devons utiliser Redirect()
et RedirectPermanent()
. Pouvez-vous montrer un morceau d'exemple.
Réponses
Trop de publicités?La différence fondamentale entre les deux est la suivante RedirectPermanent
envoie au navigateur un HTTP 301
(Moved Permanently) code d'état alors que Redirect
enverra un HTTP 302
code de statut.
Utilice RedirectPermanent
si la ressource a été déplacée de façon permanente et ne sera plus accessible à son ancien emplacement. La plupart des navigateurs mettront cette réponse en cache et effectueront la redirection automatiquement sans avoir à redemander la ressource d'origine.
Utilice Redirect
si la ressource peut être disponible au même endroit (URL) dans le futur.
Exemple
Disons que vous avez des utilisateurs dans votre système. Vous avez également la possibilité de supprimer des utilisateurs existants. Votre site Web dispose d'une ressource /user/{userid}
qui affiche les détails d'un utilisateur donné. Si l'utilisateur a été supprimé, vous devez vous rediriger vers la page de l'utilisateur. /user/does-not-exist
page. Dans ce cas :
Si l'utilisateur jamais être restauré à nouveau, vous devez utiliser RedirectPermanent
afin que le navigateur puisse aller directement à /user/does-not-exist
dans les requêtes suivantes, même si l'URL pointe vers /user/{userid}
.
Si l'utilisateur est susceptible d'être restauré dans le futur, vous devez utiliser une Redirect
.
RedirectPermanent
est 301 et Redirect
est un code d'état 302
Ils envoient des codes de réponse différents au navigateur. 301 est une redirection permanente, 302 une redirection temporaire. L'effet final est le même, mais si le client veut indexer les liens (le client le plus courant qui le fait sera les moteurs de recherche), une redirection permanente indique au client de mettre à jour ses enregistrements pour ignorer l'ancien lien et commencer à utiliser le nouveau. Une redirection temporaire indique au client que la page est redirigée pour le moment, mais qu'il ne doit pas supprimer l'ancien lien de sa base de données d'indexation.