Server. Transfer vs Response. Redirect
სერვერი და პასუხი ორივე ობიექტია ASP. NET-ში. სერვერის ობიექტი უზრუნველყოფს მეთოდებსა და თვისებებს სერვერთან დაკავშირებული სხვადასხვა ამოცანებისთვის. გადაცემა არის სერვერის ობიექტის მეთოდი და ის აგზავნის მიმდინარე მდგომარეობის ინფორმაციას სხვა.asp ფაილში დასამუშავებლად. საპასუხო ობიექტი აღწერს მეთოდებსა და თვისებებს, რომლებიც დაკავშირებულია სერვერის პასუხთან. გადამისამართება არის 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?
როგორც უკვე აღვნიშნეთ, გადაცემა არის სერვერის ობიექტის მეთოდი.გადაცემის მეთოდის გამოძახებისას, ორიგინალური მოთხოვნა იცვლება იმავე სერვერის სხვა გვერდზე გადასატანად. როდესაც ახალი გვერდი მოითხოვება სერვერის გამოყენებით. ტრანსფერი, მომხმარებლის ვებ ბრაუზერში ნაჩვენები URL არ იცვლება. ეს იმიტომ ხდება, რომ გადაცემა ხდება სერვერის მხარეს და ბრაუზერს არ აქვს რაიმე ცოდნა გადაცემის შესახებ. Server. Transfer-ისთვის მეორე გადატვირთვის გამოყენებით (სტრიქონის გზა, 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-ს ბრაუზერის მისამართების ზოლში, როდესაც ახალ გვერდზე წვდება, მაგრამ სერვერის გამოყენებისას. თავდაპირველი URL-ის გადაცემა შენარჩუნებულია და გვერდის შინაარსი ახლახან იცვლება. ასე რომ, მომხმარებელი ვერ გამოიყენებს მას ახალი გვერდის სანიშნეში.