- 轉向:請求轉發是指將請求再轉發到其他地址,轉發過程中使用的是同一個請求,轉發的地址欄內容不變。
- 重定向:是指由原請求地址重新定位到某個新地址,原有的請求失效,客戶端看到的是新的請求返回的相應結果。
舉例說明吧:
轉發過程:
客戶端對servlet1容器發起請求,但是servlet1想讓servlet2進行一波客戶端請求處理,於是就調用servlet協作讓servlet2進行處理。
重定向過程:
客戶端對servlet1容器發起請求,但是servlet1想讓servlet2進行一波客戶端請求處理,Servlet1調用sendRedirect()方法,將客戶端的請求重定向到Servlet2,然後瀏覽器重新請求一次servlet2,servlet2進行請求處理
區別
- 請求次數不一樣
- .響應之後,地址欄是否發生改變
- 重定向的響應結果可以“外包”出去;請求轉發的相應結果只能靠同一個WEB應用中的組件(如另外一個servlet頁面)
- 重定向對瀏覽器的請求直接作出響應,讓瀏覽器去重新發出對另外一個URL的訪問請求
- 請求轉發中用戶並不知道是誰完成了該工作,瀏覽器只知道發出請求和得到相應結果,並不知道服務器內部發生了轉換行爲