Разница между response.redirect и server.transfer
Возможные дубликаты:
Response.Redirect vs. Server.Transfer
Server.Transfer Vs. Response.Redirect
В чем разница между response.redirect и server.transfer?
Единственное различие, которое я знаю, это: В response.redirect URL-адрес браузера изменяется на целевую страницу, а также на server.transfer URL остается таким же!
любая другая разница?
Ответы
Ответ 1
Response.Redirect следует использовать, когда:
-
мы хотим перенаправить запрос на некоторые простые HTML-страницы на нашем
сервером или другим веб-сервером.
-
мы не заботимся о том, чтобы на сервер каждый запрос
-
нам не нужно сохранять строки запроса и переменные формы из исходный запрос
-
мы хотим, чтобы наши пользователи могли видеть новый перенаправленный URL, где он перенаправляется в его браузере (и уметь добавлять его в закладки, если его необходимо)
Server.Transfer следует использовать, когда:
-
мы хотим перенести текущий запрос страницы на другую страницу .aspx на том же сервере
-
мы хотим сохранить ресурсы сервера и избежать ненужных
обратные вызовы на сервер
-
мы хотим сохранить Query String и Form Variables (необязательно)
-
нам не нужно показывать реальный URL-адрес, где мы перенаправили запрос в
пользовательский веб-браузер
Ответ 2
Response.Redirect()
отправляет заголовок перенаправления клиенту, а сам клиент запрашивает новую страницу.
Server.Transfer()
останавливает показ текущей страницы и начинает рендеринг другой. Клиент не мудрее.
Вот почему Server.Transfer()
нельзя использовать для перенаправления на страницы, обслуживаемые другим сервером.
Ответ 3
Server.Transfer более эффективен, потому что с Response.Redirect вы указываете браузеру делать другой запрос (другой сетевой маршрут), а Server.Transfer - "сервер-внутренний"...
Ответ 4
Данные формы передаются на сервере Server.Transfer, но не на Response.Redirect, еще одно отличие.
Кроме того, если не ошибаться, Server.Transfer работает на одном сервере, а не на межсерверных страницах.