我知道應該使用Server.Transfer()重定向到同一臺服務器上的另一個「.aspx」頁面。但是爲什麼我不應該使用這個方法重定向到另一個服務器或html頁面上的aspx頁面呢? 你的答案真的appriciated。爲什麼我們不能使用Server.Transfer()在另一臺服務器上重定向
回答
Server.Transfer只能發生在單個HttpContext上。每個虛擬目錄或應用程序都有自己的HttpContext對象,他們不知道它們是共存的!所以你不能那樣做。
首先,使用Server.Transfer轉移到另一個頁面可節省服務器資源。而不是告訴瀏覽器重定向,它只是改變Web服務器上的「焦點」並傳輸請求。這意味着你不會收到很多HTTP請求,因此可以減輕Web服務器的壓力,並使應用程序運行得更快。
但要小心:因爲「傳輸」進程只能在服務器上運行的站點上運行,所以不能使用Server.Transfer將用戶發送到外部站點。只有Response.Redirect可以做到這一點。
其次,Server.Transfer在瀏覽器中保留原始URL。這可以真正幫助簡化數據輸入技術,儘管在調試時可能會造成混淆。
來源:Server.Transfer vs. Response.Redirect
因此,在短暫的:Response.Redirect的只是告訴瀏覽器訪問另一個頁面。 Server.Transfer有助於減少服務器請求,使URL保持不變,並且通過一些小小的錯誤處理,可以傳輸查詢字符串和表單變量。
- Response.Redirect更加用戶友好,因爲網站訪問者可以爲他們重定向到的頁面添加書籤。
- 被轉移的頁面對客戶端來說顯示爲不同於實際的url。這意味着如果您從其他目錄轉移到頁面,則相關鏈接/圖像路徑等內容可能無法正常工作。
- Server.Transfer有一個可選參數,用於將表單數據傳遞到新頁面。
- 自發布版本以來,這不再有效,因爲Viewstate默認情況下具有更高的安全性(EnableViewStateMac默認爲true),因此新頁面無法訪問表單數據。您仍然可以通過請求原始處理程序訪問新頁面中原始頁面的值:
會話不在服務器之間共享,因此會是一個大問題。
的Server.Transfer的()只適用於一個web應用中。
使用Transfer,請求的「處理」在內部(到Web服務器/應用程序)傳遞到另一個頁面,所以Request對象保持不變。這意味着處理需要停留在Web應用程序中。
如果您想讓處理在另一個Web應用程序上繼續,那麼您將需要一個新的請求。這意味着您需要讓瀏覽器發出其他請求,因此您需要一個Response.Redirect。
感謝漢斯。這很清楚。 – 2009-09-09 10:09:31
- 1. 郵件服務器重定向到另一臺服務器
- 2. 在一臺服務器上工作但不在另一臺服務器上的Php代碼。爲什麼?
- 3. 重定向失敗,另一臺服務器使用.htaccess文件
- 4. 將URL從一臺服務器重定向到另一臺服務器?
- 5. Https從一臺服務器重定向到另一臺
- 6. 將服務請求重定向到另一臺服務器
- 7. 爲什麼我不能在遠程服務器上使用webClient?
- 8. 爲什麼我不能重定向到另一頁
- 9. 重定向或指向另一臺服務器的IP
- 10. IIS將用戶重定向到另一臺服務器
- 11. Codeigniter在一臺服務器上工作,但不在另一臺服務器上
- 12. fancybox在一臺服務器上運行,但不在另一臺服務器上
- 13. PHP在一臺服務器上工作,但不在另一臺服務器上
- 14. 爲什麼捆綁包不捆綁在一臺服務器上?
- 15. 爲什麼此幫助臺系統將我重定向到舊服務器?
- 16. 如何使用post方法在mvc中重定向到另一臺服務器?
- 17. 爲什麼在一臺服務器上這個MySQL查詢比另一臺服務器慢?
- 18. Nginx上的反向代理服務器從一臺服務器到另一臺
- 19. 從另一臺服務器登錄後重定向到服務器
- 20. 爲什麼我不能停止這臺服務器?
- 21. 將domain.com/path重定向到另一臺Apache服務器
- 22. 子域重定向到另一臺服務器
- 23. 重定向到另一臺服務器 - ASP MVC
- 24. .htaccess和圖像從另一臺服務器重定向
- 25. 將數據庫查詢重定向到另一臺服務器
- 26. Rails:爲什麼我的服務器將http重定向到https
- 27. 在另一臺服務器上爲我們的網站設置HTTPS/SSL證書
- 28. 重定向到另一臺服務器並從另一臺服務器重新導向後,我可以依賴會話可用性嗎?
- 29. PHP腳本可以在一臺服務器上運行,但不能在另一臺服務器上運行
- 30. 爲什麼ajax在一臺服務器上工作而不是下一臺?
Server.Transfer也有一個問題。如果您轉移到完全不同的路徑,您可能會破壞其他文件依賴關係。 – 2009-09-04 08:10:24