Server.Transfer vs Response.Redirect
Server et Response sont tous deux des objets dans ASP.NET. L'objet Serveur fournit des méthodes et des propriétés pour diverses tâches liées à un serveur. Transfert est une méthode de l'objet Serveur. Il envoie des informations sur l'état actuel à un autre fichier .asp à des fins de traitement. L'objet Réponse décrit les méthodes et les propriétés liées à la réponse d'un serveur. La redirection est une méthode de l'objet Response et envoie un message au navigateur, le faisant se connecter à une URL différente. Même si Server.Transfer et Response.Redirect peuvent être utilisés pour transférer un utilisateur d'une page à une autre, la manière dont ils effectuent cette tâche est différente..
Qu'est-ce que Response.Redirect?
Redirect est une méthode dans l'objet Response. Lorsque la méthode Response est appelée, elle envoie le code HTTP 302 et l'URL de la page Web demandée au navigateur de l'utilisateur. Le code HTTP 302 informe le navigateur de l'utilisateur que la ressource demandée est située sous une autre URL. Lorsque le navigateur reçoit le code, il ouvre la ressource au nouvel emplacement. La page Web demandée peut résider sur le même serveur que la page contenant la demande ou peut résider sur un autre serveur. Lorsque vous demandez une page Web résidant sur le même serveur que la page actuelle, la méthode de réponse peut être utilisée comme suit:
Response.Redirect (“nextPage.html”);
Lorsque vous demandez une page Web résidant sur un autre serveur, la méthode Response peut être utilisée comme suit:
Response.Redirect (“http://www.newServer.com/newPage.aspx”);
Qu'est-ce que Server.Transfer?
Comme mentionné précédemment, le transfert est une méthode de l'objet serveur. Lorsque la méthode de transfert est appelée, la demande d'origine est modifiée pour être transférée vers une autre page du même serveur. Lorsqu'une nouvelle page est demandée à l'aide de Server.Transfer, l'URL affichée dans le navigateur Web des utilisateurs ne change pas. Cela est dû au fait que le transfert a lieu côté serveur et que le navigateur n’a aucune connaissance du transfert. En utilisant la seconde surcharge pour Server.Transfer (chemin de la chaîne, bool preserveForm) et en définissant le second paramètre sur true, les variables de formulaire publiées et les chaînes de requête peuvent être mises à la disposition de la seconde page..
Quelle est la différence entre Server.Transfer et Response.Redirect?
Même si Server.Transfer et Response.Redirect peuvent être utilisés pour transférer un utilisateur d'une page à une autre, il existe certaines différences entre les deux méthodes. En plus de la différence syntaxique apparente, Response.Redirect effectue un aller-retour vers le serveur, tandis que Server.Transfer modifie la focalisation du serveur Web sur une page Web différente. Par conséquent, en utilisant Server.Transfer, les ressources du serveur peuvent être préservées. D'autre part, Response.Redirect peut être utilisé pour rediriger l'utilisateur vers une page Web d'un autre serveur, tandis que Server.Transfer ne peut être utilisé que pour rediriger l'utilisateur vers des pages Web situées sur le même serveur. De même, à l'aide de Server.Transfer, les propriétés de la page précédente sont accessibles par la nouvelle page, mais ce n'est pas possible avec Response.Redirect. En outre, Response.Redirect modifie l'URL dans la barre d'adresse du navigateur lors de l'accès à la nouvelle page, mais lors de l'utilisation de Server.Transfer, l'URL d'origine est conservée et le contenu de la page vient d'être remplacé. Donc, l'utilisateur ne peut pas l'utiliser pour marquer la nouvelle page.