Server.Transfer vs Response.Redirect
Oba poslužitelja i Odgovor su objekti na ASP.NET-u. Objekt poslužitelja nudi metode i svojstva za različite zadatke povezane s poslužiteljem. Prijenos je metoda objekta Server i on šalje informacije trenutnog stanja u drugu .asp datoteku na obradu. Objekt odgovora opisuje metode i svojstva vezana za odgovor poslužitelja. Preusmjeravanje je metoda objekta odgovora i pregledniku šalje poruku pregledniku te je povezuje s drugim URL-om. Iako se i Server.Transfer i Response.Redirect mogu koristiti za prijenos korisnika s jedne stranice na drugu, oni se razlikuju u načinu na koji zapravo obavljaju ovaj zadatak..
Što je Response.Redirect?
Preusmjeravanje je metoda u objektu Response. Kad se pozove metoda odgovora, on šalje korisnikovu pregledniku HTTP kôd 302 i URL tražene web stranice. HTTP kôd 302 obavještava preglednik korisnika da se zatraženi resurs nalazi pod drugim URL-om. Kad preglednik primi kôd, otvara resurs na novoj lokaciji. Zatražena web-stranica može se nalaziti na istom poslužitelju kao i stranica na kojoj se nalazio zahtjev ili bi mogla biti borave na nekom drugom poslužitelju. Kada tražite web stranicu na istom poslužitelju kao i trenutna stranica, može se primijeniti metoda odgovaranja na sljedeći način:
Response.Redirect ( „nextPage.html”);
Kada tražite web stranicu sa prebivalištem na drugom poslužitelju, može se koristiti metoda odgovaranja na sljedeći način:
Response.Redirect ( „http://www.newServer.com/newPage.aspx”);
Što je Server.Transfer?
Kao što je ranije spomenuto, Prijenos je metoda poslužiteljskog objekta. Kad se pozove metoda prijenosa, izvorni zahtjev mijenja se kako bi se prenio na neku drugu stranicu na istom poslužitelju. Kada se putem poslužitelja Server.Transfer zatraži nova stranica, URL prikazan u web-pregledniku korisnika se ne mijenja. To se događa zato što se prijenos događa na strani poslužitelja i preglednik nema nikakvo znanje o prijenosu. Upotrebom drugog preopterećenja za Server.Transfer (put niza, bool očuvanjeForm) i postavljanjem drugog parametra kao istinito, postavljene varijable oblika i nizovi upita mogu se staviti na raspolaganje drugoj stranici.
Koja je razlika između Server.Transfer i Response.Redirect?
Iako se i Server.Transfer i Response.Redirect mogu koristiti za prijenos korisnika s jedne stranice na drugu, postoje neke razlike između dvije metode. Pored očite sintaktičke razlike, Response.Redirect čini zaobilazni put prema poslužitelju, dok Server.Transfer mijenja fokus web poslužitelja na drugu web stranicu. Stoga se pomoću Server.Transfer resursi poslužitelja mogu sačuvati. S druge strane, Response.Redirect mogao bi se koristiti za preusmjeravanje korisnika na web stranicu na drugom poslužitelju dok Server.Transfer može se koristiti samo za preusmjeravanje korisnika na web stranice na istom poslužitelju. Također pomoću Server.Transfer, novoj stranici može se pristupiti svojstvima prethodne stranice, ali to nije moguće pomoću Response.Redirect. Pored toga, Response.Redirect mijenja URL u adresnoj traci preglednika kada se pristupa novoj stranici, ali kada se koristi Server.Transfer se zadržava izvorni URL, a sadržaj stranice se upravo zamjenjuje. Dakle, korisnik ga ne može koristiti za označavanje nove stranice.