Pozdrav,
Osnovna razlika je u tome sto Response.Redirect vraca poruku Web Browser-u kojom mu kaze da predje na drugi URL. Znaci, komunikacija u tom slucaju izgleda ovako:
1. Na tvojoj web stranici user unosi nesto i radi submit
2. Zahtev dolazi na tvoj server, ti ga procesiras i radis Response.Redirect
3. Web Browser prima redirect zahtev i salje novi zahtev automatski na novi URL koji si ti zadao u Response.Redirect pozivu.
4. Novi zahtev stize na tvoj server (na novi URL odnosno novu stranicu) i ti konacno serviras HTML web browser-u.
Sa Server.Transfer imas dosta pogodnosti ali i nekih "nepogodnosti":
1. Server.Transfer cuva serverske resurse. Odnosno, izbegavas visestruku komunikaciju izmedju browser-a i server-a.
2. Server.Transfer ocuvava originalnu adresu u browser-u. To znaci da ako je korisnik bio na
http://tvojsite.com/page1.aspx i ti uradis Server.Transfer("page2.aspx"), u web browser-u ce i dalje pisati "page1.aspx" bez obzira sto je korisniku servirana page2.aspx. Ovo mozes da smatras za prednost ali i manu - zavisi od konkretne situacije.
3. Server.Transfer moze da primi parametar "preserveForm". Ako ga postavis na true onda ce se novoj stranici preneti i svi request parametri. Znaci, ako radis Server.Transfer sa page1.aspx?myid=123&myotherparam=456 na page2.aspx onda ces i na page2.aspx moci da pogledas Request["myid"] i Request["myotherparam"]. Obrati paznju na to da je Microsoft napravio BUG kod ove metode ali postoji i resenje. O tome mozes vise da procitas na
http://support.microsoft.com/default.aspx?id=kb;en-us;Q316920.
Ono sto ne mozes da uradis sa Server.Transfer je da uradis transfer na drugi domen. Znaci, ako hoces da uradis transfer sa
http://mysite.com/mypage.aspx na
http://www.google.com onda moras da koristis Response.Redirect.
Ja sam uvek za Server.Transfer osim kada sam primoran da koristim Response.Redirect. Inace, Server.Transfer sam koristio u obe verzije .Net framework-a (1.0 i 1.1) i radio mi je bez problema.
Nadam se da ce ovo pomoci.
Pozdrav,
Sasa