Server.Transfer vs Response.Redirect
Mind a szerver, mind a válasz objektumok az ASP.NET-ben. A szerverobjektum a szerverhez kapcsolódó különféle feladatok módszereit és tulajdonságait biztosítja. Az átvitel a Szerver objektum egyik módszere, és az aktuális állapot információit küld egy másik .asp fájlhoz feldolgozás céljából. A válaszobjektum leírja a szerver válaszához kapcsolódó módszereket és tulajdonságokat. Az átirányítás a válaszobjektum egyik módszere, és üzenetet küld a böngészőnek, és más URL-hez kapcsolódik. Annak ellenére, hogy mind a Server.Transfer, mind a Response.Redirect felhasználható a felhasználó egyik oldalról a másikra történő átvitelére, különböznek abban, hogy valóban hogyan hajtják végre ezt a feladatot.
Mi az a Response.Redirect?
Az átirányítás egy módszer a Response objektumban. A Response módszer meghívásakor elküldi a 302 HTTP kódot és a kért weboldal URL-jét a felhasználói böngészőnek. A 302 HTTP-kód tájékoztatja a felhasználói böngészőt arról, hogy a kért erőforrás más URL alatt található. Amikor a böngésző megkapja a kódot, megnyitja az erőforrást az új helyen. A kért weboldal ugyanazon a szerveren lehet, mint a kérelemben szereplő oldal, vagy más kiszolgálón lehet. Az aktuális oldallal azonos kiszolgálón található weboldal kérésekor a következő módszer használható:
Response.Redirect ( „nextPage.html”);
Másik szerveren található weboldal kérésekor a Response módszer az alábbiak szerint használható:
Response.Redirect ( „http://www.newServer.com/newPage.aspx”);
Mi a Server.Transfer?
Mint korábban említettük, az átvitel a szerverobjektum egyik módszere. Az átviteli módszer meghívásakor az eredeti kérés módosul, hogy átkerüljön ugyanazon szerver más oldalára. Ha új oldalt kérünk a Server.Transfer használatával, a felhasználói webböngészőben megjelenő URL nem változik. Ennek oka az, hogy az átvitel a szerver oldalán történik, és a böngészőnek nincs ismerete az átvitelről. A Server.Transfer második túlterhelésének (string útvonal, bool preserveForm) használatával és a második paraméter valódi beállításával a kiküldött űrlapváltozók és a lekérdezési karakterláncok elérhetővé válnak a második oldalon.
Mi a különbség a Server.Transfer és a Response.Redirect között?
Annak ellenére, hogy mind a Server.Transfer, mind a Response.Redirect felhasználható a felhasználó egyik oldalról a másikra történő átvitelére, vannak eltérések a két módszer között. A látszólagos szintaktikai különbség mellett a Response.Redirect körbejárja a kiszolgálót, míg a Server.Transfer a webszerver fókuszát más weboldalra változtatja. Ezért a Server.Transfer használatával meg lehet őrizni a szerver erőforrásait. Másrészt a Response.Redirect felhasználható a felhasználó átirányítására egy másik szerver weboldalára, míg a Server.Transfer csak a felhasználó ugyanazon kiszolgáló weboldalainak átirányítására használható. A Server.Transfer használatával az előző oldal tulajdonságai is elérhetők az új oldalon, de ez a Response.Redirect használatával nem lehetséges. Ezenkívül a Response.Redirect megváltoztatja az URL-t a böngésző címsorában, amikor az új oldalt elérik, de a Szerver használatakor. Az átadás megőrzi az eredeti URL-t, és az oldal tartalma csak cserélésre kerül. Tehát a felhasználó nem tudja használni az új oldal könyvjelzővel történő felvételéhez.