Server. Transfer vs Response. Redirect
Serveris ir atsakymas yra ASP. NET objektai. Serverio objektas pateikia metodus ir ypatybes įvairioms užduotims, susijusioms su serveriu. Perdavimas yra serverio objekto metodas, kuris siunčia informaciją apie esamą būseną į kitą.asp failą apdoroti. Atsakymo objektas aprašo metodus ir savybes, susijusias su serverio atsakymu. Peradresavimas yra atsako objekto metodas, kuris siunčia pranešimą naršyklei, kad prisijungtų prie kito URL. Nors ir Server. Transfer, ir Response. Redirect gali būti naudojami vartotojui perkelti iš vieno puslapio į kitą, jie skiriasi tuo, kaip iš tikrųjų atlieka šią užduotį.
Kas yra Response. Redirect?
Peradresavimas yra atsako objekto metodas. Kai iškviečiamas atsakymo metodas, jis siunčia HTTP kodą 302 ir prašomo tinklalapio URL į vartotojų naršyklę. HTTP kodas 302 informuoja vartotojų naršyklę, kad prašomas š altinis yra kitu URL. Kai naršyklė gauna kodą, ji atidaro š altinį naujoje vietoje. Prašomas tinklalapis gali būti tame pačiame serveryje kaip ir puslapis, kuriame buvo užklausa, arba jis gali būti kitame serveryje. Prašant tinklalapio, esančio tame pačiame serveryje kaip ir dabartinis puslapis, atsakymo metodas gali būti naudojamas taip:
Response. Redirect(“nextPage.html”);
Prašant tinklalapio, esančio kitame serveryje, atsakymo metodas gali būti naudojamas taip:
Response. Redirect(“https://www.newServer.com/newPage.aspx”);
Kas yra serveris.perdavimas?
Kaip minėta anksčiau, perkėlimas yra serverio objekto metodas. Kai iškviečiamas perdavimo metodas, pradinė užklausa modifikuojama, kad būtų perkelta į kitą puslapį tame pačiame serveryje. Kai naudojant Server. Transfer prašoma naujo puslapio, vartotojo žiniatinklio naršyklėje rodomas URL nesikeičia. Taip yra todėl, kad perkėlimas vyksta serverio pusėje, o naršyklė neturi jokių žinių apie perdavimą. Naudojant antrąją perkrovą Server. Transfer (eilutės kelias, bool saveForm) ir antrąjį parametrą nustatant kaip teisingą, paskelbti formos kintamieji ir užklausos eilutės gali būti prieinamos antrajam puslapiui.
Kuo skiriasi Server. Transfer ir Response. Redirect?
Nors ir Server. Transfer, ir Response. Redirect gali būti naudojami vartotojui perkelti iš vieno puslapio į kitą, šie du metodai skiriasi. Be akivaizdaus sintaksinio skirtumo, Response. Redirect nukreipia į serverį, o Server. Transfer pakeičia žiniatinklio serverio fokusą į kitą tinklalapį. Todėl naudojant Server. Transfer serverio išteklius galima išsaugoti. Kita vertus, Response. Redirect gali būti naudojamas nukreipiant vartotoją į tinklalapį kitame serveryje, o Server. Transfer gali būti naudojamas tik nukreipiant vartotoją į tinklalapius tame pačiame serveryje. Taip pat naudojant Server. Transfer, ankstesnio puslapio ypatybes galima pasiekti naujame puslapyje, bet tai neįmanoma naudojant Response. Redirect. Be to, Response. Redirect pakeičia URL naršyklės adreso juostoje, kai atidaromas naujas puslapis, bet kai naudojamas serveris. Perkeliant pirminį URL išsaugomas, o puslapio turinys tiesiog pakeičiamas. Taigi vartotojas negali jo naudoti, kad pažymėtų naują puslapį.