
andriod系統中網絡請求的方法及裝置、電子設備
技術領域
1.本發明涉及數據通信技術領域,尤其涉及一種andriod系統中網絡請求的方法及裝置、電子設備。
背景技術:2.網絡請求通常可以理解為由客戶端觸發的,通過互聯網獲取服務端數據的請求。因此,網絡請求通常包含服務端的ip(網際互聯協議,internet protocol)地址。
3.目前,ip地址的形式是一串難以記憶的數字,其使用起來并不方便。因此,大部分網絡請求采用形式更加簡單的域名代替ip地址,然后增加一個轉換的流程,即利用dns(域名系統,domain name system)服務器將域名轉換為ip地址。這樣,用戶可以無需關心服務端的ip地址。
4.然而,上述利用dns進行轉換的方式無疑會延緩網絡請求的速度,從而增長用戶等待的時間。
技術實現要素:5.鑒于上述問題,提出了本發明實施例以便提供一種克服上述問題或者至少部分地解決上述問題的andriod系統中網絡請求的方法及裝置、電子設備。
6.第一方面,本發明實施例提供了一種andriod系統中網絡請求的方法,所述方法包括:
7.對inetaddress類的成員變量impl添加動態代理;
8.響應于目標應用觸發對目標域名的網絡請求,基于所述成員變量impl的動態代理,在所述目標應用的緩存中查找所述目標域名對應的第一目標ip地址;
9.在未查找到所述目標域名對應的第一目標ip地址的情況下,通過dns服務器轉發所述網絡請求獲取到所述目標域名對應的第二目標ip地址,以對所述第二目標ip地址發起所述網絡請求;
10.對應所述目標域名將所述第二目標ip地址存儲至所述目標應用的緩存中。
11.可選地,在所述目標應用的緩存中查找所述目標域名對應的第一目標ip地址之后,所述方法還包括:
12.在查找到所述目標域名對應的第一目標ip地址的情況下,通過緩存獲取所述目標域名對應的第一目標ip地址,以對所述第一目標ip地址發起所述網絡請求。
13.可選地,在所述目標應用的緩存中查找所述目標域名對應的第一目標ip地址,包括:
14.在所述目標應用的緩存中查找域名數組,其中,所述域名數組中存儲有多個不同的域名以及各域名對應的ip地址;
15.在所述域名數組中查找所述目標域名對應的ip地址。
16.可選地,所述對inetaddress類的成員變量impl添加動態代理,包括:
17.通過在application的attachbasecontext()方法或者oncreate()方法中調用編寫有動態代理邏輯的自定義方法,對inetaddress類的成員變量impl添加動態代理。
18.第二方面,本發明實施例還提供一種andriod系統中網絡請求的裝置,所述裝置包括:
19.代理模塊,用于對inetaddress類的成員變量impl添加動態代理;
20.查詢模塊,用于響應于目標應用觸發對目標域名的網絡請求,基于所述成員變量impl的動態代理,在所述目標應用的緩存中查找所述目標域名對應的第一目標ip地址;
21.第一發起模塊,用于在未查找到所述目標域名對應的第一目標ip地址的情況下,通過dns服務器轉發所述網絡請求獲取到所述目標域名對應的第二目標ip地址,以對所述第二目標ip地址發起所述網絡請求;
22.存儲模塊,用于對應所述目標域名將所述第二目標ip地址存儲至所述目標應用的緩存中。
23.可選地,所述裝置還包括:
24.第二發起模塊,用于在查找到所述目標域名對應的第一目標ip地址的情況下,通過緩存獲取所述目標域名對應的第一目標ip地址,以對所述第一目標ip地址發起所述網絡請求。
25.可選地,所述查詢模塊,包括:
26.第一查詢單元,用于在所述目標應用的緩存中查找域名數組,其中,所述域名數組中存儲有多個不同的域名以及各域名對應的ip地址;
27.第二查詢單元,用于在所述域名數組中查找所述目標域名對應的ip地址。
28.可選地,所述代理模塊具體用于:通過在application的attachbasecontext()方法或者oncreate()方法中調用編寫有動態代理邏輯的自定義方法,對inetaddress類的成員變量impl添加動態代理。
29.第三方面,本發明實施例還提供一種電子設備,該電子設備包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現如上所述的andriod系統中網絡請求的方法中的步驟。
30.第四方面,本發明實施例還提供一種計算機可讀存儲介質,該計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現如上所述的andriod系統中網絡請求的方法中的步驟。
31.在本發明實施例中,通過對inetaddress類的成員變量impl添加動態代理,可以改變原有的ip地址查找方式。在目標應用觸發網絡請求的情況下,基于被動態代理的成員變量impl,首先從目標應用的緩存中查找相應的ip地址。并在未找到相應的ip地址時,借助dns服務器進行兜底查詢。最終在向查詢到的ip地址發起網絡請求之后,會對應目標域名將查詢到的ip地址存儲至目標應用的緩存中,從而使得后續觸發對目標域名的網絡請求時,可以直接從目標應用的緩存中查詢到目標域名對應的ip地址。本發明在andriod系統中網絡請求的過程中,將ip地址的查詢轉移到了應用層,這樣,在應用層查詢到ip地址的情況下,無需跨進程使用dns服務器,減少了dns請求的次數和跨進程通信的次數,提升了網絡請求的速度,縮短了用戶等待的時間。
附圖說明
32.為了更清楚地說明本發明實施例的技術方案,下面將對本發明實施例的描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
33.圖1為本發明實施例提供的一種andriod系統中網絡請求的方法的步驟流程圖;
34.圖2為本發明實施例提供的一種andriod系統中網絡請求的裝置的結構框圖;
35.圖3為本發明實施例提供的電子設備的結構框圖。
具體實施方式
36.下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
37.應理解,說明書通篇中提到的“一個實施例”或“一實施例”意味著與實施例有關的特定特征、結構或特性包括在本發明的至少一個實施例中。因此,在整個說明書各處出現的“在一個實施例中”或“在一實施例中”未必一定指相同的實施例。此外,這些特定的特征、結構或特性可以任意適合的方式結合在一個或多個實施例中。
38.在本發明的各種實施例中,應理解,下述各過程的序號的大小并不意味著執行順序的先后,各過程的執行順序應以其功能和內在邏輯確定,而不應對本發明實施例的實施過程構成任何限定。
39.參見圖1,本發明實施例提供了一種andriod系統中網絡請求的方法,該方法可以包括:
40.步驟101:對inetaddress類的成員變量impl添加動態代理。
41.本步驟中,可以基于java反射機制實現動態代理的添加。其中,java反射機制是在程序處于運行狀態時,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意方法和屬性,這里不再詳述。本發明實施例應用于安裝有安卓操作系統的電子設備。該電子設備可以為手機、筆記本電腦、臺式機電腦、平板電腦等,這里不做限定。應當說明的是,應用本發明實施例提供的方法的電子設備支持反射機制。例如該電子設備可以為安裝有目標版本的安卓操作系統的手機,該目標版本為允許反射機制的安卓版本。當然,目標版本也可以為不允許反射機制,但通過依賴庫可以實現反射機制的安卓版本。
42.可以理解的是,inetaddress類為java中ip地址的接口類,由于ip協議包括internet protocol version 4(ipv4)和internet protocol version 6(ipv6)兩個版本。因此inetaddress類包含有兩個子類,即class inet6address、class inet4address。針對每一子類,設置有一相應的實現類。即針對class inet6address,設置的實現類為inet6addressimpl類。針對class inet4address類,設置的實現類為inet4addressimpl類。實現類中對基于域名查詢ip地址的方法進行了具體實現,其中,查詢ip地址的方法為利用dns服務器查詢域名對應的ip地址。inetaddress類中的成員變量impl在未被動態代理之
前,指向的實現類為inet6addressimpl類或者inet4addressimpl類。因此,每次利用成員變量impl查詢ip地址時,都會借助dns服務器查詢域名對應的ip地址。在成員變量impl被動態代理之后,查詢ip地址的方法將會變為自定義的查詢方法,從而實現了ip地址查詢方法的改變。其中,動態代理inetaddress類的成員變量impl,即為對成員變量impl添加動態代理。
43.步驟102:響應于目標應用觸發對目標域名的網絡請求,基于成員變量impl的動態代理,在目標應用的緩存中查找目標域名對應的第一目標ip地址。
44.本步驟中,目標應用為安裝于電子設備上的任一由java編程語言開發的應用程序,例如其可以為瀏覽器,購物類應用程序、社交類應用程序等。可以理解的是,目標應用觸發網絡請求之后,將網絡請求發送至作為數據提供方的后臺服務器,以獲取相關數據,并將獲取的數據加載至目標應用的當前顯示頁面,最終展示給用戶。這里,并不限定目標應用觸發的哪種網絡請求。例如,目標應用為一瀏覽器,用戶點擊瀏覽器中的某一控件之后,將跳轉至目標頁面,并觸發生成一網絡請求,用以請求目標頁面的頁面數據。在將網絡請求發送至瀏覽器的后臺服務器之后,可以獲得瀏覽器后臺返回的頁面數據,進而將獲得的頁面數據加載至目標頁面,展示給用戶。
45.應當說明的是,網絡請求包含有一域名,該域名與作為數據提供方的后臺服務器的ip地址相對應。因此,通過網絡請求中的域名可以確定作為數據提供方的后臺服務器的ip地址。這里,利用目標應用的緩存存儲多個域名以及各域名對應的ip地址。在運行目標應用的過程中,由于是從目標應用的緩存中查找ip地址,因此無需跨進程通信。目標應用的緩存可以理解為目標應用所屬進程中的,與目標應用相關聯的存儲位置。也就是說,目標應用所屬進程無需跨進程就可以訪問到目標應用的緩存。值得注意的是,域名與ip地址之間的對應關系,可以為在注冊域名過程中確定的域名與ip地址的對應關系。也可以為,基于目標應用的開發需求自行確定的對應關系。這里,在目標應用的緩存中查找目標域名對應的第一目標ip地址的執行邏輯,為被動態代理之后的成員變量impl的執行邏輯。因此,在動態代理成員變量impl之后,在查詢域名對應的ip地址時,將首先從目標應用的緩存中進行查詢。
46.步驟103:在未查找到目標域名對應的第一目標ip地址的情況下,通過dns服務器轉發網絡請求獲取到目標域名對應的第二目標ip地址,以對第二目標ip地址發起網絡請求。
47.本中步驟中,由于當前投入使用的域名和ip地址的數量十分巨大,并且也在不斷的增多。目標應用的緩存中可以僅存儲一些使用頻率較高的域名及其對應的ip地址。從而可以避免目標應用過大的問題。這樣的話,可能會出現無法查找到第一目標ip地址的情況。即由于目標應用的緩存中沒有存儲某一網絡請求的域名及其對應的ip地址,在觸發該網絡請求之后,將無法從目標應用的緩存中找到該網絡請求的域名對應的ip地址。
48.針對這種情況,可以設置一兜底策略,由dns服務器對這種情況進行兜底。即在無法從目標應用的緩存中找到相應的ip地址時,發起dns請求,借由dns服務器查詢相應的ip地址。具體的,可以在原有的查詢ip地址的步驟之前,插入從目標應用的緩存中查詢ip地址的步驟。例如,java中通常使用lookupallhostaddr方法,在dns服務器中查詢ip地址。本發明實施例中,可以在調用lookupallhostaddr方法之前,調用自定的查詢方法,先從目標應用的緩存中查詢ip地址。若能夠查詢到ip地址,則返回查詢到的ip地址,不再調用lookupallhostaddr方法。若查詢不到ip地址,則繼續調用lookupallhostaddr方法,利用
dns服務器查詢ip地址,返回dns服務器查詢到的ip地址。關于利用dns服務器查詢ip地址的過程,這里不再詳述。
49.應當說明的是,查找到第二目標ip地址,說明已經找到了作為接收網絡請求的接收方的地址。從而可以基于第二目標ip地址,將網絡請求發送至接收方。可以理解的是,這里并不限定網絡請求所請求的數據,網絡請求所請求的數據可以為具有任意數據結構和數據內容的數據。
50.步驟104:對應目標域名將第二目標ip地址存儲至目標應用的緩存中。
51.應當說明的是,在目標應用的緩存中未查找到目標域名對應的第一目標ip地址的情況下,說明緩存中沒有存儲目標域名及其對應的ip地址。若緩存中存儲的域名及其對應的ip地址固定不變,則每次遇到這樣的網絡請求都會經歷在緩存中查詢相應的ip地址的流程,這樣會白白的浪費時間。因此,可以動態更新緩存中存儲的域名及其對應的ip地址。在觸發某一網絡請求后,若無法從緩存中查詢到相應的ip地址,可以在dns服務器中查詢到相應的ip地址之后,將該網絡請求中的域名及查詢到的ip地址對應存儲到緩存中。這樣,再次遇到這樣的網絡請求時,從緩存中就可以直接查詢到相應的ip地址。
52.本發明實施例中,通過對inetaddress類的成員變量impl添加動態代理,可以改變原有的ip地址查找方式。在目標應用觸發網絡請求的情況下,基于被動態代理的成員變量impl,首先從目標應用的緩存中查找相應的ip地址。并在未找到相應的ip地址時,借助dns服務器進行兜底查詢。最終在向查詢到的ip地址發起網絡請求之后,會對應目標域名將查詢到的ip地址存儲至目標應用的緩存中,從而使得后續觸發對目標域名的網絡請求時,可以直接從目標應用的緩存中查詢到目標域名對應的ip地址。本發明在andriod系統中網絡請求的過程中,將ip地址的查詢轉移到了應用層,這樣,在應用層查詢到ip地址的情況下,無需跨進程使用dns服務器,減少了dns請求的次數和跨進程通信的次數,提升了網絡請求的速度,縮短了用戶等待的時間。
53.可選地,在目標應用的緩存中查找目標域名對應的第一目標ip地址之后,該方法還包括:
54.在查找到目標域名對應的第一目標ip地址的情況下,通過緩存獲取目標域名對應的第一目標ip地址,以對第一目標ip地址發起網絡請求。
55.應當說明的是,若查找到目標域名對應的第一目標ip地址,說明緩存中存儲有目標域名及其對應的ip地址。因此,可以直接使用緩存中查詢到的第一目標ip地址,向其發起網絡請求。
56.本發明實施例中,在目標應用的緩存中查詢到ip地址的情況下,無需跨進程使用dns服務器,減少了dns請求的次數和跨進程通信的次數,提升了andriod系統中網絡請求的速度,縮短了用戶等待的時間。
57.可選地,在目標應用的緩存中查找目標域名對應的第一目標ip地址,包括:
58.基于代理在目標應用的緩存中查找域名數組,其中,域名數組中存儲有多個不同的域名以及各域名對應的ip地址。
59.在域名數組中查找目標域名對應的ip地址。
60.應當說明的是,域名數組為用于存儲域名及其對應的ip地址的專用數組,其包含有多個元素,且每一個元素由一對相對應的域名和ip地址組成。也就說,可以在目標應用的
緩存中專門設置一域名數組,預先將多個域名以及各域名對應的ip地址存放在該域名數組中。在基于代理查找第一目標ip地址時,優先從該域名數組中進行查找。并將域名數組中的對應網絡請求中目標域名的ip地址確定為第一目標ip地址。具體的,可以基于目標應用中涉及到的域名及其對應的ip地址預先生成域名數組,在電子設備安裝目標應用時,將該域名數組存儲到目標應用的緩存中。
61.本發明實施例中,將多個不同的域名及其對應的ip地址以數組的形式存儲至目標應用的緩存中,從而在域名數組中查找第一目標ip地址,可以提升查找的效率。
62.可選地,對inetaddress類的成員變量impl添加動態代理,包括:
63.通過在application的attachbasecontext()方法或者oncreate()方法中調用編寫有動態代理邏輯的自定義方法,對inetaddress類的成員變量impl添加動態代理。
64.應當說明的是,啟動目標應用的過程中,將會對目標應用初始化,并加載一些必要數據。在啟動過程中,用戶通常不會對目標應用進行操作。在啟動完成之后,運行目標應用的過程中,用戶將根據自己的需求在目標應用上進行各種操作。基于此,可以將添加動態代理的時機設置在用戶進行操作之前的啟動時刻。這樣,可以避免由于對成員變量impl添加動態代理不及時,導致的無法從緩存中查詢到第一目標ip地址的情況。
65.具體的,可以在application的attachbasecontext()方法或者oncreate()方法中調用自定義的hookdnscachesizeandtime()方法,該自定義的hookdnscachesizeandtime()方法編寫有動態代理邏輯,從而通過調用hookdnscachesizeandtime()方法可以對inetaddress類的成員變量impl添加動態代理。這里,以ipv6為例進行說明,通過static final inetaddressimpl impl=new inet6addressimpl(),對成員變量impl進行動態代理,以改變原有成員變量impl中查詢ip地址的方法。
66.本發明實施例中,將添加動態代理的時機設置在用戶進行操作之前的啟動時刻。從而可以避免由于對成員變量impl添加動態代理不及時,導致的無法從緩存中查詢到第一目標ip地址的情況。
67.下面以一具體的實例對本發明提供的andriod系統中網絡請求的方法進行具體說明。
68.在目標應用的開發過程中使用java編程語言進行開發,使得開完完成的目標應用可以運行于安卓操作系統中。在開發時可以引入依賴庫freereflection,這樣可以解決安卓9.0以上版本對系統隱藏的方法不允許反射調用的問題,從而可以保證順利的利用反射機制完成動態代理的添加。然后在目標應用的啟動時機增加自定義方法的調用。即在application的attachbasecontext()方法中調用自定義的hookdnscachesizeandtime()方法。該自定義的hookdnscachesizeandtime()方法即為對成員變量impl添加動態代理的方法。
69.在電子設備安裝目標應用之后,用戶啟動目標應用時,將調用自定義的hookdnscachesizeandtime方法對成員變量impl添加動態代理,從而改變java中原有的查詢ip地址的方法,即不再是直接使用lookupallhostaddr方法查詢ip地址。
70.在運行目標應用的過程中,基于用戶的操作將觸發一網絡請求。進而利用動態代理先從目標應用的緩存中查詢網絡請求中的域名對應的ip地址。其中,緩存中設置有專門
用于存儲域名及其對應的ip地址的緩存數組。優先從緩存數組中相應的ip地址。如果查詢到相應的ip地址,則返回查詢到的ip地址。如果未查詢到相應的ip地址。則調用系統的流程去獲取ip地址,返回獲取到的ip地址的同時,將獲取的結果放在緩存數組中。這樣,再次遇到相同的網絡請求時,就可以直接從緩存數組中查詢到相應的ip地址。其中,調用系統的流程獲取ip地址,即為利用lookupallhostaddr方法從dns服務器中獲取ip地址,這里不再詳述。
71.本發明實施例中,通過對安卓源碼進行修改,動態代理inetaddress類的成員變量impl,可以實現在應用層緩存中查詢ip地址。在運行目標應用的過程中,運行目標應用的進程可以直接訪問到目標應用的緩存,可以減少跨進程從其它地方獲取ip地址的次數,從而減少跨進程通信的次數。同時,在從目標應用的緩存中能夠獲取到ip地址的情況下,無需生成dns請求,從而可以減少dns請求的次數。最終,可以提升網絡請求的速度,縮短用戶等待的時間
72.以上介紹了本發明實施例提供的andriod系統中網絡請求的方法,下面將結合附圖介紹本發明實施例提供的andriod系統中網絡請求的裝置。
73.如圖2所示,本發明實施例提供了一種andriod系統中網絡請求的裝置,該裝置包括:
74.代理模塊21,用于對inetaddress類的成員變量impl添加動態代理;
75.查詢模塊22,用于響應于目標應用觸發對目標域名的網絡請求,基于成員變量impl的動態代理,在目標應用的緩存中查找目標域名對應的第一目標ip地址;
76.第一發起模塊23,用于在未查找到目標域名對應的第一目標ip地址的情況下,通過dns服務器轉發網絡請求獲取到目標域名對應的第二目標ip地址,以對第二目標ip地址發起網絡請求;
77.存儲模塊24,用于對應目標域名將第二目標ip地址存儲至目標應用的緩存中。
78.可選地,該裝置還包括:
79.第二發起模塊,用于在查找到目標域名對應的第一目標ip地址的情況下,通過緩存獲取目標域名對應的第一目標ip地址,以對第一目標ip地址發起網絡請求。
80.可選地,查詢模塊22,包括:
81.第一查詢單元,用于在目標應用的緩存中查找域名數組,其中,域名數組中存儲有多個不同的域名以及各域名對應的ip地址;
82.第二查詢單元,用于在域名數組中查找目標域名對應的ip地址。
83.可選地,代理模塊21具體用于:通過在application的attachbasecontext()方法或者oncreate()方法中調用編寫有動態代理邏輯的自定義方法,對inetaddress類的成員變量impl添加動態代理。
84.本發明實施例中,通過對inetaddress類的成員變量impl添加動態代理,可以改變原有的ip地址查找方式。在目標應用觸發網絡請求的情況下,基于被動態代理的成員變量impl,首先從目標應用的緩存中查找相應的ip地址。并在未找到相應的ip地址時,借助dns服務器進行兜底查詢。最終在向查詢到的ip地址發起網絡請求之后,會對應目標域名將查詢到的ip地址存儲至目標應用的緩存中,從而使得后續觸發對目標域名的網絡請求時,可以直接從目標應用的緩存中查詢到目標域名對應的ip地址。本發明在andriod系統中網絡
請求的過程中,將ip地址的查詢轉移到了應用層,這樣,在應用層查詢到ip地址的情況下,無需跨進程使用dns服務器,減少了dns請求的次數和跨進程通信的次數,提升了網絡請求的速度,縮短了用戶等待的時間。
85.本技術實施例提供的andriod系統中網絡請求的裝置能夠實現圖1的方法實施例實現的各個過程,實現相同的技術效果,為避免重復,這里不再贅述。
86.另一方面,本發明實施例還提供了一種電子設備,包括存儲器、處理器、總線以及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現上述andriod系統中網絡請求的方法中的步驟。
87.舉個例子如下,圖3示出了一種電子設備的實體結構示意圖。
88.如圖3所示,該電子設備可以包括:處理器(processor)310、通信接口(communications interface)320、存儲器(memory)330和通信總線340,其中,處理器310,通信接口320,存儲器330通過通信總線340完成相互間的通信。處理器310可以調用存儲器330中的邏輯指令,以執行如下方法:
89.對inetaddress類的成員變量impl添加動態代理;
90.響應于目標應用觸發對目標域名的網絡請求,基于成員變量impl的動態代理,在目標應用的緩存中查找目標域名對應的第一目標ip地址;
91.在未查找到目標域名對應的第一目標ip地址的情況下,通過dns服務器轉發網絡請求獲取到目標域名對應的第二目標ip地址,以對第二目標ip地址發起網絡請求;
92.對應目標域名將第二目標ip地址存儲至目標應用的緩存中。
93.此外,上述的存儲器330中的邏輯指令可以通過軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-only memory)、隨機存取存儲器(ram,random access memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
94.再一方面,本發明實施例還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現以執行上述各實施例提供的andriod系統中網絡請求的方法,例如包括:
95.對inetaddress類的成員變量impl添加動態代理;
96.響應于目標應用觸發對目標域名的網絡請求,基于成員變量impl的動態代理,在目標應用的緩存中查找目標域名對應的第一目標ip地址;
97.在未查找到目標域名對應的第一目標ip地址的情況下,通過dns服務器轉發網絡請求獲取到目標域名對應的第二目標ip地址,以對第二目標ip地址發起網絡請求;
98.對應目標域名將第二目標ip地址存儲至目標應用的緩存中。
99.以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其
中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解并實施。
100.通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
101.最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。