Server. Edastamine vs vastus. Ümbersuunamine
Server ja vastus on mõlemad ASP. NET-i objektid. Serveriobjekt pakub meetodeid ja atribuute erinevate serveriga seotud ülesannete jaoks. Edastamine on serveri objekti meetod ja see saadab praeguse oleku teabe töötlemiseks teise.asp-faili. Vastuseobjekt kirjeldab meetodeid ja atribuute, mis on seotud serveri vastusega. Ümbersuunamine on vastusobjekti meetod ja see saadab brauserile sõnumi, mis loob ühenduse teise URL-iga. Kuigi nii Server. Transfer kui Response. Redirect saab kasutada kasutaja ühelt lehelt teisele üleviimiseks, on need erinevad selle ülesande täitmise poolest.
Mis on Response. Redirect?
Ümbersuunamine on meetod vastuseobjektis. Kui kutsutakse vastusmeetodit, saadab see kasutajate brauserisse HTTP-koodi 302 ja taotletud veebilehe URL-i. HTTP-kood 302 teavitab kasutajate brauserit, et taotletud ressurss asub teise URL-i all. Kui brauser koodi saab, avab see ressursi uues asukohas. Taotletud veebileht võib asuda samas serveris kui päringut sisaldav leht või see võib asuda mõnes teises serveris. Kui taotlete praeguse lehega samas serveris asuvat veebilehte, saab vastusemeetodit kasutada järgmiselt:
Response. Redirect(“nextPage.html”);
Teises serveris asuva veebilehe taotlemisel saab reageerimismeetodit kasutada järgmiselt:
Response. Redirect(“https://www.newServer.com/newPage.aspx”);
Mis on server. Transfer?
Nagu varem mainitud, on edastamine serveriobjekti meetod. Kui kutsutakse edastusmeetodit, muudetakse algset taotlust sama serveri mõnele teisele lehele ülekandmiseks. Kui Server. Transferi abil taotletakse uut lehte, siis kasutajate veebibrauseris kuvatav URL ei muutu. Selle põhjuseks on asjaolu, et ülekanne toimub serveri poolel ja brauseril pole ülekande kohta mingeid teadmisi. Kasutades Server. Transfer (stringi tee, tõeväärtuse säilitamise vorm) teist ülekoormust ja määrates teise parameetri tõeseks, saab postitatud vormimuutujad ja päringustringid teisele lehele kättesaadavaks teha.
Mis vahe on Server. Transfer ja Response. Redirect vahel?
Kuigi nii Server. Transfer kui Response. Redirect saab kasutada kasutaja ühelt lehelt teisele üleviimiseks, on nende kahe meetodi vahel mõningaid erinevusi. Lisaks näilisele süntaktilisele erinevusele teeb Response. Redirect serverisse edasi-tagasi suuna, samas kui Server. Transfer muudab veebiserveri fookuse teisele veebilehele. Seetõttu saab Server. Transferi abil serveri ressursse säilitada. Teisest küljest saab Response. Redirecti kasutada kasutaja ümbersuunamiseks mõne teise serveri veebilehele, samas kui Server. Transferi saab kasutada ainult kasutaja ümbersuunamiseks sama serveri veebilehtedele. Ka kasutades Server. Transfer, pääseb uuele lehele juurde eelmise lehe atribuudid, kuid Response. Redirectiga pole see võimalik. Lisaks muudab Response. Redirect URL-i brauseri aadressiribal, kui uuele lehele sisenetakse, kuid kui kasutatakse Serverit. Transferi algne URL säilib ja lehe sisu lihts alt asendatakse. Seega ei saa kasutaja seda kasutada uue lehe järjehoidjatesse lisamiseks.