Server.Transfer與Response.Redirect的不同

在MSDN看關於Session的文檔時,發現示例代碼中有個Server.Transfer。Server.Transfer與Response.Redirect有什麼不同呢?去Google搜了一下,搜到一篇Blog:

Server的Transfer和Response的Redirect

關於Server.Transfer與Response.Redirect的不同之處,摘抄如下:

//

Transfer:
可靠編程
轉移的目標頁應是同一應用程序中的另一 Web 窗體頁(.aspx 頁)。不能使用 Server.Transfer 重定向到 .asp 或 .asmx 頁。

確保目標頁存在。

因爲 Server.Transfer 是在服務器上執行的,所以瀏覽器沒有頁更改的記錄。因此,如果用戶刷新此頁,則可能會產生意外的結果。

//

Redirect:
可靠編程
Redirect 方法是通過瀏覽器執行的,因此在服務器和瀏覽器之間產生額外的往返過程。

確保目標頁存在。

安全性
由於該方法是通過客戶端執行的,所以容易被欺騙和篡改。

//

Response是叫瀏覽器去重新轉向到指定的網頁,而Server自然是發生在服務器端爲主了,因此會有以下區別:

1. Server.Transfer只能夠轉跳到本地虛擬目錄指定的頁面,而Response.Redirect則十分靈活;
2. Server.Transfer可以將頁面參數方便傳遞到指定頁面;
3. 使用時,Server.Transfer跳到別的頁面後,瀏覽器顯示的地址不會改變,有時反而會造成誤會,當然也有些場合需要這樣的效果;
4. Server.Transfer可以減少客戶端對服務器的請求;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章