Server.Transfer vs Response.Redirect
Server in Response sta objekta v ASP.NET. Objekt strežnika ponuja metode in lastnosti za različna opravila, povezana s strežnikom. Prenos je metoda strežniškega predmeta in pošlje podatke o trenutnem stanju v drugo .asp datoteko za obdelavo. Objekt odziva opisuje metode in lastnosti, povezane z odzivom strežnika. Preusmeritev je metoda objekta Response in brskalniku pošlje sporočilo, s katerim se poveže z drugim URL-jem. Čeprav se lahko Server.Transfer in Response.Redirect uporabljata za prenos uporabnika z ene strani na drugo, se razlikujeta, kako dejansko opravljata to nalogo.
Kaj je Response.Redirect?
Preusmeritev je metoda v objektu Response. Ko se pokliče metoda odziva, pošlje kodo HTTP 302 in URL zaprošene spletne strani v brskalnik uporabnikov. Koda HTTP 302 brskalnika uporabnikov obvesti, da se zahtevani vir nahaja pod drugim URL-jem. Ko brskalnik prejme kodo, odpre vir na novi lokaciji. Zahtevana spletna stran lahko prebiva na istem strežniku kot stran, ki je vsebovala zahtevo, ali pa bi lahko bila na nekem drugem strežniku. Ko zahtevate spletno stran, ki je na istem strežniku kot trenutna stran, je mogoče uporabiti metodo odziva na naslednji način:
Response.Redirect ("nextPage.html");
Pri zahtevi za spletno stran, ki je na drugem strežniku, je mogoče uporabiti metodo odziva na naslednji način:
Response.Redirect ("http://www.newServer.com/newPage.aspx");
Kaj je Server.Transfer?
Kot smo že omenili, je prenos metoda strežniškega objekta. Ko se pokliče metoda prenosa, se prvotna zahteva spremeni tako, da se prenese na kakšno drugo stran v istem strežniku. Ko se s strežnikom Server.Transfer zahteva nova stran, se URL, prikazan v uporabnikovem spletnem brskalniku, ne spremeni. To je zato, ker se prenos zgodi na strani strežnika in brskalnik nima nobenega znanja o prenosu. Z uporabo druge preobremenitve za Server.Transfer (pot niza, boolserveForm) in nastavitvijo drugega parametra kot resničnega, objavljene spremenljivke obrazca in poizvedbeni nizi so lahko na voljo drugi strani.
Kakšna je razlika med strežnikom Server.Transfer in Response.Redirect?
Čeprav se lahko Server.Transfer in Response.Redirect uporabljata za prenos uporabnika z ene strani na drugo, obstajajo nekatere razlike med obema načinoma. Poleg očitne sintaktične razlike, Response.Redirect naleti na strežnik, Server.Transfer pa spremeni fokus strežnika na drugo spletno stran. Zato lahko z uporabo Server.Transfer ohranite vire strežnika. Po drugi strani bi lahko Response.Redirect uporabnika preusmerili na spletno stran v drugem strežniku, medtem ko Server.Transfer uporabnik lahko uporabi le za preusmeritev uporabnika na spletne strani na istem strežniku. Tudi s strežnikom Server.Transfer lahko do nove strani dostopate do lastnosti prejšnje strani, vendar to z Response.Redirect ni mogoče. Poleg tega Response.Redirect spremeni naslov v naslovni vrstici brskalnika, ko je dostop do nove strani, vendar ko uporabljate Server.Transfer, se izvirni URL obdrži, vsebina strani pa se samo zamenja. Tako uporabnik ne more uporabiti za zaznamek nove strani.