1. 程式人生 > >如何理解轉發與重定向?

如何理解轉發與重定向?

如何理解轉發與重定向?

兔子給雞打電話

場景一

兔子撥通雞的電話。
兔子:你好,有個問題想請教你!
雞:快說吧,沒有我不會的的問題!
兔子:1+1等於幾?
雞尋思半天也不會,又怕丟了面子!忙叫來身旁的山羊說:“兔子問1+1等於幾?”
山羊拿起電話:2!
兔子:謝謝!
兔子放下電話尋思:怎麼感覺雞的聲音有點怪,算了不管了!

場景二

兔子撥通雞的電話。
兔子:你好,有個問題想請教你!
雞:快說,我忙著呢!
兔子:1+1等於幾?
雞:不會,去問山羊吧!
雞撥通山羊的電話。
兔子:你好,等於幾?
山羊:什麼等於幾!
兔子:1+1等於幾?
山羊:2!
兔子:謝謝!

角色
兔子:客戶端瀏覽器
雞:服務端處理程式一(具體為一個URL,也可以理解為Servlet1)
山羊:服務端處理程式二(具體為一個URL,也可以理解為Servlet2)

分析

兔子打誰的電話知道了答案?場景一是雞,場景二是山羊!
轉發:位址列為轉向前的URL
重定向:位址列為轉向後的URL
兔子打了幾次電話?場景一一次,場景二兩次!
轉發:一次請求
重定向:兩次請求
場景二,兔子為什麼要再次提問?山羊不知道問題!
轉發:request裡的資訊會傳遞給處理程式二
重定向:request裡的資訊不會傳遞給處理程式二
山羊和雞不在同一個地方,能不能解決兔子的問題?場景一不能,場景二可以!
轉發:只能轉向到本應用(同一個專案)的處理程式
重定向:可以轉向到其他應用