1. 程式人生 > >請求轉發和重定向,Forword與Redirect的區別是什麼

請求轉發和重定向,Forword與Redirect的區別是什麼

先說一下這兩個的概念:

轉發過程:客戶瀏 覽器傳送http請求----》web伺服器接受此請求--》呼叫內部的一個方法在容器內部完成請求處理和轉發動作----》將目標資源傳送給客戶;在這 裡,轉發的路徑必須是同一個web容器下的url,其不能轉向到其他的web路徑上去,中間傳遞的是自己的容器內的request。在客戶瀏覽器路徑欄顯 示的仍然是其第一次訪問的路徑,也就是說客戶是感覺不到伺服器做了轉發的。轉發行為是瀏覽器只做了一次訪問請求。

重定向過程:其實是兩次request,第一次,客戶端request A,伺服器響應,並response回來,告訴瀏覽器,你應該去B。這個時候IE可以看到地址變了,而且歷史的回退按鈕也亮了。重定向可以訪問自己web應用以外的資源。在重定向的過程中,傳輸的資訊會被丟失。

以下是區別:

1、從資料共享上

      Forword是一個請求的延續,可以共享request的資料

      Redirect開啟一個新的請求,不可以共享request的資料

2、從位址列

      Forword轉發位址列不發生變化

      Redirect轉發位址列發生變化

3. 從運用地方來說
    forward:一般用於使用者登陸的時候,根據角色轉發到相應的模組.
    redirect:一般用於使用者登出登陸時返回主頁面和跳轉到其它的網站等

4. 從效率來說
    forward:高.
    redirect:低.