初學 Java web 思考 請求轉發與重定向區別

請求轉發與重定向區別

先來了解一下什麼事請求轉發和重定向。

舉一個例子說明:

假如小王向我借錢100萬,但此時我沒有這麼多錢,我向小李借了100萬,然後再借給小明,這種方式可以理解爲請求轉發。

如果我沒有向小李借錢,而是告訴小王:“小李有100萬,你去向他借”。然後小王向小李去借錢了。這種方式可以理解爲重定向。

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

1、轉發只能將請求轉發給同一個Web應用中的組件;而重定向可以重定向到當前應用程序中的其他資源,同一個站點上的其他應用程序中的資源,或者其他站點的資源。

2、重定向的訪問過程結束後,瀏覽器地址欄中顯示的URL會發生改變,變成重定向的目標URL;

而請求轉發過程結束後,瀏覽器地址欄保持初始的URL地址不變。

3、重定向對瀏覽器的請求直接作出響應,響應的結果就是告訴瀏覽器去重新發出對另外一個URL的訪問請求;請求轉發在服務器端內部將請求轉發給另一個資源,瀏覽器只知道發出了請求並得到了響應結果,並不知道在服務器程序內部發生了轉發行爲。

4、請求轉發調用者與被調用者之間共享相同的request對象和response對象,他們屬於同一個訪問請求和響應過程;而重定向調用者與被調用者使用各自的request對象和response對象,他們屬於兩個獨立的訪問請求和響應過程。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章