標籤:http ar sp for on 檔案 div bs html
Response.Redirect和Server.Transfer都能實現頁面的跳轉,但兩者又有很大區別。
一 地址欄裡顯示的地址不同
Response.Redirect會顯示跳轉的網頁的地址,而Server.Transfer顯示跳轉前的網頁的地址。
假如用上述兩種方式實現WebForm1.aspx跳轉到WebForm2.aspx
Response.Redirect跳轉後地址欄會顯示…/WebForm2.aspx
Server.Transfer 跳轉後地址欄則顯示…/WebForm1.aspx。
二 跳轉的流程不同
當伺服器碰到Response.Redirect語句時,會發送一條新URL的指令給瀏覽器,瀏覽器發送新URL的http請求,流程如下:
瀏覽器Http請求->伺服器執行->遇到Response.Redirect語句->伺服器發送新URL給用戶端瀏覽器->瀏覽器請求執行新URL。
當伺服器碰到Server.Transfer語句時,會直接轉向新的URL,流程如下:
瀏覽器Http請求->伺服器執行->遇到Server.Transfer語句->伺服器轉向新的檔案。三 跳轉的URL範圍不同
Response.Redirect可以定向到任何URL(包括站外的URL);而Server.Transfer只能跳轉到站內的URL,而且只能是相對位址。
四 跳轉的URL傳遞參數方式不同
前者跳轉的URL可以包含參數;而Server.Transfer跳轉的URL不能帶參數,但可以根據條用參數決定是否保留Request集合裡的內容。
如果要跳轉Test.aspx?id=1000,只能用前者,不能用後者。
五 效率
Server.Transfer頁面跳轉的效率比Response.Redirect高;且由於在伺服器上執行,可以相容任何瀏覽器,但是只能在IIS伺服器下運行。
六 對SEO的影響
頁面中採用Response.Redirect跳轉時,如果不返回301錯誤碼,則有可能受SEO懲罰;而Server.Transfer不會受SEO懲罰。
轉自http://www.sowsoy.com/topics-360.html
response.redirect和server.Transfer的差別詳解