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