Unterschied zwischen Server.Transfer und Response.Redirect

Server.Transfer vs Response.Redirect

Server und Response sind beide Objekte in ASP.NET. Das Serverobjekt stellt Methoden und Eigenschaften für verschiedene Tasks bereit, die sich auf einen Server beziehen. Die Übertragung ist eine Methode des Server-Objekts und sendet Informationen des aktuellen Status an eine andere ASP-Datei zur Verarbeitung. Das Antwortobjekt beschreibt Methoden und Eigenschaften, die sich auf die Antwort eines Servers beziehen. Die Weiterleitung ist eine Methode des Response-Objekts, die eine Nachricht an den Browser sendet, um eine Verbindung zu einer anderen URL herzustellen. Obwohl sowohl Server.Transfer als auch Response.Redirect zum Übertragen eines Benutzers von einer Seite auf eine andere verwendet werden können, unterscheiden sie sich darin, wie sie diese Aufgabe tatsächlich ausführen.

Was ist Response.Redirect??

Umleitung ist eine Methode im Response-Objekt. Wenn die Response-Methode aufgerufen wird, sendet sie den HTTP-Code 302 und die URL der angeforderten Webseite an den Browser des Benutzers. Der HTTP-Code 302 informiert den Browser des Benutzers, dass sich die angeforderte Ressource unter einer anderen URL befindet. Wenn der Browser den Code empfängt, wird die Ressource am neuen Speicherort geöffnet. Die angeforderte Webseite kann sich auf demselben Server befinden wie die Seite, die die Anforderung enthielt, oder sie kann sich auf einem anderen Server befinden. Wenn Sie eine Webseite anfordern, die sich auf demselben Server wie die aktuelle Seite befindet, kann die Antwortmethode wie folgt verwendet werden:

Response.Redirect ("nextPage.html");

Wenn Sie eine Webseite anfordern, die sich auf einem anderen Server befindet, kann die Response-Methode folgendermaßen verwendet werden:

Response.Redirect ("http://www.newServer.com/newPage.aspx");

Was ist Server.Transfer??

Wie bereits erwähnt, ist Transfer eine Methode des Serverobjekts. Wenn die Übertragungsmethode aufgerufen wird, wird die ursprüngliche Anforderung so geändert, dass sie auf eine andere Seite auf demselben Server übertragen wird. Wenn eine neue Seite mit dem Server.Transfer angefordert wird, ändert sich die im Webbrowser der Benutzer angezeigte URL nicht. Dies liegt daran, dass die Übertragung auf der Serverseite erfolgt und der Browser keine Kenntnis von der Übertragung hat. Durch Verwenden der zweiten Überladung für Server.Transfer (Zeichenfolgenpfad, bool preserveForm) und Festlegen des zweiten Parameters auf true können veröffentlichte Formularvariablen und Abfragezeichenfolgen der zweiten Seite zur Verfügung gestellt werden.

Was ist der Unterschied zwischen Server.Transfer und Response.Redirect?

Obwohl sowohl Server.Transfer als auch Response.Redirect zum Übertragen eines Benutzers von einer Seite auf eine andere verwendet werden können, gibt es einige Unterschiede zwischen den beiden Methoden. Neben dem offensichtlichen syntaktischen Unterschied führt Response.Redirect einen Roundtrip zum Server durch, während Server.Transfer den Fokus des Webservers auf eine andere Webseite ändert. Daher können Serverressourcen durch Verwendung von Server.Transfer beibehalten werden. Andererseits kann Response.Redirect verwendet werden, um den Benutzer auf eine Webseite in einem anderen Server umzuleiten, während Server.Transfer nur dazu verwendet werden kann, um den Benutzer auf Webseiten auf demselben Server umzuleiten. Durch Verwendung von Server.Transfer können Sie auch auf die Eigenschaften der vorherigen Seite über die neue Seite zugreifen. Dies ist jedoch mit Response.Redirect nicht möglich. Darüber hinaus ändert Response.Redirect die URL in der Adressleiste des Browsers, wenn auf die neue Seite zugegriffen wird. Bei Verwendung des Servers.Transfer wird jedoch die ursprüngliche URL beibehalten und der Inhalt der Seite wird nur ersetzt. Daher kann der Benutzer die neue Seite nicht mit einem Lesezeichen versehen.