Server. Transfer vs Response. Redirect
Server и Response са обекти в ASP. NET. Сървърният обект предоставя методи и свойства за различни задачи, свързани със сървър. Трансферът е метод на обекта Server и изпраща информация за текущото състояние към друг.asp файл за обработка. Обектът Response описва методи и свойства, свързани с отговора на сървъра. Пренасочването е метод на обекта 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?
Както споменахме по-рано, Transfer е метод на сървърния обект. Когато се извика методът за прехвърляне, оригиналната заявка се променя, за да се прехвърли към друга страница в същия сървър. Когато се поиска нова страница с помощта на Server. Transfer, URL адресът, показан в уеб браузъра на потребителя, не се променя. Това е така, защото прехвърлянето се извършва от страна на сървъра и браузърът няма информация за прехвърлянето. Чрез използване на второто претоварване за Server. Transfer(път на низ, bool SaveForm) и задаване на втория параметър като true, публикуваните променливи на формуляр и низове на заявки могат да бъдат предоставени на втората страница.
Каква е разликата между 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 адрес се запазва и съдържанието на страницата просто се заменя. Така че потребителят не може да го използва, за да маркира новата страница.