一種動態(tài)檢測url重定向死循環(huán)的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種動態(tài)檢測URL重定向死循環(huán)的方法及裝置,該方法包括:A、接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的URL的跳轉(zhuǎn)請求,將目的URL添加到已檢測URL鏈末端,得到待檢測URL鏈;B、判斷待檢測URL鏈中是否存在URL環(huán),若待檢測URL鏈中存在URL環(huán),則確定檢測到待檢測URL鏈中存在URL重定向死循環(huán);若待檢測URL鏈中不存在URL環(huán),則跳轉(zhuǎn)至目的URL,在確定預(yù)設(shè)URL鏈中存在下一個URL、且通知應(yīng)用系統(tǒng)發(fā)出攜帶下一個URL作為目的URL的跳轉(zhuǎn)請求后,轉(zhuǎn)向步驟A。該方案檢測效率高,可避免應(yīng)用系統(tǒng)面臨的威脅。
【專利說明】—種動態(tài)檢測URL重定向死循環(huán)的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本申請涉及通信【技術(shù)領(lǐng)域】,尤指一種動態(tài)檢測統(tǒng)一資源定位符URL重定向死循環(huán)的方法及裝置。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)應(yīng)用系統(tǒng)中,當用戶請求訪問網(wǎng)頁時,經(jīng)常會用到統(tǒng)一資源定位符(Uniform Resource Locator,URL)重定向跳轉(zhuǎn)。URL (也可以稱為網(wǎng)頁地址、網(wǎng)址)是因特網(wǎng)上標準的資源的地址;重定向是把一個目錄或文件的訪問請求轉(zhuǎn)發(fā)至另一個目錄或者文件,當用戶發(fā)出相應(yīng)的訪問請求時,將自動跳轉(zhuǎn)到指定的位置。URL重定向(也可以稱為網(wǎng)址重定向或網(wǎng)域名稱轉(zhuǎn)址)是指當用戶請求訪問某個網(wǎng)址時,將其跳轉(zhuǎn)到另一網(wǎng)址的技術(shù),也就是把一個URL重定向到另一個URL。
[0003]若對于URL重定向跳轉(zhuǎn)處理不當,可能引發(fā)網(wǎng)頁跳轉(zhuǎn)死循環(huán),例如:對于URL鏈a — b — c — b來說,在該URL鏈中存在一個URL環(huán)即b — c — b,當應(yīng)用系統(tǒng)按照上述URL鏈重定向跳轉(zhuǎn)時,就會按照上述URL鏈中存在的URL環(huán)一直跳轉(zhuǎn),這時就會發(fā)生URL重定向死循環(huán);其中,a表示用戶請求訪問的URL,b、c表示跳轉(zhuǎn)后的URL。當應(yīng)用系統(tǒng)發(fā)生URL重定向死循環(huán)后,應(yīng)用系統(tǒng)將面臨致命的威脅:系統(tǒng)訪問量大幅上升;線程資源被持續(xù)占用得不到釋放;引發(fā)內(nèi)存泄露。在計算機科學(xué)中,內(nèi)存泄漏是指由于疏忽或錯誤造成程序未能釋放不再使用的內(nèi)存的現(xiàn)象。這種現(xiàn)象會因為可用內(nèi)存數(shù)量減少導(dǎo)致計算機性能降低。在最壞的情況下,過多的可用內(nèi)存被分配掉會導(dǎo)致全部或部分設(shè)備停止正常工作,或者應(yīng)用程序崩潰。
[0004]現(xiàn)有技術(shù)只能通過人工監(jiān)控Java虛擬機(Java Virtual Machine,JVM)、流量等方法,檢測URL重定向死循環(huán),這種人工檢測URL重定向死循環(huán)的方法效率非常低,而且不能根本避免應(yīng)用系統(tǒng)可能面臨的威脅。
【發(fā)明內(nèi)容】
[0005]本申請實施例提供一種動態(tài)檢測URL重定向死循環(huán)的方法及裝置,用以解決現(xiàn)有的人工檢測URL重定向死循環(huán)的方法效率非常低,而且不能根本避免應(yīng)用系統(tǒng)可能面臨的威脅的問題。
[0006]一種動態(tài)檢測URL重定向死循環(huán)的方法,包括:
[0007]A、接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的統(tǒng)一資源定位符URL的跳轉(zhuǎn)請求,將所述目的URL添加到已檢測URL鏈末端,得到待檢測URL鏈,所述已檢測URL鏈順序存儲應(yīng)用系統(tǒng)已跳轉(zhuǎn)的URL ;
[0008]B、判斷所述待檢測URL鏈中是否存在URL環(huán),若所述待檢測URL鏈中存在URL環(huán),則確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán);若所述待檢測URL鏈中不存在URL環(huán),則跳轉(zhuǎn)至所述目的URL,在確定所述預(yù)設(shè)URL鏈中存在下一個URL、且通知應(yīng)用系統(tǒng)發(fā)出攜帶下一個URL作為目的URL的跳轉(zhuǎn)請求后,轉(zhuǎn)向步驟A。[0009]一種動態(tài)檢測URL重定向死循環(huán)的裝置,包括:
[0010]接收單元,用于接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的統(tǒng)一資源定位符URL的跳轉(zhuǎn)請求;
[0011]添加單元,用于將所述目的URL添加到已檢測URL鏈末端,得到待檢測URL鏈,所述已檢測URL鏈順序存儲應(yīng)用系統(tǒng)已跳轉(zhuǎn)的URL ;
[0012]檢測單元,用于判斷所述待檢測URL鏈中是否存在URL環(huán),若所述待檢測URL鏈中存在URL環(huán),則確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán);若所述待檢測URL鏈中不存在URL環(huán),則跳轉(zhuǎn)至所述目的URL,在確定所述預(yù)設(shè)URL鏈中存在下一個URL、且通知應(yīng)用系統(tǒng)發(fā)出攜帶下一個URL作為目的URL的跳轉(zhuǎn)請求后,轉(zhuǎn)向所述接收單元。
[0013]本申請有益效果如下:
[0014]本申請實施例提供的動態(tài)檢測URL重定向死循環(huán)的方法及裝置,A、接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的統(tǒng)一資源定位符URL的跳轉(zhuǎn)請求,將所述目的URL添加到已檢測URL鏈末端,得到待檢測URL鏈,所述已檢測URL鏈順序存儲應(yīng)用系統(tǒng)已跳轉(zhuǎn)的URL ;B、判斷所述待檢測URL鏈中是否存在URL環(huán),若所述待檢測URL鏈中存在URL環(huán),則確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán);若所述待檢測URL鏈中不存在URL環(huán),則跳轉(zhuǎn)至所述目的URL,在確定所述預(yù)設(shè)URL鏈中存在下一個URL、且通知應(yīng)用系統(tǒng)發(fā)出攜帶下一個URL作為目的URL的跳轉(zhuǎn)請求后,轉(zhuǎn)向步驟A。在該方案中創(chuàng)建與預(yù)設(shè)URL鏈對應(yīng)的已檢測URL鏈,通過接收到應(yīng)用系統(tǒng)按照預(yù)設(shè)URL跳轉(zhuǎn)時發(fā)出的跳轉(zhuǎn)請求,將該跳轉(zhuǎn)請求攜帶的目的URL添加到已檢測URL中得到待檢測URL鏈,來動態(tài)更新并確定待檢測URL鏈中是否存在URL重定向死循環(huán),該方案無需人工監(jiān)控JVM、流量等方法,就可以檢測URL重定向死循環(huán),這樣就可以提高檢測效率,從而避免應(yīng)用系統(tǒng)可能面臨的系統(tǒng)訪問量大幅上升、線程資源被持續(xù)占用得不到釋放、內(nèi)存泄露等威脅。
【專利附圖】
【附圖說明】
[0015]圖1為本申請實施例中動態(tài)檢測URL重定向死循環(huán)的方法流程圖;
[0016]圖2為本申請實施例中混合URL重定向的示例圖;
[0017]圖3為本申請實施例中動態(tài)檢測URL重定向死循環(huán)裝置的結(jié)構(gòu)示意圖;
[0018]圖4為本申請實施例中優(yōu)選的動態(tài)檢測URL重定向死循環(huán)裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0019]針對現(xiàn)有的人工檢測URL重定向死循環(huán)的方法效率非常低,而且不能根本避免應(yīng)用系統(tǒng)可能面臨的威脅的問題,本申請實施例提供一種動態(tài)檢測URL重定向死循環(huán)的方法,該方法的流程如圖1所示,具體執(zhí)行步驟如下:
[0020]SlO:接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的URL的跳轉(zhuǎn)請求。
[0021]在應(yīng)用系統(tǒng)中存儲有預(yù)設(shè)URL鏈,預(yù)設(shè)URL鏈可以用一段程序代碼表示,當然也可以用其它方式表示。在會話過程中,應(yīng)用系統(tǒng)會按照預(yù)設(shè)URL鏈中的URL順序進行跳轉(zhuǎn),當應(yīng)用系統(tǒng)在確定了跳轉(zhuǎn)的URL后,會將確定的要跳轉(zhuǎn)的URL作為目的URL攜帶在跳轉(zhuǎn)請求中。
[0022]Sll:將目的URL添加到已檢測URL鏈末端,得到待檢測URL鏈,已檢測URL鏈順序存儲應(yīng)用系統(tǒng)已跳轉(zhuǎn)的URL。
[0023]在動態(tài)檢測URL重定向死循環(huán)的過程中,會創(chuàng)建與預(yù)設(shè)URL對應(yīng)的已檢測URL鏈,已檢測URL鏈順序存儲應(yīng)用系統(tǒng)已跳轉(zhuǎn)的URL。在接收到應(yīng)用系統(tǒng)發(fā)出的跳轉(zhuǎn)請求后,將跳轉(zhuǎn)請求中攜帶的目的URL添加到已檢測URL鏈末端,就可以得到待檢測URL鏈,這樣待檢測URL鏈中包含的URL會根據(jù)應(yīng)用系統(tǒng)發(fā)出的跳轉(zhuǎn)請求而變化,也就是根據(jù)會話而發(fā)生變化。
[0024]待檢測URL鏈是有檢測周期的,檢測周期是指待檢測URL鏈從創(chuàng)建到消亡的時間。待檢測URL鏈是基于會話的,同時還是基于請求的,本申請是適用于分布式應(yīng)用系統(tǒng)。
[0025]S12:判斷待檢測URL鏈中是否存在URL環(huán),若是,執(zhí)行S15 ;否則,執(zhí)行S13。
[0026]以待檢測URL鏈a — b — c — b為例說明,當應(yīng)用系統(tǒng)跳轉(zhuǎn)至b以后,下一個跳轉(zhuǎn)的是c,再下一個跳轉(zhuǎn)的又是b,也就是說,只要是跳轉(zhuǎn)到b或c都會導(dǎo)致URL重定向死循環(huán),因此,b、c就組成一個URL環(huán)。
[0027]S13:跳轉(zhuǎn)至目的URL,確定預(yù)設(shè)URL鏈中是否存在下一個URL,若是,執(zhí)行S14 ;否貝1J,執(zhí)行S16。
[0028]S14:通知應(yīng)用系統(tǒng)發(fā)出攜帶下一個URL作為目的URL的跳轉(zhuǎn)請求,執(zhí)行S10。
[0029]當待檢測URL鏈中不存在URL環(huán),再確定預(yù)設(shè)URL中是否存在下一個URL,也就是說應(yīng)用系統(tǒng)是否已經(jīng)按照預(yù)設(shè)URL完成跳轉(zhuǎn),當預(yù)設(shè)URL中存在下一個URL時,通知應(yīng)用系統(tǒng)發(fā)出攜帶下一個URL作為目的URL的跳轉(zhuǎn)請求,執(zhí)行S10,然后繼續(xù)執(zhí)行后續(xù)步驟。
[0030]S15:確定檢測到待檢測URL鏈中存在URL重定向死循環(huán)。
[0031]S16:確定檢測到待檢測URL鏈中不存在URL重定向死循環(huán)。
[0032]當預(yù)設(shè)URL鏈中不存在下一個URL時,也就是說應(yīng)用系統(tǒng)已經(jīng)按照預(yù)設(shè)URL鏈完成了所有跳轉(zhuǎn),這時就可以確定待檢測URL鏈中不存在URL重定向死循環(huán)。
[0033]較佳的,上述SlO中的接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的URL的跳轉(zhuǎn)請求之前,還包括:接收客戶端發(fā)送的訪問頁面請求后,查詢存儲有導(dǎo)致URL重定向死循環(huán)的URL的黑名單,確定黑名單中是否包含客戶端請求訪問的URL;若黑名單中不包含客戶端請求訪問的URL,則通知應(yīng)用系統(tǒng)發(fā)出攜帶客戶端請求訪問的URL作為目的URL的跳轉(zhuǎn)請求;若黑名單中包含客戶端請求訪問的URL,則確定檢測到待檢測URL鏈中存在URL重定向死循環(huán)。
[0034]黑名單中存儲的是會導(dǎo)致URL重定向死循環(huán)的URL,繼續(xù)沿用上例,只要是跳轉(zhuǎn)到b或c都會導(dǎo)致URL重定向死循環(huán),所以b和c就會存在于黑名單中。
[0035]在J2EE1.4的servlet2.4規(guī)范中,增加了過濾器的dispatcher屬性,可以取值為 FORWARD/REQUEST/INCLUDE/ERROR/ASYNC,默認為 REQUEST。該屬性指定了過濾器需要攔截的請求類型,可配置一個或者多個dispatcher類型。URL重定向包括外部重定向和內(nèi)部重定向,外部重定向?qū)?yīng)的過濾器dispatcher屬性是REQUEST,內(nèi)部重定向?qū)?yīng)的是FORWARD。
[0036]本申請實施例適用于所有的URL重定向死循環(huán)檢測場景,包括內(nèi)部重定向、外部重定向以及內(nèi)部外部混合重定向類型,并且適用于分布式應(yīng)用系統(tǒng)的實時監(jiān)測。對于內(nèi)部外部混合重定向來說,接收到客戶端發(fā)送的訪問頁面請求后的重定向為外部重定向,接收到應(yīng)用系統(tǒng)發(fā)出的跳轉(zhuǎn)請求后的重定向為內(nèi)部重定向。繼續(xù)沿用上例,參見圖2當客戶端發(fā)送的訪問頁面請求為a,應(yīng)用系統(tǒng)處理后發(fā)出跳轉(zhuǎn)請求Request重定向到b,經(jīng)過處理后發(fā)出跳轉(zhuǎn)請求Forward重定向到c,再經(jīng)過處理后發(fā)出跳轉(zhuǎn)請求Forward重定向到b。
[0037]對于內(nèi)部外部混合重定向來說,當接收客戶端發(fā)送的訪問頁面請求后,可以首先判斷黑名單中是否包含客戶端請求訪問的URL,若不包含,則可以通知應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈發(fā)出攜帶目的URL的跳轉(zhuǎn)請求;若包含,則可以確定待檢測URL鏈中存在URL重定向死循環(huán)。
[0038]較佳的,上述Sll中的得到待檢測URL鏈之后,S12中的判斷待檢測URL鏈中是否存在URL環(huán)之前,還包括:查詢存儲有導(dǎo)致URL重定向死循環(huán)的URL的黑名單,確定黑名單中是否包含目的URL ;若黑名單中不包含目的URL,則轉(zhuǎn)向S12 ;若黑名單中包含目的URL,則確定檢測到待檢測URL鏈中存在URL重定向死循環(huán)。
[0039]在判斷待檢測URL中是否存在URL環(huán)之前,可以首先判斷目的URL是否存在于黑名單中,若是,可以直接確定檢測到待檢測URL鏈中存在URL重定向死循環(huán),這樣就可以省卻后續(xù)的判斷步驟,從而可以提高判斷效率。
[0040]較佳的,上述Sll中的將目的URL添加到已檢測URL鏈末端,具體包括:判斷跳轉(zhuǎn)請求是否攜帶鏈標識信息;若跳轉(zhuǎn)請求中攜帶鏈標識信息,則將目的URL添加到攜帶鏈標識信息的已檢測URL鏈末端;若跳轉(zhuǎn)請求中沒有攜帶鏈標識信息,則創(chuàng)建鏈標識信息和攜帶創(chuàng)建的鏈標識信息的空白已檢測URL鏈,將目的URL添加到創(chuàng)建的已檢測URL鏈末端,并將創(chuàng)建的鏈標識信息通知應(yīng)用系統(tǒng)。
[0041 ] 在一個會話中,會存在多個待檢測URL鏈,需要給每個待檢測URL鏈分配一個鏈標識信息,鏈標識信息可以是一個32位的字符串,在整個檢測周期內(nèi)存在,并在應(yīng)用系統(tǒng)和客戶端傳遞。當待檢測URL鏈消亡時,鏈標識信息也會被清除。在這里僅僅是舉例說明鏈標識信息的形式,當然也可以采用其他形式的鏈標識信息,這里不再贅述。
[0042]當確定跳轉(zhuǎn)請求中攜帶鏈標識信息時,這就說明已經(jīng)存在攜帶同樣鏈標識信息的與預(yù)設(shè)URL鏈對應(yīng)的已檢測URL鏈了,所以直接將目的URL添加到攜帶有同樣鏈標識信息的已檢測URL鏈末端;當確定跳轉(zhuǎn)請求中沒有攜帶鏈標識信息時,也就是說還不存在與預(yù)設(shè)URL鏈對應(yīng)的已檢測URL鏈,這時就需要創(chuàng)建鏈標識信息,以及攜帶創(chuàng)建的鏈標識信息的空白的已檢測URL鏈,然后將并將目的URL添加到創(chuàng)建的已檢測URL鏈末端即可,也就相當于這時候待檢測URL鏈中只有一個URL。同時通知應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)后續(xù)在發(fā)送跳轉(zhuǎn)請求時,可以直接攜帶該鏈標識信息,這就可以直接根據(jù)鏈標識信息找到攜帶有同樣鏈標識信息的已檢測URL鏈,并將URL添加到待檢測URL末端了。
[0043]在這里除將URL添加到已檢測URL鏈外,還可存儲一些擴展信息如請求時間、請求參數(shù)等,擴展成URL鏈節(jié)點,方便排查。
[0044]具體的,上述S12中的判斷待檢測URL鏈中是否存在URL環(huán)的過程,包括以下兩種方法:
[0045]第一種方法,當待檢測URL鏈中URL的個數(shù)大于設(shè)定閾值時,確定待檢測URL鏈中存在URL環(huán);否則,確定待檢測URL鏈中不存在URL環(huán)。
[0046]當待檢測URL鏈中的URL個數(shù)過多時,也就是說應(yīng)用系統(tǒng)一直不斷在進行跳轉(zhuǎn)時,這時就可以認為待檢測URL鏈中存在URL環(huán),也就是說有可能存在URL重定向死循環(huán)。其中,設(shè)定閾值可以依據(jù)實際需要進行設(shè)定,當應(yīng)用系統(tǒng)要求比較高時,可以將設(shè)定閾值設(shè)定的小一些;當應(yīng)用系統(tǒng)要求比較低時,可以將設(shè)定該閾值設(shè)定的大一些。[0047]這種方法適用于業(yè)務(wù)簡單,不需要多個URL資源協(xié)作即可完成一個業(yè)務(wù)場景的系統(tǒng)。
[0048]第二種方法,當待檢測URL鏈中包含至少兩個相同的URL時,確定待檢測URL鏈中存在URL環(huán);否則,確定待檢測URL鏈中不存在URL環(huán)。
[0049]這里的URL是指URL資源,但不包括參數(shù),這樣的URL環(huán)是容易檢測的,當待檢測URL鏈中存在至少兩個相同的URL時,即可認為存在URL環(huán)。例如當待檢測URL鏈的第一個URL和最后一個URL是相同時,即可認為該待檢測URL鏈中存在URL環(huán);否則,該待檢測URL中不存在URL環(huán)。這里僅僅是舉例說明了當待檢測URL鏈中存在兩個相同的URL時,可確定待檢測URL鏈中存在URL環(huán),當然還包含存在三個以上相同URL或者位于待檢測URL鏈中間某部位的兩個URL相同等等其他情況,都可以認為存在URL環(huán),在這里就不在一一舉例說明。
[0050]較佳的,上述若待檢測URL鏈中存在URL環(huán)時,則確定檢測到待檢測URL鏈中存在URL重定向死循環(huán)之后,還包括:將跳轉(zhuǎn)請求攜帶的目的URL添加到黑名單中。
[0051]當確定待檢測URL鏈中存在URL環(huán),也就是檢測到待檢測URL鏈中存在URL重定向死循環(huán)后,直接將跳轉(zhuǎn)請求中攜帶的目的URL添加到黑名單中,這樣以后再檢測時,直接可以認為該URL會導(dǎo)致URL重定向死循環(huán),從而可以簡化檢測過程,避免了不要的判斷,從而可以提高檢測效率。
[0052]較佳的,上述S15中的確定檢測到待檢測URL鏈中存在URL重定向死循環(huán)之后,還包括:中斷跳轉(zhuǎn)請求,并發(fā)出跳轉(zhuǎn)錯誤提示信息。
[0053]在檢測到待檢測URL鏈中存在URL重定向死循環(huán)后,中斷該跳轉(zhuǎn)請求,也就是停止跳轉(zhuǎn),并發(fā)出跳轉(zhuǎn)錯誤提示信息,跳轉(zhuǎn)錯誤提示信息可以包含黑名單中的URL、檢測到的URL環(huán)等信息,這樣客戶端和應(yīng)用系統(tǒng)就可以得知跳轉(zhuǎn)出現(xiàn)了 URL重定向死循環(huán)以及故障所在,管理人員可以根據(jù)跳轉(zhuǎn)錯誤提示信息進行相應(yīng)的故障排除工作。
[0054]基于同一發(fā)明構(gòu)思,本申請實施例提供一種動態(tài)檢測URL重定向死循環(huán)的裝置,該裝置的結(jié)構(gòu)如圖3所示,包括:
[0055]接收單元30,用于接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的統(tǒng)一資源定位符URL的跳轉(zhuǎn)請求。
[0056]添加單元31,用于將目的URL添加到已檢測URL鏈末端,得到待檢測URL鏈,已檢測URL鏈順序存儲應(yīng)用系統(tǒng)已跳轉(zhuǎn)的URL。
[0057]檢測單元32,用于判斷待檢測URL鏈中是否存在URL環(huán),若待檢測URL鏈中存在URL環(huán),則確定檢測到待檢測URL鏈中存在URL重定向死循環(huán);若待檢測URL鏈中不存在URL環(huán),則跳轉(zhuǎn)至目的URL,在確定預(yù)設(shè)URL鏈中存在下一個URL、且通知應(yīng)用系統(tǒng)發(fā)出攜帶下一個URL作為目的URL的跳轉(zhuǎn)請求后,轉(zhuǎn)向接收單元。
[0058]較佳的,上述動態(tài)檢測URL重定向死循環(huán)的裝置,結(jié)構(gòu)如圖4所示,還包括查詢單元33,用于:接收客戶端發(fā)送的訪問頁面請求后,查詢存儲有導(dǎo)致URL重定向死循環(huán)的URL的黑名單,確定黑名單中是否包含客戶端請求訪問的URL;若黑名單中不包含客戶端請求訪問的URL,則通知應(yīng)用系統(tǒng)發(fā)出攜帶客戶端請求訪問的URL作為目的URL的跳轉(zhuǎn)請求;若黑名單中包含客戶端請求訪問的URL,則確定檢測到待檢測URL鏈中存在URL重定向死循環(huán)。[0059]較佳的,上述查詢單元33,還用于:查詢存儲有導(dǎo)致URL重定向死循環(huán)的URL的黑名單,確定黑名單中是否包含目的URL ;若黑名單中不包含目的URL,則轉(zhuǎn)向添加單元;若黑名單中包含目的URL,則確定檢測到待檢測URL鏈中存在URL重定向死循環(huán)。
[0060]具體的,上述添加單元31,具體用于:判斷跳轉(zhuǎn)請求是否攜帶鏈標識信息;若跳轉(zhuǎn)請求中攜帶鏈標識信息,則將目的URL添加到攜帶鏈標識信息的已檢測URL鏈末端;若跳轉(zhuǎn)請求中沒有攜帶鏈標識信息,則創(chuàng)建鏈標識信息和攜帶創(chuàng)建的鏈標識信息的空白已檢測URL鏈,將目的URL添加到創(chuàng)建的已檢測URL鏈末端,并將創(chuàng)建的鏈標識信息通知應(yīng)用系統(tǒng)。
[0061]具體的,上述檢測單元32,具體用于:若待檢測URL鏈中URL的個數(shù)大于設(shè)定閾值,或者待檢測URL鏈中包含至少兩個相同的URL時,則確定待檢測URL鏈中存在URL環(huán);否則,確定待檢測URL鏈中不存在URL環(huán)。
[0062]較佳的,上述動態(tài)檢測URL重定向死循環(huán)的裝置,還包括黑名單管理單元34,用于將跳轉(zhuǎn)請求攜帶的目的URL添加到黑名單中。
[0063]較佳的,上述動態(tài)檢測URL重定向死循環(huán)的裝置,還包括中斷跳轉(zhuǎn)單元35,用于中斷跳轉(zhuǎn)請求,并發(fā)出跳轉(zhuǎn)錯誤提示信息。
[0064]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0065]本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0066]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0067]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0068]盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
[0069]上述說明示出并描述了本申請的優(yōu)選實施例,但如前所述,應(yīng)當理解本申請并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進行改動。而本領(lǐng)域人員所進行的改動和變化不脫離本申請的精神和范圍,則都應(yīng)在本申請所附權(quán)利要求的保護范圍內(nèi)。
【權(quán)利要求】
1.一種動態(tài)檢測URL重定向死循環(huán)的方法,其特征在于,包括: A、接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的統(tǒng)一資源定位符URL的跳轉(zhuǎn)請求,將所述目的URL添加到已檢測URL鏈末端,得到待檢測URL鏈,所述已檢測URL鏈順序存儲應(yīng)用系統(tǒng)已跳轉(zhuǎn)的URL ; B、判斷所述待檢測URL鏈中是否存在URL環(huán),若所述待檢測URL鏈中存在URL環(huán),則確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán);若所述待檢測URL鏈中不存在URL環(huán),則跳轉(zhuǎn)至所述目的URL,在確定所述預(yù)設(shè)URL鏈中存在下一個URL、且通知應(yīng)用系統(tǒng)發(fā)出攜帶下一個URL作為目的URL的跳轉(zhuǎn)請求后,轉(zhuǎn)向步驟A。
2.如權(quán)利要求1所述的方法,其特征在于,接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的URL的跳轉(zhuǎn)請求之前,還包括: 接收客戶端發(fā)送的訪問頁面請求后,查詢存儲有導(dǎo)致URL重定向死循環(huán)的URL的黑名單,確定所述黑名單中是否包含所述客戶端請求訪問的URL ; 若所述黑名單中不包含所述客戶端請求訪問的URL,則通知應(yīng)用系統(tǒng)發(fā)出攜帶所述客戶端請求訪問的URL作為目的URL的跳轉(zhuǎn)請求; 若所述黑名單中包 含所述客戶端請求訪問的URL,則確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán)。
3.如權(quán)利要求1所述的方法,其特征在于,得到待檢測URL鏈之后,判斷所述待檢測URL鏈中是否存在URL環(huán)之前,還包括: 查詢存儲有導(dǎo)致URL重定向死循環(huán)的URL的黑名單,確定所述黑名單中是否包含所述目的URL ; 若所述黑名單中不包含所述目的URL,則轉(zhuǎn)向步驟B ; 若所述黑名單中包含所述目的URL,則確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán)。
4.如權(quán)利要求1所述的方法,其特征在于,將所述目的URL添加到已檢測URL鏈末端,具體包括: 判斷所述跳轉(zhuǎn)請求是否攜帶鏈標識信息; 若所述跳轉(zhuǎn)請求中攜帶鏈標識信息,則將所述目的URL添加到攜帶所述鏈標識信息的已檢測URL鏈末端; 若所述跳轉(zhuǎn)請求中沒有攜帶鏈標識信息,則創(chuàng)建鏈標識信息和攜帶創(chuàng)建的鏈標識信息的空白已檢測URL鏈,將所述目的URL添加到創(chuàng)建的已檢測URL鏈末端,并將創(chuàng)建的鏈標識信息通知應(yīng)用系統(tǒng)。
5.如權(quán)利要求1所述的方法,其特征在于,判斷所述待檢測URL鏈中是否存在URL環(huán)的過程,具體包括: 若所述待檢測URL鏈中URL的個數(shù)大于設(shè)定閾值,或者所述待檢測URL鏈中包含至少兩個相同的URL時,則確定所述待檢測URL鏈中存在URL環(huán); 否則,確定所述待檢測URL鏈中不存在URL環(huán)。
6.如權(quán)利要求1所述的方法,其特征在于,若所述待檢測URL鏈中存在URL環(huán)時,則確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán)之后,還包括: 將所述跳轉(zhuǎn)請求攜帶的目的URL添加到所述黑名單中。
7.如權(quán)利要求1-6任一所述的方法,其特征在于,確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán)之后,還包括: 中斷所述跳轉(zhuǎn)請求,并發(fā)出跳轉(zhuǎn)錯誤提示信息。
8.一種動態(tài)檢測URL重定向死循環(huán)的裝置,其特征在于,包括: 接收單元,用于接收應(yīng)用系統(tǒng)按照預(yù)設(shè)URL鏈跳轉(zhuǎn)時發(fā)出的攜帶目的統(tǒng)一資源定位符URL的跳轉(zhuǎn)請求; 添加單元,用于將所述目的URL添加到已檢測URL鏈末端,得到待檢測URL鏈,所述已檢測URL鏈順序存儲應(yīng)用系統(tǒng)已跳轉(zhuǎn)的URL ; 檢測單元,用于判斷所述待檢測URL鏈中是否存在URL環(huán),若所述待檢測URL鏈中存在URL環(huán),則確定檢測到 所述待檢測URL鏈中存在URL重定向死循環(huán);若所述待檢測URL鏈中不存在URL環(huán),則跳轉(zhuǎn)至所述目的URL,在確定所述預(yù)設(shè)URL鏈中存在下一個URL、且通知應(yīng)用系統(tǒng)發(fā)出攜帶下一個URL作為目的URL的跳轉(zhuǎn)請求后,轉(zhuǎn)向所述接收單元。
9.如權(quán)利要求8所述的裝置,其特征在于,還包括查詢單元,用于: 接收客戶端發(fā)送的訪問頁面請求后,查詢存儲有導(dǎo)致URL重定向死循環(huán)的URL的黑名單,確定所述黑名單中是否包含所述客戶端請求訪問的URL ; 若所述黑名單中不包含所述客戶端請求訪問的URL,則通知應(yīng)用系統(tǒng)發(fā)出攜帶所述客戶端請求訪問的URL作為目的URL的跳轉(zhuǎn)請求; 若所述黑名單中包含所述客戶端請求訪問的URL,則確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán)。
10.如權(quán)利要求9所述的裝置,其特征在于,所述查詢單元,還用于: 查詢存儲有導(dǎo)致URL重定向死循環(huán)的URL的黑名單,確定所述黑名單中是否包含所述目的URL ; 若所述黑名單中不包含所述目的URL,則轉(zhuǎn)向所述添加單元; 若所述黑名單中包含所述目的URL,則確定檢測到所述待檢測URL鏈中存在URL重定向死循環(huán)。
11.如權(quán)利要求8所述的裝置,其特征在于,所述添加單元,具體用于: 判斷所述跳轉(zhuǎn)請求是否攜帶鏈標識信息; 若所述跳轉(zhuǎn)請求中攜帶鏈標識信息,則將所述目的URL添加到攜帶所述鏈標識信息的已檢測URL鏈末端; 若所述跳轉(zhuǎn)請求中沒有攜帶鏈標識信息,則創(chuàng)建鏈標識信息和攜帶創(chuàng)建的鏈標識信息的空白已檢測URL鏈,將所述目的URL添加到創(chuàng)建的已檢測URL鏈末端,并將創(chuàng)建的鏈標識信息通知應(yīng)用系統(tǒng)。
12.如權(quán)利要求8所述的裝置,其特征在于,所述檢測單元,具體用于: 若所述待檢測URL鏈中URL的個數(shù)大于設(shè)定閾值,或者所述待檢測URL鏈中包含至少兩個相同的URL時,則確定所述待檢測URL鏈中存在URL環(huán); 否則,確定所述待檢測URL鏈中不存在URL環(huán)。
13.如權(quán)利要求8所述的裝置,其特征在于,還包括黑名單管理單元,用于將所述跳轉(zhuǎn)請求攜帶的目的URL添加到所述黑名單中。
14.如權(quán)利要求8-13任一所述的裝置,其特征在于,還包括中斷跳轉(zhuǎn)單元,用于中斷所述跳轉(zhuǎn)請求, 并發(fā)出跳轉(zhuǎn)錯誤提示信息。
【文檔編號】G06F17/30GK103678364SQ201210339425
【公開日】2014年3月26日 申請日期:2012年9月13日 優(yōu)先權(quán)日:2012年9月13日
【發(fā)明者】馮照臨, 劉中勝 申請人:阿里巴巴集團控股有限公司