2009-11-18 4 views
2

Nous avons un module URLRewriting qui utilise un Response.Redirect dans la méthode d'événement BeginRequest pour changer la page de destination.HTTPModule BeginRequest devrait nous Response.Redirect ou Server.Transfer

  • Serait-il préférable d'utiliser Server.Transfer ou Server.TransferRequest au lieu de Response.Redirect?
  • Il y a d'autres modules HTTP dans la solution, vais-je contourner l'un des autres modules en utilisant Server.Transfer ou le serveur commencera-t-il comme s'il s'agissait d'une nouvelle requête, sauvegardant simplement l'aller-retour dans le navigateur?
  • Le client remarquera-t-il des différences et le serveur traitera-t-il différemment la requête?

Les questions suivantes portent sur les différences entre la redirection et le transfert, mais pas dans un module HTTP;

EDIT:HttpContext.RewritePath est également utilisé dans le module il semble que nous avons trois techniques pour déplacer la demande initiale de la trajectoire initiale; Rediriger, transférer, RewritePath qui, respectivement; revenir au navigateur, retour au début du pipeline HTTP et continuer le traitement sur le nouveau chemin.

Répondre

6

Voici la meilleure explication de Redirect vs Transfer vs RewritePath; http://www.developerfusion.com/article/4643/implementing-http-handlers-in-aspnet/4/

Pour résumer; La redirection nécessite un aller-retour vers le navigateur, le transfert garantit que l'objet Demande d'origine ne reste pas la nouvelle requête mais a des problèmes avec les post-retours, la réécriture perd l'objet Demande original mais est la meilleure pour les performances.

Questions connexes