請求轉發和重定向,Forword與Redirect的區別是什麼
阿新 • • 發佈:2019-02-19
先說一下這兩個的概念:
轉發過程:客戶瀏 覽器傳送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:低.