Server. Transfer vs Response. Redirect
Server и Response являются объектами в ASP. NET. Объект сервера предоставляет методы и свойства для различных задач, связанных с сервером. Transfer - это метод объекта 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 - это метод Объекта Сервера. При вызове метода Transfer исходный запрос модифицируется для передачи на другую страницу того же сервера. Когда новая страница запрашивается с использованием Server. Transfer, URL-адрес, отображаемый в веб-браузере пользователя, не изменяется. Это связано с тем, что передача происходит на стороне сервера, и браузер ничего не знает о передаче. Используя вторую перегрузку для Server. Transfer(string path, bool preserveForm) и установив для второго параметра значение 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-адрес сохраняется, а содержимое страницы просто заменяется. Таким образом, пользователь не может использовать его для добавления новой страницы в закладки.