Server. Transfer vs Response. Redirect
Սերվերը և պատասխանը երկուսն էլ օբյեկտներ են ASP. NET-ում: Սերվերի օբյեկտը տրամադրում է մեթոդներ և հատկություններ սերվերի հետ կապված տարբեր առաջադրանքների համար: Փոխանցումը Սերվերի օբյեկտի մեթոդ է և այն ուղարկում է ընթացիկ վիճակի տեղեկատվությունը մեկ այլ.asp ֆայլ՝ մշակման համար: Արձագանքման օբյեկտը նկարագրում է սերվերի պատասխանի հետ կապված մեթոդներն ու հատկությունները: Վերահղումը Response օբյեկտի մեթոդն է և այն հաղորդագրություն է ուղարկում դիտարկիչին՝ ստիպելով այն միանալ այլ URL-ի: Թեև և Server. Transfer-ը և Response. Redirect-ը կարող են օգտագործվել օգտվողին մի էջից մյուսը տեղափոխելու համար, դրանք տարբերվում են իրականում այս առաջադրանքը կատարելու հարցում:
Ի՞նչ է Response. Redirect?
Վերահղումը Response օբյեկտի մեթոդ է: Երբ Response մեթոդը կանչվում է, այն ուղարկում է HTTP կոդը 302 և հայցվող վեբ էջի URL-ը օգտվողների դիտարկիչին: HTTP 302 կոդը տեղեկացնում է օգտվողների դիտարկիչին, որ պահանջվող ռեսուրսը գտնվում է այլ URL-ի տակ: Երբ զննարկիչը ստանում է կոդը, այն բացում է ռեսուրսը նոր վայրում: Հայցվող վեբ էջը կարող է գտնվել նույն սերվերում, ինչ էջը, որը պարունակում է հարցումը, կամ այն կարող է բնակվել որևէ այլ սերվերում: Ընթացիկ էջի հետ նույն սերվերի վրա գտնվող վեբ էջ հայցելիս Response մեթոդը կարող է օգտագործվել հետևյալ կերպ.
Response. Redirect(«nextPage.html»);
Այլ սերվերի վրա բնակվող վեբ էջ խնդրելու դեպքում պատասխանի մեթոդը կարող է օգտագործվել հետևյալ կերպ.
Response. Redirect(«https://www.newServer.com/newPage.aspx»);
Ի՞նչ է Server. Transfer?
Ինչպես նշվեց ավելի վաղ, փոխանցումը սերվերի օբյեկտի մեթոդ է:Երբ կանչվում է Փոխանցման մեթոդը, սկզբնական հարցումը փոփոխվում է՝ նույն սերվերի մեկ այլ էջ փոխանցելու համար: Երբ Server. Transfer-ի միջոցով նոր էջ է պահանջվում, օգտվողների վեբ բրաուզերում ցուցադրված URL-ը չի փոխվում: Դա պայմանավորված է նրանով, որ փոխանցումը կատարվում է սերվերի կողմից, և զննարկիչը որևէ տեղեկություն չունի փոխանցման մասին: Օգտագործելով Server. Transfer-ի երկրորդ ծանրաբեռնվածությունը (string path, bool saveForm) և սահմանելով երկրորդ պարամետրը որպես ճշմարիտ, տեղադրված ձևի փոփոխականները և հարցումների տողերը կարող են հասանելի լինել երկրորդ էջի համար:
Ո՞րն է տարբերությունը Server. Transfer-ի և Response. Redirect-ի միջև:
Չնայած Server. Transfer-ը և Response. Redirect-ը կարող են օգտագործվել օգտվողին մի էջից մյուսը տեղափոխելու համար, այնուամենայնիվ, կան որոշ տարբերություններ երկու մեթոդների միջև: Բացի ակնհայտ շարահյուսական տարբերությունից, Response. Redirect-ը կատարում է շրջադարձ դեպի սերվեր, մինչդեռ Server. Transfer-ը փոխում է վեբ սերվերի կենտրոնացումը մեկ այլ վեբ էջ:Հետևաբար, օգտագործելով Server. Transfer-ը, սերվերի ռեսուրսները կարող են պահպանվել: Մյուս կողմից, Response. Redirect-ը կարող է օգտագործվել օգտվողին այլ սերվերի վեբ էջ վերահղելու համար, մինչդեռ Server. Transfer-ը կարող է օգտագործվել միայն նույն սերվերի վեբ էջերին օգտվողին վերահղելու համար: Նաև օգտագործելով Server. Transfer-ը, նախորդ էջի հատկությունները կարող են մուտք գործել նոր էջ, սակայն Response. Redirect-ի միջոցով դա հնարավոր չէ: Բացի այդ, Response. Redirect-ը փոխում է URL-ը բրաուզերի հասցեագոտում, երբ մուտք է գործում նոր էջ, բայց երբ օգտագործվում է Server-ը: Տեղափոխել սկզբնական URL-ը պահպանվում է, և էջի բովանդակությունը նոր է փոխարինվում: Այսպիսով, օգտվողը չի կարող օգտագործել այն նոր էջը էջանշելու համար: