本申請涉及計算機領(lǐng)域,尤其涉及一種快速域名解析方法和系統(tǒng)、及其終端和服務器。
背景技術(shù):
現(xiàn)有技術(shù)的域名解析都采用域名系統(tǒng)(DNS,Domain Name System)標準協(xié)議,其基本流程如下:當客戶端想訪問某個頁面,首先從統(tǒng)一資源定位符(URL,Uniform Resource Locator)提取域名,然后發(fā)送該域名至本地域名服務器(Local DNS)進行域名解析。如果Local DNS在本地緩存中查詢到該域名對應的域名解析結(jié)果,則直接向客戶端返回對應域名解析結(jié)果;否則,Local DNS通過迭代運算逐級請求,獲取到該域名對應的域名解析結(jié)果并返回給客戶端。客戶端根據(jù)域名解析結(jié)果中的IP地址連接業(yè)務服務器,發(fā)送超文本傳輸協(xié)議(HTTP,Hyper Text Transfer Protocol)請求從而獲取頁面內(nèi)容。
然而現(xiàn)有技術(shù)存在如下問題:每次訪問URL鏈接,都需要通過Local DNS進行網(wǎng)絡交互以進行域名解析。請求Local DNS是一個同步等待的過程,會導致時間延遲,增大訪問URL的整體時間開銷,帶來較差的用戶體驗。而且Local DNS會引入解析延遲,并且,這個時間延遲并不穩(wěn)定,有較大的波動,極端情況下的域名解析過程很漫長。例如,當域名沒有命中Local DNS緩存時,Local DNS需要與上游的多個權(quán)威域服務器進行網(wǎng)絡交互,迭代多次以完成域名解析。多次交互之間是同步等待,時間延遲是它們的疊加,這時整個域名解析過程就很漫長。當Local DNS收到新域名請求時,或者當域名緩存的生存時間(TTL,Time To Live)過期時,就會發(fā)生無法命中緩存的情況,這時解析延遲和波動都會變大。
技術(shù)實現(xiàn)要素:
本申請的一個目的是提供一種快速域名解析方法和系統(tǒng)、及其終端和 服務器。
根據(jù)本申請的一個方面,提供了一種在終端的快速域名解析方法,其中,所述方法包括:
根據(jù)預解析域名表請求第一服務器進行域名解析;
將所述第一服務器返回的域名解析結(jié)果存儲至域名緩存表;
根據(jù)用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。
根據(jù)本申請的另一個方面,提供了一種在服務端的快速域名解析方法,其中,所述方法包括:
根據(jù)終端的請求進行域名解析;
向所述終端返回域名解析結(jié)果,以供所述終端將所述域名解析結(jié)果存儲至域名緩存表并根據(jù)用戶的訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。
根據(jù)本申請的又一個方面,提供了一種用于快速域名解析的終端,其中,所述終端包括:
第一單元,用于根據(jù)預解析域名表請求第一服務器進行域名解析;
第三單元,用于將所述第一服務器返回的域名解析結(jié)果存儲至域名緩存表;
第五單元,用于根據(jù)用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。
根據(jù)本申請的再一個方面,提供了一種用于快速域名解析的服務器,其中,所述服務器包括:
第二單元,用于根據(jù)終端的請求進行域名解析;
第四單元,用于向所述終端返回域名解析結(jié)果,以供所述終端將所述域名解析結(jié)果存儲至域名緩存表并根據(jù)用戶的訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。
根據(jù)本申請的一個方面,提供了一種快速域名解析系統(tǒng),其中,所述系統(tǒng)包括:本申請所述的終端和本申請所述的服務器。
與現(xiàn)有技術(shù)相比,本申請?zhí)峁┑目焖儆蛎馕龇椒ê拖到y(tǒng)、及其終端和服務器,通過預解析使域名提前完成解析,當要訪問某個URL鏈接時, 相關(guān)域名的解析結(jié)果已經(jīng)存儲于域名緩存表中,能夠立即獲得對應的IP地址,相當于域名解析零開銷,以此解決了解析延遲問題。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1示出根據(jù)本申請一個方面的用于快速域名解析的終端的結(jié)構(gòu)示意圖;
圖2示出根據(jù)本申請一個方面的用于快速域名解析的服務器的結(jié)構(gòu)示意圖;
圖3示出根據(jù)本申請一個方面的快速域名解析系統(tǒng)的結(jié)構(gòu)示意圖;
圖4示出根據(jù)本申請一個方面的在終端的快速域名解析方法的流程示意圖;
圖5示出根據(jù)本申請一個方面的在服務端的快速域名解析方法的流程示意圖;
圖6示出根據(jù)本申請一個方面的快速域名解析方法的流程示意圖。
附圖中相同或相似的附圖標記代表相同或相似的部件。
具體實施方式
下面結(jié)合附圖對本申請作進一步詳細描述。
圖1示出根據(jù)本申請一個方面的用于快速域名解析的終端的結(jié)構(gòu)示意圖。如圖1所示,所述用于快速域名解析的終端1包括:第一單元11、第三單元13和第五單元15。
其中,第一單元11,用于根據(jù)預解析域名表請求第一服務器進行域名解析;第三單元13,用于將所述第一服務器返回的域名解析結(jié)果存儲至域名緩存表;第五單元15,用于根據(jù)用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。
在此,現(xiàn)有技術(shù)中用戶訪問頁面時,需要向Local DNS服務器發(fā)起域名解析請求,然后由Local DNS返回相應的域名解析結(jié)果,其網(wǎng)絡交互造 成了延時。本申請的終端設(shè)備在用戶訪問頁面之前,例如在終端或者其搭載的應用初始化階段,就發(fā)起域名解析請求,針對熱點網(wǎng)站或者用戶經(jīng)常瀏覽的網(wǎng)站進行域名預解析。熱點網(wǎng)站或者用戶經(jīng)常瀏覽的網(wǎng)站的域名可以預先存儲于預解析域名表中,用戶經(jīng)常瀏覽的網(wǎng)站可以通過用戶瀏覽歷史記錄獲取,熱點網(wǎng)站可以通過云端服務器或者終端進行設(shè)定。以熱點網(wǎng)站為例,終端首先將若干熱點網(wǎng)站域名存儲于預解析域名表中,在終端應用初始化階段,第一單元11根據(jù)預解析域名表請求第一服務器對多個熱點域名進行域名解析;第三單元13將所述第一服務器返回的多個熱點域名的域名解析結(jié)果存儲至域名緩存表;當用戶請求訪問頁面時,第五單元15根據(jù)該用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果,域名緩存表設(shè)于終端一側(cè),由此避免了與Local DNS服務器的網(wǎng)絡交互。域名緩存表可以包含域名及其對應的IP地址,也可以包含生存時間(TTL)、協(xié)議類型、端口信息等,在為了保證域名解析結(jié)果完整性或者防止中間網(wǎng)絡的篡改前提下,域名緩存表還可以包含安全校驗值。終端從本地的域名緩存表讀取相應的域名解析結(jié)果并根據(jù)其中的IP地址連接對應業(yè)務服務器以獲取相應頁面。第一服務器不是現(xiàn)有的Local DNS服務器,而是為了實現(xiàn)本申請目的而與終端進行相應配置的HTTP DNS服務器。HTTP DNS服務器可以接收終端發(fā)送的URL,然后進行HTTP至DNS的協(xié)議轉(zhuǎn)換,在終端一側(cè)的初始化階段由HTTP DNS服務器代替終端進行域名解析,將域名解析結(jié)果返回并存儲至終端的域名緩存表,由終端根據(jù)訪問需求從本地進行調(diào)用,節(jié)省了通過Local DNS服務器進行域名解析而造成的網(wǎng)絡交互時間浪費,提升了頁面訪問速度。
具體地,所述第一單元11包括:第一一子單元1101和第一二子單元1102。
其中,第一一子單元1101,用于發(fā)送域名解析請求至所述第一服務器;其中,所述域名解析請求包含所述預解析域名表中的N個域名,N為正整數(shù);第一二子單元1102,用于接收所述第一服務器返回的所述N個域名的域名解析結(jié)果。
在此,終端可以通過第一一子單元1101向第一服務器一次發(fā)送多個 域名,以獲取多個域名的域名解析結(jié)果,減少與第一服務器的交互次數(shù),節(jié)省時間而且降低服務器的訪問負擔。解析多個域名和解析單個域名對HTTP DNS服務器而言是類似的,只是一個循環(huán)迭代,分別獲得每一個域名的解析結(jié)果,最后將所有域名的解析結(jié)果按預設(shè)格式進行合并,一同返回給終端。在返回的數(shù)據(jù)報文中,將域名、解析結(jié)果及其對應關(guān)系按照預設(shè)格式組織,一一對應,通過解析數(shù)據(jù)報文就能夠區(qū)分各個域名解析結(jié)果。優(yōu)選地,終端與第一服務器的交互通過JSON(JavaScript Object Notation)格式進行。
可選地,所述終端1還包括:第七單元17和第九單元19。
其中,第七單元17,用于當所述域名解析結(jié)果的生存時間過期時,根據(jù)用戶訪問請求直接返回所述對應域名解析結(jié)果;第九單元19,用于請求所述第一服務器對該域名解析結(jié)果進行更新。
在此,生存時間(TTL,Time To Live)是標準DNS協(xié)議中的一個術(shù)語,表示域名解析結(jié)果的有效時間。例如,用戶進行頁面訪問時,第七單元17對第三單元13的域名緩存表中的域名解析結(jié)果的TTL進行判斷,當發(fā)現(xiàn)該域名解析結(jié)果的TTL已經(jīng)過期時,第七單元17直接返回對應域名解析結(jié)果,以供終端根據(jù)訪問請求進行連接。與此同時,第九單元19請求所述第一服務器對該域名解析結(jié)果進行更新。對于TTL已經(jīng)過期但是域名解析結(jié)果依然有效的情況,能夠盡快進行頁面訪問。對于TTL已經(jīng)過期而且域名解析結(jié)果失效的情況,終端的頁面訪問失敗,但是第一服務器已經(jīng)更新了該域名的域名解析結(jié)果并且向終端返回,終端將更新后的域名解析結(jié)果存儲至域名緩存表中,并根據(jù)用戶再次進行的頁面訪問請求,返回更新后的域名解析結(jié)果,以成功進行頁面訪問。
可選地,所述終端1還包括:第十一單元111。
其中,第十一單元111,用于當在所述域名緩存表中沒有查詢到對應域名解析結(jié)果時,請求第二服務器進行域名解析。所述第一單元11還用于:當在所述域名緩存表中沒有查詢到對應域名解析結(jié)果時,請求所述第一服務器進行域名解析。
在此,第二服務器指現(xiàn)有的Local DNS服務器。本申請?zhí)峁┮环N容錯 機制,當域名緩存表中沒有用戶請求的域名的域名解析結(jié)果時,可以通過第十一單元111向現(xiàn)有的Local DNS服務器進行域名解析,不會對客戶端的業(yè)務造成影響。與此同時,第一單元11對第一服務器發(fā)起域名解析請求,終端將第一服務器返回的域名解析結(jié)果緩存在域名緩存表中,這樣,下一次訪問該域名時,就能在域名緩存表查詢到對應的域名解析結(jié)果。
圖2示出根據(jù)本申請一個方面的用于快速域名解析的服務器的結(jié)構(gòu)示意圖。如圖2所示,所述用于快速域名解析的第一服務器2包括:第二單元22和第四單元24。
其中,第二單元22,用于根據(jù)終端的請求進行域名解析;第四單元24,用于向所述終端返回域名解析結(jié)果,以供所述終端將所述域名解析結(jié)果存儲至域名緩存表并根據(jù)用戶的訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。
在此,現(xiàn)有技術(shù)中用戶訪問頁面時,需要向Local DNS服務器發(fā)起域名解析請求,然后由Local DNS返回相應的域名解析結(jié)果,其網(wǎng)絡交互造成了延時。本申請的終端設(shè)備在用戶訪問頁面之前,例如在終端或者其搭載的應用初始化階段,就發(fā)起域名解析請求,針對熱點網(wǎng)站或者用戶經(jīng)常瀏覽的網(wǎng)站進行域名預解析。熱點網(wǎng)站或者用戶經(jīng)常瀏覽的網(wǎng)站的域名可以預先存儲于預解析域名表中,用戶經(jīng)常瀏覽的網(wǎng)站可以通過用戶瀏覽歷史記錄獲取,熱點網(wǎng)站可以通過云端服務器或者終端進行設(shè)定。以熱點網(wǎng)站為例,終端首先將若干熱點網(wǎng)站域名存儲于預解析域名表中,在終端應用初始化階段,終端請求第二單元22對多個熱點域名進行域名解析;第四單元24向所述終端返回域名解析結(jié)果。終端將返回的多個熱點域名的域名解析結(jié)果存儲至域名緩存表;當用戶請求訪問頁面時,終端根據(jù)該用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果,域名緩存表設(shè)于終端一側(cè),由此避免了與Local DNS服務器的網(wǎng)絡交互。域名緩存表可以包含域名及其對應的IP地址,也可以包含生存時間(TTL)、協(xié)議類型、端口信息等,在為了保證域名解析結(jié)果完整性或者防止中間網(wǎng)絡的篡改前提下,域名緩存表還可以包含安全校驗值。終端從本地的域名緩存表讀取相應的域名解析結(jié)果并根據(jù)其中的IP地址連接對應業(yè)務服務器以獲取相 應頁面。第一服務器不是現(xiàn)有的Local DNS服務器,而是為了實現(xiàn)本申請目的而與終端進行相應配置的HTTP DNS服務器。HTTP DNS服務器可以接收終端發(fā)送的URL,然后進行HTTP至DNS的協(xié)議轉(zhuǎn)換,在終端一側(cè)的初始化階段由HTTP DNS服務器代替終端進行域名解析,將域名解析結(jié)果返回并存儲至終端的域名緩存表,由終端根據(jù)訪問需求從本地進行調(diào)用,節(jié)省了通過Local DNS服務器進行域名解析而造成的網(wǎng)絡交互時間浪費,提升了頁面訪問速度。
具體地,所述第二單元22包括:第二一子單元2201和第二二子單元2202。
其中,第二一子單元2201,用于接收所述終端發(fā)送的域名解析請求,所述域名解析請求包含預解析域名表中的N個域名,N為正整數(shù)。第二二子單元2202,用于獲取所述N個域名的域名解析結(jié)果。
在此,第二一子單元2201接收終端一次發(fā)送的多個域名,以獲取多個域名的域名解析結(jié)果,減少與第一服務器的交互次數(shù),節(jié)省時間而且降低服務器的訪問負擔。解析多個域名和解析單個域名對HTTP DNS服務器而言是類似的,只是一個循環(huán)迭代,分別獲得每一個域名的解析結(jié)果,最后將所有域名的解析結(jié)果按預設(shè)格式進行合并,一同返回給終端。在返回的數(shù)據(jù)報文中,將域名、解析結(jié)果及其對應關(guān)系按照預設(shè)格式組織,一一對應,通過解析數(shù)據(jù)報文就能夠區(qū)分各個域名解析結(jié)果。優(yōu)選地,終端與第一服務器的交互通過JSON(JavaScript Object Notation)格式進行。
具體地,所述第二二子單元2202用于:通過查詢域名信息數(shù)據(jù)庫或者通過域名解析獲取所述N個域名的域名解析結(jié)果。
在此,接收到域名解析請求后,第二二子單元2202可以首先查詢本地設(shè)置的域名信息數(shù)據(jù)庫,以獲取與域名相對應的域名解析結(jié)果。如果本地設(shè)置的域名信息數(shù)據(jù)庫沒有存儲對應域名的域名解析結(jié)果時,第二二子單元2202請求現(xiàn)有的第二服務器(Local DNS服務器)以獲取對應域名的域名解析結(jié)果。例如,對于終端請求中的每一個域名,第一服務器會按照標準的DNS協(xié)議,生成一個DNS請求,該DNS請求包含域名和終端IP的信息,發(fā)送給第二服務器,由第二服務器返回該域名的解析結(jié)果。
可選地,所述第一服務器2還包括:第六單元26。
第六單元26,用于當所述終端發(fā)現(xiàn)所述域名解析結(jié)果的生存時間過期時,根據(jù)所述終端的請求對該域名解析結(jié)果進行更新。
在此,生存時間(TTL,Time To Live)是標準DNS協(xié)議中的一個術(shù)語,表示域名解析結(jié)果的有效時間。例如,用戶進行頁面訪問時,終端對域名緩存表中的域名解析結(jié)果的TTL進行判斷,當發(fā)現(xiàn)該域名解析結(jié)果的TTL已經(jīng)過期時,終端直接返回對應域名解析結(jié)果,以供用戶進行頁面訪問。與此同時,終端請求所述第一服務器對該域名解析結(jié)果進行更新。對于TTL已經(jīng)過期但是域名解析結(jié)果依然有效的情況,能夠盡快進行頁面訪問。對于TTL已經(jīng)過期而且域名解析結(jié)果失效的情況,終端的頁面訪問失敗,但是第六單元26已經(jīng)更新了該域名的域名解析結(jié)果并且向終端返回,終端將更新后的域名解析結(jié)果存儲至域名緩存表中,并根據(jù)用戶再次進行頁面訪問的請求,返回更新后的域名解析結(jié)果,以成功進行頁面訪問。第六單元26可以通過第二二子單元2202進行域名解析結(jié)果的更新。
圖3示出根據(jù)本申請一個方面的快速域名解析系統(tǒng)的結(jié)構(gòu)示意圖。如圖3所示,所述快速域名解析系統(tǒng)包括:圖1所示的終端1和圖2所示的第一服務器2。
其中,終端1包括:第一單元11、第三單元13和第五單元15。服務器2包括:第二單元22和第四單元24。第一單元11,用于根據(jù)預解析域名表請求第一服務器進行域名解析。第二單元22,用于根據(jù)終端的請求進行域名解析。所述第一單元11包括:第一一子單元1101和第一二子單元1102。所述第二單元22包括:第二一子單元2201和第二二子單元2202。
其中,第一一子單元1101發(fā)送域名解析請求至第二一子單元2201,所述域名解析請求包含所述預解析域名表中的N個域名,N為正整數(shù)。第二二子單元2202通過查詢域名信息數(shù)據(jù)庫或者通過域名解析獲取所述N個域名的域名解析結(jié)果。第四單元24向第一二子單元1102返回N個域名的域名解析結(jié)果。第一二子單元1102接收返回的所述N個域名的域名解析結(jié)果。第三單元13將返回的域名解析結(jié)果存儲至域名緩存表。第五單元15根據(jù)用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。 其中,第二二子單元2202通過域名解析從第二服務器3獲取所述N個域名的域名解析結(jié)果。
在此,第一服務器指HTTP DNS服務器,第二服務器指Local DNS服務器。
可選地,所述終端1還包括:第七單元17和第九單元19。所述服務器2還包括:第六單元26。
其中,當域名緩存表內(nèi)域名解析結(jié)果的生存時間過期時,第七單元17根據(jù)用戶訪問請求直接返回所述對應域名解析結(jié)果;第九單元19請求第六單元26對該域名解析結(jié)果進行更新。第六單元26根據(jù)終端的請求通過第二二子單元2202對該域名解析結(jié)果進行更新。第二二子單元2202通過第四單元24向第一二子單元1102返回更新后的域名解析結(jié)果。第三單元13將更新后的域名解析結(jié)果存儲至域名緩存表。
所述終端1還包括:第十一單元111。
其中,當在所述域名緩存表中沒有查詢到對應域名解析結(jié)果時,第十一單元111請求第二服務器3進行域名解析。與此同時,所述第一單元11請求所述第一服務器進行域名解析。
在此,本申請?zhí)峁┮环N容錯機制,當域名緩存表中沒有用戶請求的域名的域名解析結(jié)果時,向現(xiàn)有的Local DNS服務器進行域名解析,不會對客戶端的業(yè)務造成影響。與此同時,對第一服務器發(fā)起域名解析請求,將第一服務器返回的域名解析結(jié)果緩存在域名緩存表中,這樣,下一次訪問該域名時,就能在域名緩存表查詢到對應的域名解析結(jié)果。
圖4示出根據(jù)本申請一個方面的在終端的快速域名解析方法的流程示意圖。如圖4所示,在終端的快速域名解析方法包括:
步驟S401,根據(jù)預解析域名表請求第一服務器進行域名解析;
步驟S402,將所述第一服務器返回的域名解析結(jié)果存儲至域名緩存表;
步驟S403,根據(jù)用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。
在此,現(xiàn)有技術(shù)中用戶訪問頁面時,需要向Local DNS服務器發(fā)起域 名解析請求,然后由Local DNS返回相應的域名解析結(jié)果,其網(wǎng)絡交互造成了延時。本申請的終端設(shè)備在用戶訪問頁面之前,例如在終端或者其搭載的應用初始化階段,就發(fā)起域名解析請求,針對熱點網(wǎng)站或者用戶經(jīng)常瀏覽的網(wǎng)站進行域名預解析。熱點網(wǎng)站或者用戶經(jīng)常瀏覽的網(wǎng)站的域名可以預先存儲于預解析域名表中,用戶經(jīng)常瀏覽的網(wǎng)站可以通過用戶瀏覽歷史記錄獲取,熱點網(wǎng)站可以通過云端服務器或者終端進行設(shè)定。以熱點網(wǎng)站為例,終端首先將若干熱點網(wǎng)站域名存儲于預解析域名表中,在終端應用初始化階段,終端根據(jù)預解析域名表請求第一服務器對多個熱點域名進行域名解析;終端將所述第一服務器返回的多個熱點域名的域名解析結(jié)果存儲至域名緩存表;當用戶請求訪問頁面時,終端根據(jù)該用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果,域名緩存表設(shè)于終端一側(cè),由此避免了與Local DNS服務器的網(wǎng)絡交互。域名緩存表可以包含域名及其對應的IP地址,也可以包含生存時間(TTL)、協(xié)議類型、端口信息等,在為了保證域名解析結(jié)果完整性或者防止中間網(wǎng)絡的篡改前提下,域名緩存表還可以包含安全校驗值。終端從本地的域名緩存表讀取相應的域名解析結(jié)果并根據(jù)其中的IP地址連接對應業(yè)務服務器以獲取相應頁面。第一服務器不是現(xiàn)有的Local DNS服務器,而是為了實現(xiàn)本申請目的而與終端進行相應配置的HTTP DNS服務器。HTTP DNS服務器可以接收終端發(fā)送的URL,然后進行HTTP至DNS的協(xié)議轉(zhuǎn)換,在終端一側(cè)的初始化階段由HTTP DNS服務器代替終端進行域名解析,將域名解析結(jié)果返回并存儲至終端的域名緩存表,由終端根據(jù)訪問需求從本地進行調(diào)用,節(jié)省了通過Local DNS服務器進行域名解析而造成的網(wǎng)絡交互時間浪費,提升了頁面訪問速度。
具體地,步驟S401根據(jù)預解析域名表請求第一服務器進行域名解析包括:
步驟S4011,發(fā)送域名解析請求至所述第一服務器;其中,所述域名解析請求包含所述預解析域名表中的N個域名,N為正整數(shù);
步驟S4012,接收所述第一服務器返回的所述N個域名的域名解析結(jié)果。
在此,終端向第一服務器一次發(fā)送多個域名,以獲取多個域名的域名解析結(jié)果,減少與第一服務器的交互次數(shù),節(jié)省時間而且降低服務器的訪問負擔。解析多個域名和解析單個域名對HTTP DNS服務器而言是類似的,只是一個循環(huán)迭代,分別獲得每一個域名的解析結(jié)果,最后將所有域名的解析結(jié)果按預設(shè)格式進行合并,一同返回給終端。在返回的數(shù)據(jù)報文中,將域名、解析結(jié)果及其對應關(guān)系按照預設(shè)格式組織,一一對應,通過解析數(shù)據(jù)報文就能夠區(qū)分各個域名解析結(jié)果。優(yōu)選地,終端與第一服務器的交互通過JSON(JavaScript Object Notation)格式進行。
可選地,所述方法還包括:
步驟S404,當所述域名解析結(jié)果的生存時間過期時,根據(jù)用戶訪問請求直接返回所述對應域名解析結(jié)果;
步驟S405,請求所述第一服務器對該域名解析結(jié)果進行更新。
在此,生存時間(TTL,Time To Live)是標準DNS協(xié)議中的一個術(shù)語,表示域名解析結(jié)果的有效時間。例如,用戶進行頁面訪問時,終端對域名緩存表中的域名解析結(jié)果的TTL進行判斷,當發(fā)現(xiàn)該域名解析結(jié)果的TTL已經(jīng)過期時,終端直接返回對應域名解析結(jié)果,以供根據(jù)訪問請求進行連接。與此同時,終端請求所述第一服務器對該域名解析結(jié)果進行更新。對于TTL已經(jīng)過期但是域名解析結(jié)果依然有效的情況,能夠盡快進行頁面訪問。對于TTL已經(jīng)過期而且域名解析結(jié)果失效的情況,終端的頁面訪問失敗,但是第一服務器已經(jīng)更新了該域名的域名解析結(jié)果并且向終端返回,終端將更新后的域名解析結(jié)果存儲至域名緩存表中,并根據(jù)用戶再次進行的頁面訪問請求,返回更新后的域名解析結(jié)果,以成功進行頁面訪問。
可選地,所述方法還包括:
步驟S406,當在所述域名緩存表中沒有查詢到對應域名解析結(jié)果時,請求第二服務器進行域名解析并且請求所述第一服務器進行域名解析。
在此,第二服務器指現(xiàn)有的Local DNS服務器。本申請?zhí)峁┮环N容錯機制,當域名緩存表中沒有用戶請求的域名的域名解析結(jié)果時,終端向現(xiàn)有的Local DNS服務器進行域名解析,不會對客戶端的業(yè)務造成影響。與此同時,終端對第一服務器發(fā)起域名解析請求,將第一服務器返回的域名 解析結(jié)果緩存在域名緩存表中,這樣,下一次訪問該域名時,就能在域名緩存表查詢到對應的域名解析結(jié)果。
圖5示出根據(jù)本申請一個方面的在服務端的快速域名解析方法的流程示意圖。如圖5所示,所述在服務端的快速域名解析方法包括:
步驟S501,根據(jù)終端的請求進行域名解析;
步驟S502,向所述終端返回域名解析結(jié)果,以供所述終端將所述域名解析結(jié)果存儲至域名緩存表并根據(jù)用戶的訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。
在此,現(xiàn)有技術(shù)中用戶訪問頁面時,需要向Local DNS服務器發(fā)起域名解析請求,然后由Local DNS返回相應的域名解析結(jié)果,其網(wǎng)絡交互造成了延時。本申請的終端設(shè)備在用戶訪問頁面之前,例如在終端或者其搭載的應用初始化階段,就發(fā)起域名解析請求,針對熱點網(wǎng)站或者用戶經(jīng)常瀏覽的網(wǎng)站進行域名預解析。熱點網(wǎng)站或者用戶經(jīng)常瀏覽的網(wǎng)站的域名可以預先存儲于預解析域名表中,用戶經(jīng)常瀏覽的網(wǎng)站可以通過用戶瀏覽歷史記錄獲取,熱點網(wǎng)站可以通過云端服務器或者終端進行設(shè)定。以熱點網(wǎng)站為例,終端首先將若干熱點網(wǎng)站域名存儲于預解析域名表中,在終端應用初始化階段,終端請求第一服務器對多個熱點域名進行域名解析;第一服務器向所述終端返回域名解析結(jié)果。終端將返回的多個熱點域名的域名解析結(jié)果存儲至域名緩存表;當用戶請求訪問頁面時,終端根據(jù)該用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果,域名緩存表設(shè)于終端一側(cè),由此避免了與Local DNS服務器的網(wǎng)絡交互。域名緩存表可以包含域名及其對應的IP地址,也可以包含生存時間(TTL)、協(xié)議類型、端口信息等,在為了保證域名解析結(jié)果完整性或者防止中間網(wǎng)絡的篡改前提下,域名緩存表還可以包含安全校驗值。終端從本地的域名緩存表讀取相應的域名解析結(jié)果并根據(jù)其中的IP地址連接對應業(yè)務服務器以獲取相應頁面。第一服務器不是現(xiàn)有的Local DNS服務器,而是為了實現(xiàn)本申請目的而與終端進行相應配置的HTTP DNS服務器。HTTP DNS服務器可以接收終端發(fā)送的URL,然后進行HTTP至DNS的協(xié)議轉(zhuǎn)換,在終端一側(cè)的初始化階段由HTTP DNS服務器代替終端進行域名解析,將域名解析結(jié)果 返回并存儲至終端的域名緩存表,由終端根據(jù)訪問需求從本地進行調(diào)用,節(jié)省了通過Local DNS服務器進行域名解析而造成的網(wǎng)絡交互時間浪費,提升了頁面訪問速度。
具體地,步驟S501根據(jù)終端的請求進行域名解析包括:
步驟S5011,接收所述終端發(fā)送的域名解析請求;其中,所述域名解析請求包含預解析域名表中的N個域名,N為正整數(shù);
步驟S5012,獲取所述N個域名的域名解析結(jié)果。
在此,第一服務器接收終端一次發(fā)送的多個域名,以獲取多個域名的域名解析結(jié)果,減少與第一服務器的交互次數(shù),節(jié)省時間而且降低服務器的訪問負擔。解析多個域名和解析單個域名對HTTP DNS服務器而言是類似的,只是一個循環(huán)迭代,分別獲得每一個域名的解析結(jié)果,最后將所有域名的解析結(jié)果按預設(shè)格式進行合并,一同返回給終端。在返回的數(shù)據(jù)報文中,將域名、解析結(jié)果及其對應關(guān)系按照預設(shè)格式組織,一一對應,通過解析數(shù)據(jù)報文就能夠區(qū)分各個域名解析結(jié)果。優(yōu)選地,終端與第一服務器的交互通過JSON(JavaScript Object Notation)格式進行。
可選地,步驟S5012獲取所述N個域名的域名解析結(jié)果包括:
通過查詢域名信息數(shù)據(jù)庫或者通過域名解析獲取所述N個域名的域名解析結(jié)果。
在此,第一服務器接收到域名解析請求后,可以首先查詢本地設(shè)置的域名信息數(shù)據(jù)庫,以獲取與域名相對應的域名解析結(jié)果。如果本地設(shè)置的域名信息數(shù)據(jù)庫沒有存儲對應域名的域名解析結(jié)果時,第一服務器請求第二服務器(現(xiàn)有的Local DNS服務器)以獲取對應域名的域名解析結(jié)果。例如,對于終端請求中的每一個域名,第一服務器會按照標準的DNS協(xié)議,生成一個DNS請求,該DNS請求包含域名和終端IP的信息,發(fā)送給第二服務器,由第二服務器返回該域名的解析結(jié)果。
可選地,所述方法還包括:
步驟S503,當所述終端發(fā)現(xiàn)所述域名解析結(jié)果的生存時間過期時,根據(jù)所述終端的請求對該域名解析結(jié)果進行更新。
在此,生存時間(TTL,Time To Live)是標準DNS協(xié)議中的一個術(shù) 語,表示域名解析結(jié)果的有效時間。例如,用戶進行頁面訪問時,終端對域名緩存表中的域名解析結(jié)果的TTL進行判斷,當發(fā)現(xiàn)該域名解析結(jié)果的TTL已經(jīng)過期時,終端直接返回對應域名解析結(jié)果,以供用戶進行頁面訪問。與此同時,終端請求所述第一服務器對該域名解析結(jié)果進行更新。對于TTL已經(jīng)過期但是域名解析結(jié)果依然有效的情況,能夠盡快進行頁面訪問。對于TTL已經(jīng)過期而且域名解析結(jié)果失效的情況,終端的頁面訪問失敗,但是第一服務器已經(jīng)更新了該域名的域名解析結(jié)果并且向終端返回,終端將更新后的域名解析結(jié)果存儲至域名緩存表中,并根據(jù)用戶再次進行頁面訪問的請求,返回更新后的域名解析結(jié)果,以成功進行頁面訪問。
圖6示出根據(jù)本申請一個方面的快速域名解析方法的流程示意圖。如圖6所示,該快速域名解析方法包括:
步驟S6001,終端1發(fā)送域名解析請求至所述第一服務器2;其中,所述域名解析請求包含所述預解析域名表中的N個域名,N為正整數(shù)。
在此,第一服務器指HTTP DNS服務器。
步驟S6002,第一服務器2接收所述終端1發(fā)送的域名解析請求。
在此,第一服務器接收終端一次發(fā)送的多個域名,以獲取多個域名的域名解析結(jié)果,減少與第一服務器的交互次數(shù),節(jié)省時間而且降低服務器的訪問負擔。解析多個域名和解析單個域名對HTTP DNS服務器而言是類似的,只是一個循環(huán)迭代,分別獲得每一個域名的解析結(jié)果,最后將所有域名的解析結(jié)果按預設(shè)格式進行合并,一同返回給終端。在返回的數(shù)據(jù)報文中,將域名、解析結(jié)果及其對應關(guān)系按照預設(shè)格式組織,一一對應,通過解析數(shù)據(jù)報文就能夠區(qū)分各個域名解析結(jié)果。優(yōu)選地,終端與第一服務器的交互通過JSON(JavaScript Object Notation)格式進行。
步驟S6003,第一服務器2通過查詢域名信息數(shù)據(jù)庫N個域名的域名解析結(jié)果;
或者,步驟S6004,第一服務器2通過域名解析獲取所述N個域名的域名解析結(jié)果;
在此,第一服務器2接收到域名解析請求后,可以首先查詢本地設(shè)置的域名信息數(shù)據(jù)庫,以獲取與域名相對應的域名解析結(jié)果。如果本地設(shè)置 的域名信息數(shù)據(jù)庫沒有存儲對應域名的域名解析結(jié)果時,第一服務器2請求第二服務器3(Local DNS服務器)以獲取對應域名的域名解析結(jié)果。例如,對于終端請求中的每一個域名,第一服務器會按照標準的DNS協(xié)議,生成一個DNS請求,該DNS請求包含域名和終端IP的信息,發(fā)送給第二服務器,由第二服務器返回該域名的解析結(jié)果。
步驟S6005,第一服務器2向所述終端1返回N個域名的域名解析結(jié)果;
步驟S6006,終端1接收所述第一服務器2返回的所述N個域名的域名解析結(jié)果。
步驟S6007,終端1將所述第一服務器2返回的域名解析結(jié)果存儲至域名緩存表;
步驟S6008,終端1根據(jù)用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果。
在此,終端設(shè)備在用戶訪問頁面之前,例如在終端或者其搭載的應用初始化階段,就發(fā)起域名解析請求,針對熱點網(wǎng)站或者用戶經(jīng)常瀏覽的網(wǎng)站進行域名預解析。當用戶請求訪問頁面時,終端根據(jù)該用戶訪問請求查詢所述域名緩存表以獲取對應域名解析結(jié)果,域名緩存表設(shè)于終端一側(cè),由此避免了與Local DNS服務器的網(wǎng)絡交互。域名緩存表可以包含域名及其對應的IP地址,也可以包含生存時間(TTL)、協(xié)議類型、端口信息等,在為了保證域名解析結(jié)果完整性或者防止中間網(wǎng)絡的篡改前提下,域名緩存表還可以包含安全校驗值。終端從本地的域名緩存表讀取相應的域名解析結(jié)果并根據(jù)其中的IP地址連接對應業(yè)務服務器以獲取相應頁面。第一服務器不是現(xiàn)有的Local DNS服務器,而是為了實現(xiàn)本申請目的而與終端進行相應配置的HTTP DNS服務器。HTTP DNS服務器將域名解析結(jié)果返回并存儲至終端的域名緩存表,由終端根據(jù)訪問需求從本地進行調(diào)用,節(jié)省了通過Local DNS服務器進行域名解析而造成的網(wǎng)絡交互時間浪費,提升了頁面訪問速度。
步驟S6009,當所述域名解析結(jié)果的生存時間過期時,終端1根據(jù)用戶訪問請求直接返回所述對應域名解析結(jié)果;
步驟S6010,終端1請求所述第一服務器2對該域名解析結(jié)果進行更新。
步驟S6011,第一服務器2根據(jù)所述終端1的請求對該域名解析結(jié)果進行更新。
在此,用戶進行頁面訪問時,終端對域名緩存表中的域名解析結(jié)果的TTL進行判斷,當發(fā)現(xiàn)該域名解析結(jié)果的TTL已經(jīng)過期時,終端直接返回對應域名解析結(jié)果,以供用戶進行頁面訪問。與此同時,終端請求所述第一服務器對該域名解析結(jié)果進行更新。對于TTL已經(jīng)過期但是域名解析結(jié)果依然有效的情況,能夠盡快進行頁面訪問。對于TTL已經(jīng)過期而且域名解析結(jié)果失效的情況,終端的頁面訪問失敗,但是第一服務器已經(jīng)更新了該域名的域名解析結(jié)果并且向終端返回,終端將更新后的域名解析結(jié)果存儲至域名緩存表中,并根據(jù)用戶再次進行頁面訪問的請求,返回更新后的域名解析結(jié)果,以成功進行頁面訪問。
步驟S6012,當在所述域名緩存表中沒有查詢到對應域名解析結(jié)果時,終端1請求第二服務器3進行域名解析。
并且,步驟S6013,當在所述域名緩存表中沒有查詢到對應域名解析結(jié)果時,終端1請求所述第一服務器2進行域名解析。
步驟S6014,第一服務器2根據(jù)終端1的請求進行域名解析;
步驟S6015,第一服務器2向所述終端1返回域名解析結(jié)果
步驟S6016,終端1將所述域名解析結(jié)果存儲至域名緩存表。
在此,本申請?zhí)峁┮环N容錯機制,當域名緩存表中沒有用戶請求的域名的域名解析結(jié)果時,終端向現(xiàn)有的Local DNS服務器進行域名解析,不會對客戶端的業(yè)務造成影響。與此同時,終端對第一服務器發(fā)起域名解析請求,將第一服務器返回的域名解析結(jié)果緩存在域名緩存表中,這樣,下一次訪問該域名時,就能在域名緩存表查詢到對應的域名解析結(jié)果。
需要注意的是,本申請可在軟件和/或軟件與硬件的組合體中被實施,例如,可采用專用集成電路(ASIC)、通用目的計算機或任何其他類似硬件設(shè)備來實現(xiàn)。在一個實施例中,本申請的軟件程序可以通過處理器執(zhí)行以實現(xiàn) 上文所述步驟或功能。同樣地,本申請的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲到計算機可讀記錄介質(zhì)中,例如,RAM存儲器,磁或光驅(qū)動器或軟磁盤及類似設(shè)備。另外,本申請的一些步驟或功能可采用硬件來實現(xiàn),例如,作為與處理器配合從而執(zhí)行各個步驟或功能的電路。
另外,本申請的一部分可被應用為計算機程序產(chǎn)品,例如計算機程序指令,當其被計算機執(zhí)行時,通過該計算機的操作,可以調(diào)用或提供根據(jù)本申請的方法和/或技術(shù)方案。而調(diào)用本申請的方法的程序指令,可能被存儲在固定的或可移動的記錄介質(zhì)中,和/或通過廣播或其他信號承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲在根據(jù)所述程序指令運行的計算機設(shè)備的工作存儲器中。在此,根據(jù)本申請的一個實施例包括一個裝置,該裝置包括用于存儲計算機程序指令的存儲器和用于執(zhí)行程序指令的處理器,其中,當該計算機程序指令被該處理器執(zhí)行時,觸發(fā)該裝置運行基于前述根據(jù)本申請的多個實施例的方法和/或技術(shù)方案。
對于本領(lǐng)域技術(shù)人員而言,顯然本申請不限于上述示范性實施例的細節(jié),而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本申請。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請內(nèi)。不應將權(quán)利要求中的任何附圖標記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復數(shù)。裝置權(quán)利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。