Server. Transfer vs Response. Redirect
Сервер ба Хариулт хоёулаа ASP. NET дээрх объектууд юм. Серверийн объект нь сервертэй холбоотой янз бүрийн даалгаврын арга, шинж чанарыг өгдөг. Дамжуулах нь Server объектын арга бөгөөд одоогийн төлөвийн мэдээллийг өөр.asp файл руу илгээдэг. Response объект нь серверийн хариу үйлдэлтэй холбоотой арга, шинж чанарыг тодорхойлдог. Redirect нь Response объектын арга бөгөөд хөтөч рүү мессеж илгээж, өөр URL руу холбогддог. Хэдийгээр Server. Transfer болон Response. Redirect аль аль нь хэрэглэгчийг нэг хуудаснаас нөгөө хуудас руу шилжүүлэхэд ашиглагдаж болох ч энэ даалгаврыг хэрхэн гүйцэтгэж байгаа нь өөр өөр байдаг.
Response. Redirect гэж юу вэ?
Redirect нь Response объектын арга юм. Response аргыг дуудах үед энэ нь HTTP код 302 болон хүссэн вэб хуудасны URL-г хэрэглэгчийн хөтөч рүү илгээдэг. HTTP код 302 нь хүссэн эх сурвалжийг өөр URL хаягаар байршуулж байгааг хэрэглэгчийн хөтөчид мэдэгддэг. Хөтөч кодыг хүлээн авах үед нөөцийг шинэ байршилд нээнэ. Хүссэн вэб хуудас нь хүсэлтийг агуулсан хуудастай ижил сервер дээр байрлах эсвэл өөр серверт байрлаж болно. Одоогийн хуудастай ижил сервер дээр байрлах вэб хуудсыг хүсэх үед хариу өгөх аргыг дараах байдлаар ашиглаж болно:
Response. Redirect(“nextPage.html”);
Өөр сервер дээр байгаа вэб хуудсыг хүсэх үед хариу өгөх аргыг дараах байдлаар ашиглаж болно:
Response. Redirect(“https://www.newServer.com/newPage.aspx”);
Server. Transfer гэж юу вэ?
Өмнө дурьдсанчлан Дамжуулах нь серверийн объектын арга юм. Дамжуулах аргыг дуудах үед анхны хүсэлт нь ижил серверийн өөр хуудас руу шилжихээр өөрчлөгдөнө. Server. Transfer ашиглан шинэ хуудас хүсэх үед хэрэглэгчийн вэб хөтөч дээр харуулсан URL өөрчлөгдөхгүй. Учир нь шилжүүлэг сервер тал дээр явагддаг бөгөөд хөтөч нь шилжүүлгийн талаар ямар ч мэдлэггүй байдаг. Server. Transfer(string path, 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 хадгалагдаж, хуудасны агуулга дөнгөж солигдоно. Тиймээс хэрэглэгч үүнийг шинэ хуудсыг хавчуурга хийхэд ашиглах боломжгүй.