Server.Transfer vs Response.Redirect
І сервер, і відповідь - це об'єкти в ASP.NET. Об'єкт сервера надає методи та властивості для різних завдань, пов'язаних із сервером. Передача - це метод об’єкта Server, який передає інформацію про поточний стан в інший .asp-файл для обробки. Об'єкт відповіді описує методи та властивості, пов'язані з відповіддю сервера. Перенаправлення - це метод об’єкта Response, і він надсилає повідомлення браузеру, змушуючи його підключитися до іншої URL-адреси. Незважаючи на те, що і Server.Transfer, і Response.Redirect можна використовувати для перенесення користувача з однієї сторінки на іншу, вони відрізняються тим, як вони насправді виконують це завдання.
Що таке Response.Redirect?
Перенаправлення - це метод в об'єкті Response. Коли викликається метод Відповідь, він надсилає HTTP-код 302 та URL-адресу запитуваної веб-сторінки в браузер користувачів. HTTP-код 302 повідомляє браузер користувачів, що запитуваний ресурс знаходиться під іншою URL-адресою. Коли браузер отримує код, він відкриває ресурс у новому місці. Запитана веб-сторінка може перебувати на тому ж сервері, що і сторінка, на якій містився запит, або вона може перебувати на якомусь іншому сервері. При запиті веб-сторінки, що знаходиться на тому ж сервері, що і поточна сторінка, метод відповіді можна використовувати наступним чином:
Response.Redirect ("nextPage.html");
При запиті веб-сторінки, що знаходиться на іншому сервері, метод відповіді можна використовувати наступним чином:
Response.Redirect ("http://www.newServer.com/newPage.aspx");
Що таке Server.Transfer?
Як було сказано раніше, Transfer - це метод сервера-об'єкта. Коли викликається метод Transfer, вихідний запит модифікується для перенесення на якусь іншу сторінку цього ж сервера. Коли запит на отримання нової сторінки за допомогою Server.Transfer, URL-адреса, показана у веб-браузері користувачів, не змінюється. Це відбувається тому, що передача відбувається на стороні сервера, і браузер не має ніяких знань про передачу. Використовуючи другу перевантаження для Server.Transfer (шлях рядка, bool збереженняForm) та встановлення другого параметра як істинного, розміщені змінні форми та рядки запиту можуть бути доступні для другої сторінки.
У чому різниця між 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-адреса, а вміст сторінки просто замінюється. Тому користувач не може використовувати його для закладки нової сторінки.