Forskellen mellem Server.Transfer og Response.Redirect

Server.Transfer vs Response.Redirect

Server og Response er begge objekter i ASP.NET. Serverobjekt indeholder metoder og egenskaber til forskellige opgaver relateret til en server. Transfer er en metode til Server-objektet, og den sender information om den aktuelle tilstand til en anden .asp-fil til behandling. Svarobjekt beskriver metoder og egenskaber, der er relateret til en servers svar. Omdirigering er en metode til svarobjektet, og det sender en meddelelse til browseren, så det oprettes forbindelse til en anden URL. Selvom både Server.Transfer og Response.Redirect kan bruges til at overføre en bruger fra en side til en anden, er de forskellige i, hvordan de rent faktisk udfører denne opgave.

Hvad er Response.Redirect?

Omdirigering er en metode i svar-objektet. Når Response-metoden kaldes, sender den HTTP-koden 302 og URL'en til den ønskede webside til brugernes browser. HTTP-koden 302 informerer brugernes browser om, at den ønskede ressource er placeret under en anden URL. Når browseren modtager koden, åbner den ressourcen på det nye sted. Den ønskede webside kan være på den samme server som den side, der indeholdt anmodningen, eller den kunne være på en anden server. Når du anmoder om en webside, der er bosat på den samme server som den aktuelle side, kan responsmetoden bruges som følger:

Response.Redirect ( ”nextPage.html”);

Når du anmoder om en webside, der er bosat på en anden server, kan responsmetoden bruges som følger:

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

Hvad er Server.Transfer?

Som nævnt tidligere er Transfer en metode til serverobjektet. Når overførselsmetoden kaldes, ændres den originale anmodning til at overføres til en anden side på den samme server. Når der anmodes om en ny side ved hjælp af Server.Transfer, ændres URL'en, der vises i brugernes webbrowser, ikke. Dette skyldes, at overførslen sker på serversiden, og browseren ikke har nogen viden om overførslen. Ved at bruge den anden overbelastning til Server.Transfer (strengsti, bool preserveForm) og indstille den anden parameter som sand, kan posterede formvariabler og forespørgselsstrenge stilles til rådighed på den anden side.

Hvad er forskellen mellem Server.Transfer og Response.Redirect?

Selvom både Server.Transfer og Response.Redirect kan bruges til at overføre en bruger fra en side til en anden, er der nogle forskelle mellem de to metoder. Udover den tilsyneladende syntaktiske forskel foretager Response.Redirect en tur-retur til serveren, mens Server.Transfer ændrer fokus på webserveren til en anden webside. Ved at bruge Server.Transfer kan serverressourcer derfor bevares. På den anden side Response.Redirect kunne bruges til at omdirigere brugeren til en webside på en anden server, mens Server.Transfer kun kan bruges til at omdirigere brugeren til websider på den samme server. Også ved hjælp af Server.Transfer kan egenskaber på den forrige side fås adgang til af den nye side, men dette er ikke muligt med Response.Redirect. Derudover ændrer Response.Redirect URL'en i adresselinjen i browseren, når der åbnes en ny side, men når du bruger serveren. Overfør den oprindelige URL bevares, og indholdet på siden er lige erstattet. Så brugeren kan ikke bruge den til at bogmærke den nye side.