В чем разница между Server.Transfer
и Response.Redirect
?В чем разница между Server.Transfer и Response.Redirect?
ответ
Server.Transfer()
работает только со страницами вашего сайта, это означает, что сервер начинает рендеринг новой страницы с нуля.
Response.Redirect()
- обычное перенаправление, которое работает с любым URL-адресом.
Response.Redirect отправляет ответ «302 Moved Temporarily» клиенту, затем клиентский браузер отправляет запрос в это место.
Server.Transfer переносит управление с одной страницы на другую со стороны сервера, поэтому исходные буфера для запросов и ответов остаются такими, какими они находятся в момент, когда передача выполнена.
Это означает, что Response.Redirect требует двусторонней поездки к клиенту, но Server.Transfer этого не делает. Другое отличие заключается в том, что Server.Transfer появляется в браузере как исходный url ... например. рассмотрим, что Page1.aspx делает server.transfer на page2.aspx. В этом случае страница_паска отображается в адресной строке, даже если на самом деле они отображаются на странице2.aspx. Если вместо этого Page1.aspx выполнил Response.Redirect, то будет показан файл page2.aspx.
Так что в зависимости от того, что вы хотите оптимизировать Response.Redirect лучше, если вы хотите правильно поддерживать закладку закладок, а Server.Transfers лучше, если вы хотите минимизировать круглые поездки клиента на сервер.
Ой, и у меня есть http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=15 Это описывает это намного лучше с оговорками.
Server.Transfer дает вам возможность установить значения параметров на целевую страницу.
Response.Redirect should be used :
- , если мы хотим, чтобы перенаправить запрос на тот же сервер или на какой-либо другой веб-сервер
если мы не будем заботиться о причинении дополнительных туда и обратно на сервер по каждого запроса
Если нам не нужно сохранять строки запроса и формы с первоначальный запрос
, если мы хотим, чтобы наши пользователи могли видеть новую перенаправлена URL, где он перенаправляются в своем браузере
Response.Redirect является более удобным, так как посетитель сайта может закладки страница, которая они перенаправляются.
Server.Transfer следует использовать:
- , если мы хотим, чтобы передать запрос текущей страницы на другую страницу .aspx на том же сервере не на другой сервер
если ваш сервер www.yahoo.com вы не можете использовать сервер.Передача перейти к www.microsoft.com - , если мы хотим сохранить ресурсы сервера и избежать ненужных туда и обратно на сервер
- , если мы хотим сохранить строки запроса и переменные формы -Если нам не нужны чтобы показать реальный URL-адрес, где мы перенаправили запрос в пользователей. Веб-браузер
- 1. разница между 'Response.Redirect' и '' Server.Tansfer
- 2. Разница между Response.Redirect() и Response.Write()
- 3. 404 page response.redirect vs server.transfer
- 4. Аспекты производительности Server.Transfer() с Response.Redirect()
- 5. HTTPModule BeginRequest должен нам Response.Redirect или Server.Transfer
- 6. PostBackUrl Vs Response.Redirect
- 7. Почему не Server.Transfer почему только Response.Redirect
- 8. В чем разница между «и»?
- 9. В чем разница между `{}` и `[]`?
- 10. В чем разница между == и ===?
- 11. В чем разница между «+» и «\ +»?
- 12. В чем разница между + = и = +?
- 13. В чем разница между/* ... */и/** ... */
- 14. В чем разница между: и +:
- 15. В чем разница между $ {} и # {}
- 16. В чем разница между $ _. и $ _
- 17. В чем разница между = и: =
- 18. В чем разница между && и &?
- 19. В чем разница между $ {} и # {}?
- 20. В чем разница между + и%?
- 21. В чем разница между + = и = +
- 22. В чем разница между # {} $ {} и% {}?
- 23. В чем разница между «» и «»?
- 24. В чем разница между ['#'] и [. = '#']?
- 25. В чем разница между == ~ и! =?
- 26. В чем разница между «/» и «/ *»?
- 27. В чем разница между «./» и «../»?
- 28. В чем разница между {}()) и {})()
- 29. В чем разница между «'» и «»
- 30. В чем разница между «и«
замечательный ответ! Способ, которым я это вижу, Server.Transfer обрабатывает запрос на стороне сервера. Response.Redirect выполняет другую обратную поездку от клиента. –
На самом деле, 'Response.Redirect' выдает сообщение« 302 Moved Temporarily ». 304 «Не изменен», в котором браузер указывает, что он использует свою кешированную версию, в противном случае - на месте. В качестве точки интереса ASP.NET 4 представляет «Response.RedirectPermanent», который выдает сообщение «301 Moved Permanentently». –
@ Zhaph, хорошая информация о .RedirectPermanent. Выполнение 301 - это не так много строк кода, но ярлык по-прежнему хорош. –