Server. Transfer vs Response. Redirect
Serveris un atbilde abi ir ASP. NET objekti. Servera objekts nodrošina metodes un rekvizītus dažādiem ar serveri saistītiem uzdevumiem. Pārsūtīšana ir servera objekta metode, un tā nosūta pašreizējā stāvokļa informāciju apstrādei uz citu.asp failu. Atbildes objekts apraksta metodes un īpašības, kas saistītas ar servera atbildi. Novirzīšana ir objekta Response metode, un tā nosūta ziņojumu pārlūkprogrammai, liekot tai izveidot savienojumu ar citu URL. Pat ja gan Server. Transfer, gan Response. Redirect var izmantot, lai pārsūtītu lietotāju no vienas lapas uz otru, viņi faktiski atšķiras, kā viņi faktiski veic šo uzdevumu.
Kas ir Response. Redirect?
Novirzīšana ir metode objektā Response. Kad tiek izsaukta atbildes metode, tā lietotāja pārlūkprogrammai nosūta HTTP kodu 302 un pieprasītās tīmekļa lapas URL. HTTP kods 302 informē lietotāju pārlūku, ka pieprasītais resurss atrodas zem cita URL. Kad pārlūkprogramma saņem kodu, tā atver resursu jaunajā vietā. Pieprasītā tīmekļa lapa var atrasties tajā pašā serverī, kurā atrodas pieprasījums, vai arī tā varētu būt kādā citā serverī. Pieprasot tīmekļa lapu, kas atrodas tajā pašā serverī kā pašreizējā lapa, atbildes metodi var izmantot šādi:
Response. Redirect (“nextPage.html”);
Pieprasot tīmekļa lapu, kas atrodas citā serverī, atbildes metodi var izmantot šādi:
Response. Redirect (“https://www.newServer.com/newPage.aspx”);
Kas ir Server. Transfer?
Kā minēts iepriekš, pārsūtīšana ir servera objekta metode. Kad tiek izsaukta pārsūtīšanas metode, sākotnējais pieprasījums tiek modificēts, lai pārsūtītu uz kādu citu lapu tajā pašā serverī. Kad tiek pieprasīta jauna lapa, izmantojot serveri. Pārsūtīt, lietotāju tīmekļa pārlūkprogrammā redzamais URL nemainās. Tas ir tāpēc, ka pārsūtīšana notiek servera pusē un pārlūkprogrammai nav nekādu zināšanu par pārsūtīšanu. Izmantojot otro servera pārslodzi. Pārsūtīšana (virknes ceļš, bool saglabātForm) un otrā parametra iestatīšana kā patiesa, otrajā lapā var padarīt pieejamus ievietotos veidlapas mainīgos un vaicājumu virknes.
Kāda ir atšķirība starp Server. Transfer un Response. Redirect?
Pat ja gan Server. Transfer, gan Response. Redirect var izmantot, lai lietotāju pārsūtītu no vienas lapas uz otru, abās metodēs ir dažas atšķirības. Papildus acīmredzamajai sintaktiskajai atšķirībai Response. Redirect veic virzību uz serveri, savukārt Server. Transfer maina tīmekļa servera fokusu uz citu tīmekļa lapu. Tāpēc, izmantojot Server. Transfer, servera resursus var saglabāt. No otras puses, Response. Redirect varētu izmantot, lai lietotāju novirzītu uz cita servera tīmekļa lapu, savukārt Server. Transfer var izmantot tikai lietotāja novirzīšanai uz tā paša servera tīmekļa lapām. Arī izmantojot Server. Transfer, jaunās lapas var piekļūt iepriekšējās lapas rekvizītiem, taču tas nav iespējams, izmantojot Response. Redirect. Turklāt Atbilde. Pārvirzīšana maina URL pārlūkprogrammas adrešu joslā, kad tiek atvērta jaunā lapa, bet tiek izmantots serveris. Pārsūtīšana sākotnējais URL tiek saglabāts, un lapas saturs tiek tikko aizstāts. Tātad lietotājs to nevar izmantot, lai grāmatzīmētu jauno lapu.