請求重定向和請求轉發的區別

奮鬥的小青年_發表於2017-04-30

重定向和轉發都可以讓瀏覽器獲得另外一個URL所指向的資源,但兩者的內部執行機制有著很大的區別。

1)  轉發只能將請求轉發給同一個Web應用中的元件;而重定向不僅可以重定向到當前應用程式的其他資源,還可以重定向到同一個站點的其他應用程式中的資源,甚至可以通過使用絕對URL重定向到其他站點的資源。

2)  重定向重定向的訪問結束後,瀏覽器位址列中顯示的URL會發生改變,由初始的URL地址變成重定向的目標URL;而呼叫重定向方法的請求轉發過程結束後,瀏覽器位址列保持初始的URL地址不變。

3)  重定向對瀏覽器的請求直接做出響應,響應結果就是告訴瀏覽器去重新發出對另外一個URL的訪問請求。

轉發是在伺服器端內部將請求轉發給另外一個資源,瀏覽器只知道發出了請求並得到了響應結果,並不知道在伺服器內部發生了轉發行為。

4)  轉發的呼叫者和被呼叫者之間共享相同的request物件和response物件,它們屬於同一個訪問請求和響應過程。而重定向的呼叫者和被呼叫者使用各自的request和response物件,他們屬於兩個獨立的訪問請求和響應過程。

5)  無論是重定向方法還是轉發方法,在呼叫它們之前,都不能有內容已經被實際輸出到了客戶端。如果緩衝區中已經有了一些內容,這些內容將被從緩衝區中清楚。

相關文章