Server. Transfer vs Response. Redirect
Сервер жана Жооп экөө тең ASP. NETтеги объекттер. Server объекти серверге байланыштуу ар кандай тапшырмалар үчүн ыкмаларды жана касиеттерди камсыз кылат. Transfer - бул Server объектинин ыкмасы жана ал учурдагы абалдын маалыматын башка.asp файлына иштетүү үчүн жөнөтөт. Response объекти сервердин жообуна байланыштуу ыкмаларды жана касиеттерди сүрөттөйт. Багыттоо - бул Response объектинин ыкмасы жана ал браузерге билдирүү жөнөтүп, аны башка URL менен туташтырат. Server. Transfer жана Response. Redirect экөө тең колдонуучуну бир барактан экинчисине өткөрүү үчүн колдонулушу мүмкүн болсо да, алар бул милдетти кандайча аткарууда айырмаланат.
Response. Redirect деген эмне?
Багыттоо - Жооп объектиндеги ыкма. Response ыкмасы чакырылганда, ал HTTP кодун 302 жана суралган веб-баракчанын URL дарегин колдонуучулардын браузерине жөнөтөт. HTTP коду 302 колдонуучулардын браузерине суралган ресурс башка URL дарегинде жайгашканын билдирет. Браузер кодду алганда, ресурсту жаңы жерде ачат. Суралган веб-баракча суроо камтылган барак менен бир серверде болушу мүмкүн же ал башка серверде болушу мүмкүн. Учурдагы бет менен бир серверде жайгашкан веб-баракчаны сураганда, Жооп ыкмасын төмөнкүдөй колдонсо болот:
Response. Redirect(“nextPage.html”);
Башка серверде жайгашкан веб-баракчаны сураганда, Жооп ыкмасын төмөнкүдөй колдонсо болот:
Response. Redirect(“https://www.newServer.com/newPage.aspx”);
Server. Transfer деген эмне?
Мурда айтылгандай, Transfer Server объектинин ыкмасы. Өткөрүп берүү ыкмасы чакырылганда, баштапкы суроо-талап ошол эле сервердеги башка бетке өткөрүү үчүн өзгөртүлөт. Server. Transfer аркылуу жаңы барак суралганда, колдонуучулардын веб-браузеринде көрсөтүлгөн URL өзгөрбөйт. Себеби которуу сервер тарабында ишке ашат жана браузерде которуу жөнүндө эч кандай маалымат жок. Server. Transfer (сап жолу, bool preserveForm) үчүн экинчи ашыкча жүктөөнү колдонуу жана экинчи параметрди чын деп коюу менен, жайгаштырылган форма өзгөрмөлөрү жана суроо саптары экинчи бетке жеткиликтүү болушу мүмкүн.
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. Transferди колдонууда баштапкы URL сакталып калат жана барактын мазмуну жаңы гана алмаштырылат. Андыктан колдонуучу аны жаңы баракты кыстаруу үчүн колдоно албайт.