Django之redirect實現原理

2021-08-20 21:36:16 字數 558 閱讀 9037

又稱為客戶端重定向:

該方法通過修改http協議的header部分,對瀏覽器下達重定向指令的,讓瀏覽器對在location中指定的url提出請求,使瀏覽器顯示重定向網頁的內容。該方法可以接受絕對的或相對的urls。如果傳遞到該方法的引數是乙個相對的url,那麼web container在將它傳送到客戶端前會把它轉換成乙個絕對的url。

標準意義上的「重定向」指的是http重定向,它是http協議規定的一種機制。這種機制是這樣工作的:當client向server傳送乙個請求,要求獲取乙個資源時,在server接收到這個請求後發現請求的這個資源實際存放在另乙個位置,於是server在返回的response中寫入那個請求資源的正確的url,並設定reponse的狀態碼為301(表示這是乙個要求瀏覽器重定向的response),當client接受到這個response後就會根據新的url重新發起請求。重定向有乙個典型的特癥,即:當乙個請求被重定向以後,最終瀏覽器上顯示的url往往不再是開始時請求的那個url了。這就是重定向的由來。

服務端重定向(dispatch)

參考資料:

forward與redirect之區別

forward方式 request.getrequestdispatcher somepage.jsp forwardrequest,response redirect方式 response.sendredirect somepage.jsp forward是伺服器內部重定向,程式收到請求後重新定向...

擴充套件方法 之 Redirect 篇

前言 單看標題,可能很多朋友不知道我到底想寫什麼。在寫這篇文章前,我自己跟自己鬥爭了很久,到底該不該寫這篇文章?畢竟從現實主義來看,這篇文章可能落入 瞎扯淡 的行列,因為對大多數朋友來說,以下的所有擴充套件方法可能都不會用到。如果真是這樣,就當作乙個 漫無邊際 的想法來看好了。如果你根本不想浪費你的...

redirect模組的秘密

所有的redirect記錄都在config url directs下面,但是某個node edit的redirect記錄只包含redirect到自己的記錄,且不驗證url的合理性。現在比如,a跳轉到b,那麼我們應該到b edit頁面去看是否有redirect記錄。並且,還有.htaccess頁面也會...