麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

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

2019-11-08 02:51:27
字體:
來源:轉載
供稿:網友

一、調用方式

我們知道,在servlet中調用轉發、重定向的語句如下:

request.getRequestDispatcher("new.jsp").forward(request, response);   //轉發到new.jsp

response.sendRedirect("new.jsp");   //重定向到new.jsp

在jsp頁面中你也會看到通過下面的方式實現轉發:

<jsp:forward page="apage.jsp" />

當然也可以在jsp頁面中實現重定向:

<%response.sendRedirect("new.jsp"); %> //重定向到new.jsp

二、本質區別

解釋一

一句話,轉發是服務器行為,重定向是客戶端行為。為什么這樣說呢,這就要看兩個動作的工作流程:

轉發過程:客戶瀏覽器發送http請求——》web服務器接受此請求——》調用內部的一個方法在容器內部完成請求處理和轉發動作——》將目標資源發送給客戶;在這里,轉發的路徑必須是同一個web容器下的url,其不能轉向到其他的web路徑上去,中間傳遞的是自己的容器內的request。在客戶瀏覽器路徑欄顯示的仍然是其第一次訪問的路徑,也就是說客戶是感覺不到服務器做了轉發的。轉發行為是瀏覽器只做了一次訪問請求。

重定向過程:客戶瀏覽器發送http請求——》web服務器接受后發送302狀態碼響應及對應新的location給客戶瀏覽器——》客戶瀏覽器發現是302響應,則自動再發送一個新的http請求,請求url是新的location地址——》服務器根據此請求尋找資源并發送給客戶。在這里location可以重定向到任意URL,既然是瀏覽器重新發出了請求,則就沒有什么request傳遞的概念了。在客戶瀏覽器路徑欄顯示的是其重定向的路徑,客戶可以觀察到地址的變化的。重定向行為是瀏覽器做了至少兩次的訪問請求的。

解釋二

重定向,其實是兩次request

第一次,客戶端request   A,服務器響應,并response回來,告訴瀏覽器,你應該去B。這個時候IE可以看到地址變了,而且歷史的回退按鈕也亮了。重定向可以訪問自己web應用以外的資源。在重定向的過程中,傳輸的信息會被丟失。

例子:

response.sendRedirect("loginsuccess.jsp");

請求轉發是服務器內部把對一個request/response的處理權,移交給另外一個

對于客戶端而言,它只知道自己最早請求的那個A,而不知道中間的B,甚至C、D。傳輸的信息不會丟失。

例子:

       RequestDispatcher dis=request.getRequestDispatcher(“loginsuccess.jsp”);

       Dis.forward(request,response);

解釋三

假設你去辦理某個執照

重定向:你先去了A局,A局的人說:“這個事情不歸我們管,去B局”,然后,你就從A退了出來,自己乘車去了B局。

轉發:你先去了A局,A局看了以后,知道這個事情其實應該B局來管,但是他沒有把你退回來,而是讓你坐一會兒,自己到后面辦公室聯系了B的人,讓他們辦好后,送了過來。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲小视频网站 | 久久久久久免费 | 国产精品9191| av在线免费网址 | 久久午夜国产 | 久久最新免费视频 | 国产亚洲欧美在线视频 | www.精品在线 | 国产精品麻豆一区二区三区 | 免费播放欧美毛片 | 91天堂国产在线 | 精品视频一区二区三区四区 | 成年免费在线视频 | 日韩黄a | 2019天天干夜夜操 | 成人国产精品久久 | 中文字幕伦乱 | 色七七亚洲| 26uuu成人人网图片 | 成人三级电影网 | 9999久久久久久 | 草莓视频久久 | 一区二区久久久久草草 | 日韩高清影视 | 欧美日韩网站在线观看 | 欧美一级免费视频 | 在线亚洲欧美 | 一级全毛片 | 久久国产精品久久精品国产演员表 | 石原莉奈日韩一区二区三区 | 成人三级电影网 | 免费看黄色一级大片 | 久久久精品视频在线观看 | 日本精品免费观看 | 网站激情 | 成人偷拍片视频在线观看 | 91在线视频观看 | 免费国产wwwwwww网站 | 亚洲va久久久噜噜噜久久男同 | 久久老司机精品视频 | 99影视电影电视剧在线播放 |