Server. Transfer против Response. Redirect
Сервер и ответ являются объектами в ASP. NET. Объект сервера предоставляет методы и свойства для различных задач, связанных с сервером. Передача - это метод объекта Server, который отправляет информацию о текущем состоянии в другой файл.asp для обработки. Объект ответа описывает методы и свойства, связанные с ответом сервера. Перенаправление - это метод объекта Response, который отправляет сообщение в браузер, заставляя его подключиться к другому URL-адресу. Несмотря на то, что и Server. Transfer, и Response. Redirect могут использоваться для переноса пользователя с одной страницы на другую, они отличаются тем, как они фактически выполняют эту задачу.
Что такое Response. Redirect?
Перенаправление - это метод в объекте Response. Когда вызывается метод Response, он отправляет HTTP-код 302 и URL-адрес запрошенной веб-страницы в браузер пользователя. HTTP-код 302 информирует браузер пользователя о том, что запрошенный ресурс находится под другим URL-адресом. Когда браузер получает код, он открывает ресурс в новом месте. Запрошенная веб-страница может находиться на том же сервере, что и страница, содержащая запрос, или она может находиться на каком-либо другом сервере. При запросе веб-страницы, находящейся на том же сервере, что и текущая страница, метод Response может использоваться следующим образом:
Response. Redirect («nextPage.html»);
При запросе веб-страницы, находящейся на другом сервере, метод ответа может использоваться следующим образом:
Response. Redirect («https://www.newServer.com/newPage.aspx»);
Что такое Server. Transfer?
Как упоминалось ранее, передача - это метод объекта сервера. Когда вызывается метод Transfer, исходный запрос изменяется для передачи на другую страницу того же сервера. Когда новая страница запрашивается с помощью Server. Transfer, URL-адрес, отображаемый в веб-браузере пользователя, не изменяется. Это связано с тем, что передача происходит на стороне сервера, и браузер ничего не знает о передаче. Используя вторую перегрузку для Server. Transfer (строковый путь, 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. Перенаправление изменяет URL-адрес в адресной строке браузера при доступе к новой странице, но при использовании сервера. Передача исходного URL-адреса сохраняется, а содержимое страницы просто заменяется. Таким образом, пользователь не может использовать его для добавления новой страницы в закладки.