網頁資源獲取方法及裝置制造方法
【專利摘要】本發明提供了一種網頁資源獲取方法及裝置。其中,該網頁資源獲取方法包括:根據網頁訪問請求對目標網頁進行訪問,并向內容分發網絡CDN請求獲取需要加載在目標網頁中的第一網頁資源;判斷是否成功獲取第一網頁資源;若未成功獲取第一網頁資源,則從CDN以外的備份網絡獲取與第一網頁資源的內容一致的第二網頁資源。本發明解決了現有技術中客戶端無法從CDN獲取網頁資源而造成的目標網頁無法正常訪問的技術問題,實現了對目標網頁進行正常訪問的技術效果,并達到了提高網頁訪問的可靠性的技術效果。
【專利說明】網頁資源獲取方法及裝置
【技術領域】
[0001]本發明涉及通信領域,具體而言,涉及一種網頁資源獲取方法及裝置。
【背景技術】
[0002]在現有的互聯網通信技術中,網絡Web頁面(也稱網頁)為了提升訪問速度,通常將引用的網頁資源存放在內容分發網絡⑶N(Content Delivery Network)中。從而如圖1所示,在客戶端對網頁進行訪問時,可以采取就近訪問的原則,由域名系統DNS (Domain NameSystem)服務器為客戶端就近分配CDN中的節點,從該CDN節點對網頁所需的網頁資源進行拉取,從而可以縮短網頁資源的加載時間,并可以分散訪問量較大的網頁對網頁資源進行獲取的壓力。CDN的使用大幅提升了客戶端的頁面加載速度,提升了網站的可訪問性。
[0003]然而,由于在⑶N的應用中通常需要將網頁所需的網頁資源存放到獨立的⑶N的域名下,從而導致頁面的域名和網頁資源的域名通常不相同。在上述場景下,如果客戶端所處的網絡無法對CDN進行正常訪問,例如一些客戶端所在的網絡,如公司或學校網絡,考慮到域名訪問的安全因素,通過網站白名單的方式限制客戶端對CDN的訪問,則將導致網頁資源無法正常獲取,從而造成網頁無法正常訪問的問題,影響了網頁訪問的可靠性。
[0004]針對上述問題,目前尚未提出有效的解決方案。
【發明內容】
[0005]本發明的主要目的在于提供一種網頁資源獲取方法及裝置,以解決現有技術中客戶端無法從CDN獲取網頁資源而造成的目標網頁無法正常訪問的問題。
[0006]為了實現上述目的,根據本發明的一個方面,提供了一種網頁資源獲取方法。該方法包括:根據網頁訪問請求對目標網頁進行訪問,并向內容分發網絡CDN請求獲取需要加載在上述目標網頁中的第一網頁資源;判斷是否成功獲取上述第一網頁資源;若未成功獲取上述第一網頁資源,則從上述⑶N以外的備份網絡獲取與上述第一網頁資源的內容一致的第二網頁資源。
[0007]為了實現上述目的,根據本發明的另一方面,還提供了一種網頁資源獲取裝置。該裝置包括:訪問單元,用于根據網頁訪問請求對目標網頁進行訪問,并向CDN請求獲取需要加載在上述目標網頁中的第一網頁資源;判斷單元,用于判斷是否成功獲取上述第一網頁資源;第一獲取單元,用于在未成功獲取上述第一網頁資源時,從上述CDN以外的備份網絡獲取與上述第一網頁資源的內容一致的第二網頁資源。
[0008]在本發明實施例中,在向⑶N請求獲取第一網頁資源后,根據該第一網頁資源是否成功獲取的判斷結果,在未成功獲取時,通過從備用網絡中獲取與第一網頁資源的內容一致的第二網頁資源,滿足了正常在目標網頁中加載對應的網頁元素的條件,從而解決了現有技術中客戶端無法從CDN獲取網頁資源而造成的目標網頁無法正常訪問的技術問題,實現了對目標網頁進行正常訪問的技術效果,并達到了提高網頁訪問的可靠性的技術效果O
【專利附圖】
【附圖說明】
[0009]構成本申請的一部分的附圖用來提供對本發明的進一步理解,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
[0010]圖1是根據現有技術的一種網頁資源獲取方法的實施環境的示意圖;
[0011]圖2是根據本發明實施例的一種可選的網頁資源獲取方法的示意圖;
[0012]圖3是根據本發明實施例的另一種可選的網頁資源獲取方法的示意圖;
[0013]圖4是根據本發明實施例的又一種可選的網頁資源獲取方法的示意圖;
[0014]圖5是根據本發明實施例的又一種可選的網頁資源獲取方法的示意圖;
[0015]圖6是根據本發明實施例的一種可選的網頁資源獲取方法的實施環境的示意圖;
[0016]圖7是根據本發明實施例的又一種可選的網頁資源獲取方法的示意圖;
[0017]圖8是根據本發明實施例的又一種可選的網頁資源獲取方法的示意圖;
[0018]圖9是根據本發明實施例的又一種可選的網頁資源獲取方法的示意圖;
[0019]圖10是根據本發明實施例的又一種可選的網頁資源獲取方法的示意圖;
[0020]圖11是根據本發明實施例的一種可選的網頁資源獲取裝置的示意圖;
[0021]圖12是根據本發明實施例的另一種可選的網頁資源獲取裝置的示意圖;
[0022]圖13是根據本發明實施例的又一種可選的網頁資源獲取裝置的示意圖;
[0023]圖14是根據本發明實施例的又一種可選的網頁資源獲取裝置的示意圖;
[0024]圖15是根據本發明實施例的又一種可選的網頁資源獲取裝置的示意圖;
[0025]圖16是根據本發明實施例的又一種可選的網頁資源獲取裝置的示意圖;
[0026]圖17是根據本發明實施例的又一種可選的網頁資源獲取裝置的示意圖;
[0027]圖18是根據本發明實施例的又一種可選的網頁資源獲取裝置的示意圖。
【具體實施方式】
[0028]為了使本【技術領域】的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
[0029]需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
[0030]實施例1
[0031]根據本發明實施例,提供了一種網頁資源獲取方法。如圖2所示,該方法可以包括:
[0032]S202:根據網頁訪問請求對目標網頁進行訪問,并向內容分發網絡⑶N (ContentDelivery Network)請求獲取需要加載在目標網頁中的第一網頁資源;
[0033]S204:判斷是否成功獲取第一網頁資源,其中,
[0034]若否,執行步驟S206 ;
[0035]S206:從⑶N以外的備份網絡獲取與第一網頁資源的內容一致的第二網頁資源。
[0036]根據本發明實施例提供的網頁資源獲取方法,在步驟S102中,可以根據網頁訪問請求對目標網頁進行訪問,并向CDN請求獲取需要加載在所述目標網頁中的第一網頁資源。
[0037]一般而言,在本發明實施例中,上述對目標網頁的網頁訪問請求通常可以來自于對瀏覽器或用戶界面中的指向目標網頁的鏈接的點選的識別,并且,作為網絡資源的一種,上述目標網頁的網頁文件通常可以通過統一資源定位符URL(Uniform Resource Locator)進行定位,例如,在本發明的一些實施例中,對上述瀏覽器或用戶界面中存在URL超鏈接的一段文字上的鼠標點擊動作的捕捉與識別即可以形成網頁訪問請求。當然,上述指向目標網頁的鏈接也可以不出現在文字上,而是在圖標、圖片、視頻畫面等其他瀏覽器或用戶界面中的元素上,本發明對此不作限定。
[0038]值得注意的是,上述實施例中描述的只是網頁訪問請求的一種較為常見的表現形式,而非必須的實施方式,例如,在本發明的一些實施例中,網頁訪問請求的生成也可以與讀取自計算機輸入設備的輸入信號無關,例如,該網頁訪問請求可以由客戶端中正在運行的應用自動生成,以形成對瀏覽器或用戶界面上的彈出頁,如導航頁面等的訪問,本發明對此不作任何限定。
[0039]基于上述對目標網頁的訪問請求,可以實現對目標網頁的訪問,然而,由于格式限制,與目標網頁對應的網頁文檔自身通常不足以涵蓋其所需呈現的全部信息內容。
[0040]一般而言,目標網頁通常可以表現為超文本標記語言html (Hypertext MarkupLanguage)格式的網頁文檔,并可以通過在該網頁文檔中進行編輯的不同元素,例如文本、圖像、音頻、視頻、交互式表單等定義目標網頁的具體呈現方式,從而可以在網頁中展示不同類型的信息,以及實現與外部信息的交互。
[0041]其中,上述網頁元素中的一部分可以直接記錄在上述網頁文檔的內部,由加載器、瀏覽器或用戶界面等直接加載,而另一部分可以通過外部資源鏈接的方式,利用網頁文檔中記錄的存在于該網頁文檔的外部的網頁資源的鏈接地址,實現對這些網頁資源的調用,并進一步地通過加載器、瀏覽器或用戶界面等加載到目標網頁中,以構成上述網頁元素。其中,上述網頁資源的鏈接地址通常也可以表現為URL,然而本發明對此不作限定。
[0042]如前所述,在現有技術中,上述存在于網頁文檔的外部的網頁資源可以存放在與網頁訪問終端之間數據鏈路較短、數據傳輸速度較快的CDN的節點上,其中,該節點可以用于表示計算機網絡中的一個域,也可以表示其中的一臺計算機或服務器等具有基本的數據處理功能的存儲媒介。其中,為便于下文的描述,可以將上述存放在CDN節點上的用于向目標網頁加載的網頁資源記為第一網頁資源。
[0043]具體地,與上述網頁元素對應,第一網頁資源也可以有多種類型,例如文本、圖片、視頻文件等,而其文件格式也可以有多種,例如,較為常見的,可以包括Javascript腳本或層疊樣式表CSS (Cascading Style Sheet)類型的文件等,本發明對此均不做任何限定,應理解為可行的任意形式的網頁資源。
[0044]值得注意的是,在本發明實施例中,目標網頁可以根據與之對應的網頁文檔中記錄的第一網頁資源的URL調用該第一網頁資源,然而與該URL對應的第一網頁資源并不一定必然存放在CDN中預定的位置,例如,通過CDN服務器的數據清除或更新操作,可以將該第一網頁資源從CDN中刪除,或更新到其他地址或路徑,也即,在本發明的一些實施例中,客戶端可以向CDN請求獲取第一網頁資源,然而該第一網頁資源也可以不存在于上述CDN中。需要說明的是,上述的場景并不影響本發明技術方案的實施,也不應理解為對本發明構成任何限定。
[0045]根據本發明實施例提供的網頁資源獲取方法,如圖2所示,在步驟S204中,可以在上述向⑶N請求獲取第一網頁資源后,判斷是否成功獲取所述第一網頁資源。
[0046]一般而言,上述第一網頁資源的獲取請求可以表現為通過與之對應的URL對第一網頁資源的訪問或者說調用,其中,為便于描述,將上述用于定位第一網頁資源的鏈接地址定義為第一 URL。
[0047]具體地,在上述場景下,⑶N對于上述的網頁資源獲取請求的響應一般可以包括以下四種情形:
[0048]I)⑶N對網頁資源獲取請求做出響應,并將第一網頁資源發送到客戶端;
[0049]2)⑶N對網頁資源獲取請求做出響應,且存在與第一 URL對應的第一網頁資源,但未成功將第一網頁資源發送到客戶端;
[0050]3)⑶N對網頁資源獲取請求做出響應,但不存在與第一 URL對應的第一網頁資源;
[0051]4)⑶N未對網頁資源獲取請求做出響應。
[0052]其中,對于第一種情形,可以判斷出成功獲取所述第一網頁資源,也即客戶端可以正常地從CDN獲取網頁資源并實現對完整的目標網頁的訪問,鑒于客戶端從CDN獲取網頁資源的方案屬于現有技術中成熟的技術方案,本發明在此不作累述。
[0053]對于第二種情形,具體地,在本發明的一些實施例中,可以來源于客戶端的網絡安全設置,例如防火墻、下載屏蔽、在客戶端或其所處的域設置的資源訪問的限制等,從而導致⑶N在接收到第一網頁資源的獲取請求后,無法將第一網頁資源發送至客戶端中的瀏覽器或用戶界面等,從而可以判斷出未成功獲取所述第一網頁資源。
[0054]對于第三種情形,如前所述,在本發明的一些實施例中,第一網頁資源可以存放在第一 URL以外的位置,例如,在CDN服務器的更新操作中,對第一 URL的訪問路徑進行了更改,等,從而導致⑶N無法將第一網頁資源發送至客戶端,也可以判斷為未成功獲取所述第一網頁資源。
[0055]對于第四種情形,具體地,在本發明的一些實施例中,可以來源于存放第一網頁資源的CDN中的節點的訪問設置,例如,禁止該節點設置的白名單以外的用戶對該節點的訪問,從而導致CDN未能對第一網頁資源的獲取請求作出響應,也應判斷為未成功獲取所述第一網頁資源。
[0056]對于以上情形,可以分別對其進行判斷以得出是否成功獲取所述第一網頁資源的判斷結果,然而,在另一方面,上述是否成功獲取所述第一網頁資源的判斷操作也可以與用戶設置和網絡環境無關,比如可以在客戶端指定的端口進行監控,以檢測在發送網頁資源獲取請求后,是否成功從CDN接收到第一網頁資源。
[0057]當然,以上實施例只是一種示例,在本發明實施例中,還可以通過其他方式對是否成功獲取第一網頁資源進行判斷,可選地,如圖3所示,步驟S204可以包括:
[0058]S302:判斷是否成功將第一網頁資源加載到目標網頁中,其中,
[0059]若是,則執行步驟S304,
[0060]若否,則執行步驟S306 ;
[0061]S304:判斷出成功獲取第一網頁資源;
[0062]S306:判斷出未成功獲取第一網頁資源。
[0063]一般而言,在對目標網頁進行訪問的過程中,瀏覽器或加載器將根據目標網頁所對應的網頁文檔對第一網頁資源進行拉取,并在成功獲取第一網頁資源后,將其加載到呈現在瀏覽器或用戶界面中的目標網頁中,從而,在本發明實施例中,可以通過第一網頁資源加載成功與否的判斷的結果,來判斷是否成功從CDN獲取第一網頁資源,其中,若目標網頁所需的第一網頁資源成功加載到目標網頁中,則可以判斷出在加載操作之前客戶端已經成功從⑶N獲取了第一網頁資源,若目標網頁所需的第一網頁資源未成功加載到目標網頁中,則無論加載失敗的原因出自對CDN中的第一網頁資源的獲取失敗,還是瀏覽器或加載器的加載失敗,均可以視為未能成功獲取第一網頁資源,從而可以在步驟S206中轉向備份網絡請求獲取第二網頁資源。
[0064]值得注意的是,在本發明的一些實施例中,對于基于html標簽的網頁資源的加載方式,其加載動作可以與網頁資源的獲取請求同步進行,具體地,例如,對于第一網頁資源為Javascript腳本文件的情形,可以通過如下所示的html標簽對該Javascript腳本文件進行加載:
[0065]〈script src= " script, js " type= " text/javascript" charset=〃 utf-8" ></script),
[0066]其中,“〈scriptX/script〉”可以用于表示html標簽中的〈script〉標簽,該標簽可以用于定義腳本類型的文件,其中,
[0067]Type屬性可以用于規定該腳本文件的多用途互聯網郵件擴展MIME (MultipurposeInternet Mail Extens1ns)類型,其中,“javascript”可以用于表示該腳本文件的類型為Javascript腳本文件;
[0068]Charset屬性可以用于規定該Javascript腳本文件的字符編碼方式,例如,上述的“utf-8”可以用于表示Unicode編碼方式;
[0069]Src屬性可以用于指向外部腳本文件,也即該Javascript腳本文件,且可以通過Src屬性的賦值來規定該Javascript腳本文件的訪問路徑,其中,該訪問路徑通常表現為該Javascript腳本文件的URL,例如上述的“script, js”。
[0070]從以上描述可以看出,在通過上述html〈Script>標簽對作為第一網頁資源的Javascript腳本文件進行加載的過程中,由于通過Src屬性規定了該Javascript腳本文件的訪問路徑,并可以根據該路徑對其進行訪問和調用,從而可以視為在加載的同時對第一網頁資源提出了獲取的請求。
[0071]值得注意的是,對于基于靜態html標簽的網頁資源的加載方式而言,由于其難以準確判斷腳本的加載狀態,從而在本發明的一些實施例中,可以使用JS(Javascript)加載器對Javascript腳本文件進行加載,在上述場景下,如圖4所示,可選地,步驟S302可以包括:
[0072]S402:通過加載器判斷是否成功將所述Javascript腳本文件加載到所述目標網頁中。
[0073]其中,常見的JS加載器有很多,例如,可以為基于script DOM方式的加載器,也可以為基于ajax eval方式的加載器,以及其他可行的可以用于判斷Javascript腳本文件是否成功加載的加載器,本發明對此不作限定。
[0074]類似地,對于第一網頁資源為CSS文件的情形,同樣可以通過html標簽對其進行加載,例如,該html標簽可以為:
[0075]〈link rel = " stylesheet " href = " /css/master, css " type = " text/css" media = " screen" chaset = " utf-8" >,
[0076]其中,“〈I ink〉”可以用于表示html標簽中的〈I ink〉標簽,該標簽可以用于定義網頁文檔與外部的網頁資源之間的關系,且通常可以用于鏈接樣式表,例如CSS文件,其中,
[0077]Type屬性可以用于規定該外部網頁資源的MIME類型,其中,“text/css”可以用于表示該被鏈接的網頁資源為CSS文件;
[0078]Rel屬性可以用于規定上述網頁文檔與該CSS文件之間的鏈接關系,其中,“stylesheet”可以用于表示鏈接樣式表;
[0079]Media屬性可以用于規定被鏈接的該CSS文件將在什么類型的設備上顯示,例如,上述“screen”可以用于表示在PC設備上顯示;
[0080]Charset屬性可以用于規定該CSS文件的字符編碼方式,例如,上述的“utf_8”可以用于表不Unicode編碼方式;
[0081]Href屬性可以用于定義該CSS腳本文件的訪問路徑,其中,該訪問路徑通常表現為該CSS文件的URL,例如上述的“/css/master, css”。
[0082]類似地,在通過上述html〈link>標簽對作為第一網頁資源的CSS文件進行加載的過程中,由于通過Href屬性規定了該CSS文件的訪問路徑,并可以根據該路徑對其進行訪問和調用,從而可以視為在加載的同時對第一網頁資源提出了獲取的請求。
[0083]如圖5所示,在本發明實施例中,對于第一網頁資源為CSS文件的情形,步驟S302可以包括:
[0084]S502:在向⑶N請求獲取目標網頁中需要加載的第一網頁資源后的預設時間長度內,判斷目標網頁中指定的文件對象模型DOM節點是否已成功加載在CSS文件中記錄的與DOM節點對應的預設樣式,
[0085]若是,則執行步驟S504,
[0086]若否,則執行步驟S506 ;
[0087]S504:判斷出在目標網頁中成功加載CSS文件;
[0088]S506:判斷出在目標網頁中未成功加載CSS文件。
[0089]其中,DOM作為一種標準編程接口,參照其規定,在本發明實施例中,網頁文檔中的每一個成分均可以視為一個DOM節點,例如,該DOM節點可以為網頁文檔的整體,也可以為上述的用于鏈接外部網頁資源的html標簽,還可以為網頁文檔中記錄的網頁元素,例如其中的文本或html屬性,等。
[0090]在本發明實施例中,可以在CSS文件中為一個或多個DOM節點設置指定的樣式,作為上述的預設樣式,并以該預設樣式作判斷是否成功加載該CSS文件的指示符,在嘗試對該CSS文件進行加載后,根據指示符是否成功作用在目標網頁中,來判定CSS文件是否加載成功。具體地,例如,作為其中一種可選的實施方式,可以通過CSS文件中的如下形式的語句對DOM節點進行設置:
[0091]object{visibility: hidden},
[0092]其中,visibility屬性可以用于規定object元素是否可見,其中,“hidden”可以用于表示該元素不可見,例如,對于object為“head”的情形,可以將標題的樣式設置為不可見,從而可以在請求對該CSS文件進行加載后的預設時間長度內,通過對該標題的樣式的檢測來判斷該CSS文件是否成功加載,其中,若該標題不可見,則可以判斷出CSS文件成功加載,若該標題可見,則可以判斷出CSS文件未成功加載。
[0093]需要說明的是,在本發明實施例中,對第一網頁資源,例如上述Javascript腳本文件或CSS文件進行的加載,應當理解為加載的請求,其中,上述Javascript腳本文件或CSS文件可以未存儲于CDN中,也可以未成功由客戶端獲取或獲取后未成功加載到目標網頁中,從而可以視為請求失敗。對于上述場景,不應理解為與本發明技術方案的描述形成了沖突。
[0094]此外,值得注意的是,在上述實施例中,對于第一網頁資源的加載的動作可以與獲取的動作同步進行,然而這并不影響根據本發明實施例的網頁資源獲取方法的實施,不應理解為與本發明技術方案形成了沖突,也不應理解為對本發明構成了限定,且仍應視為在本發明的保護范圍之內。
[0095]根據本發明實施例提供的網頁資源獲取方法,在步驟S206中,可以根據步驟S204的判斷結果,在未成功獲取第一網頁資源時,從所述CDN以外的備份網絡獲取與第一網頁資源的內容一致的第二網頁資源。
[0096]在本發明實施例中,可以在⑶N中所存儲的第一網頁資源之外,在備份網絡中存放第二網頁資源,其中,第二網頁資源的內容可以與第一網頁資源一致,例如,在本發明的另一些實施例中,第二網頁資源可以作為第一網頁資源的備份存放在備份網絡中,然而本發明對此不作限定。
[0097]對于上述客戶端無法從CDN獲取第一網頁資源的情形,可以判斷出未成功獲取第一網頁資源,從而可以在步驟S206中,從⑶N以外的備份網絡獲取第二網頁資源,其中,第二網頁資源可以作為第一網頁資源的備份預先存放在上述備份網絡中,以備目標網頁的調用,從而可以形成根據本發明實施例的網頁資源獲取方法的一種可選的實施環境,如圖6所示。
[0098]類似于第一網頁資源,第二網頁資源的文件格式、所包含的信息類型、及其具體表現形式也可以有多種選擇,一般而言,可以與第一網頁資源相同,以便目標網頁在無法從CDN獲取第一網頁資源時,可以通過近乎一致的網頁資源獲取請求及網頁資源加載方式獲取并加載第二網頁資源。然而這并不意味著本發明對此作出了限定,例如,在本發明的一些實施例中,第二網頁資源也可以表現為對第一網頁資源的進行優化處理后存放在備份網絡中的網頁資源,例如,經過壓縮處理或格式優化處理的網頁資源,從而便于備份網絡中網頁資源的存儲與管理。當然,以上只是一種示例,本發明對此不作任何限定。
[0099]在另一方面,作為第二網頁資源的存儲媒介,備份網絡也可以有多種實現方式,其可以具體表現為⑶N以外的網絡中的一臺存儲設備,也可以表現為多臺設備的組合、設備組合所形成的計算機域、或者更廣泛的一個計算機網絡,本發明對此不作任何限定。
[0100]在本發明實施例中,備份網絡的概念可以與預存于其中的第二網頁資源相對應,例如,可以將存有第二網頁資源的計算機網絡視為上述備份網絡。當然,在另一方面,備份網絡也可以預先指定,用于存放作為目標網頁所需的網頁資源的備份的多個第二網頁資源,其中,可選地,備份網絡可以指定為目標網頁所在的網絡區域,從而在可以對目標網頁進行訪問的前提下,即可以在同一網絡區域獲取相關的第二網頁資源,進而達到了提高網頁訪問的可靠性的技術效果。
[0101]特別地,在本發明的一些實施例中,備份網絡還可以指定為在上述存放第一網頁資源的⑶N之外的其他⑶N,其中,上述其他⑶N中所存放的第一網頁資源的備份即可以視為第二網頁資源,從而在第一網頁資源無法成功獲取的情形下,可以從上述其他CDN實現對第二網頁資源的獲取,其中,上述其他CDN也可以選定為與指定網絡區域的客戶端較為接近的CDN節點的組合,從而可以在提高網頁訪問的可靠性的前提下,進一步降低由于第一網頁資源未能成功獲取所導致的網頁訪問速度下降的影響。
[0102]此外,應當理解的是,本發明技術方案還可以與本領域技術人員所知的其他可行的技術手段相互結合使用,以獲取更優的技術效果,例如,對于上述其他CDN的定向,也可以通過域名系統DNS (Domain Name System)來實現。需要說明的是,類似的對本發明技術方案變形、拓展及其與其他常用技術手段的結合所形成的技術方案及實施方式均應視為在本發明保護的范圍之內。
[0103]如圖6所示,在上述場景下,當客戶端難以從⑶N獲取第一網頁資源時,可以通過從備用網絡中獲取與第一網頁資源的內容一致的第二網頁資源,解決現有技術中當客戶端難以從⑶N獲取網頁資源時造成的難以在目標網頁中加載與該網頁資源對應的網頁元素從而導致的難以對目標網頁進行正常訪問的技術問題,實現對目標網頁進行正常訪問的技術效果,并提高了網頁訪問的可靠性。
[0104]需要說明的是,在本發明實施例中,上述的第一網頁資源應當視為與向CDN發送的網頁資源獲取請求對應的概念,也即,第一網頁資源應理解為以目標網頁所需加載的網頁元素為基準的向CDN請求獲取的網頁資源,因此,在CDN中的網頁資源進行更新或其他類型的數據處理后所出現的針對第一網頁資源的變更,例如第一網頁資源被刪除的情形下,備份網絡中仍然保存的與被刪除的第一網頁資源的內容對應一致的第二網頁資源,仍應理解為符合本發明技術方案所描述的第二網頁資源,并不影響本發明的實施條件,也不應理解為對本發明構成了限定。
[0105]可選地,作為一種具體的實施方式,如圖7所示,在步驟S206中,上述從⑶N以外的備份網絡獲取與第一網頁資源的內容一致的第二網頁資源可以包括:
[0106]S702:將用于定位第一網頁資源的第一 URL更新為第二 URL,其中,第二 URL用于定位預存于備份網絡中的第二網頁資源;
[0107]S704:通過第二 URL獲取第二網頁資源。
[0108]通過以上實施例,提供了一種對第二網頁資源進行準確定位并進一步獲取的實施方式,具體地,可以通過對用于定位第一網頁資源的第一 URL進行更新,并通過更新后形成的用于定位第二網頁資源的第二 URL實現對第二網頁資源的訪問和獲取。
[0109]在本發明實施例中,第一 URL和第二 URL分別用于定位第一網頁資源和第二網頁資源,除此之外,本發明對于第一 URL與第二 URL的具體形式不作任何限定。
[0110]此外,在本發明實施例中,步驟S702中所述的更新操作也可以有多種方式,例如,作為一種可選的方式,客戶端中可以存有用于記錄第一 URL與第二 URL之間的對應關系的數據表,具體地,二者可以一一對應地存入上述數據表,并在步驟S204中判斷未成功通過第一 URL獲取第一網頁資源時,可以通過與該第一 URL對應的一個第二 URL從備份網絡中獲取第二網頁資源。
[0111]當然,上述實施例作為示例提供,并不對本發明構成限定,例如,在本發明實施例中,上述更新操作還可以通過其他方式實現,其中,可選地,如圖8所示,步驟S702可以包括:
[0112]S802:將第一 URL中的域名替換為目標網頁所在的域的主域名,以形成第二 URL,其中,第二網頁資源預存于目標網頁所在的域中與第二 URL對應的位置。
[0113]下面將通過一個具體的實施例對步驟S802進行詳細描述。
[0114]其中,目標網頁對應的網頁文檔對⑶N中的第一網頁資源進行獲取所設置的訪問路徑,也即第一 URL可以如以下所示:
[0115]http://cdn.com/myproject/js/10/abc.js,
[0116]其中,“http”可以用于表示數據傳輸協議為超文本傳送協議http (HypertextTransport Protocol) ;“cdn.com”為第一 URL中的域名部分,可以表示用于存放第一網頁資源的主機地址,“myproject/js/10/”可以用于表示第一網頁資源在上述主機中存放的位置,也即在cdn.com域中對第一網頁資源進行訪問的路徑,“abc.js”可以用于表示該第一網頁資源的文件名,其中后綴js”可以表示該文件的類型為Javascript腳本文件。
[0117]假設目標網頁所在的域的主域名為“www.qq.com”,則根據步驟S802,可以將上述第一 URL更新為如下所示的第二 URL:
[0118]http://www.qq.com/myproject/js/10/abc.js,
[0119]容易注意到,第一 URL中的域名部分“cdn.com”被替換為“www.qq.com”,若在與該第二 URL對應的位置預存有第二網頁資源,則可以在步驟S204中判斷出未成功通過第一URL從⑶N獲取第一網頁資源,也即該abc.js文件后,可以通過第二 URL從目標網頁所在的主域獲取相同的abc.js文件。
[0120]值得注意的是,在上述實施例中,第一網頁資源和第二網頁資源均可以為abc.js文件,然而這并不應視為與本發明技術方案中的第一和第二網頁資源形成了沖突,而應理解為內容相同但存放位置不同的不同網頁資源。
[0121]在上述實施例中,由于目標網頁與第二網頁資源存放在同一主域內,從而,若對目標網頁進行訪問的請求能夠得到目標網頁的響應,則通常可以視為該域對客戶端放開了訪問限制,從而通常也可以成功從同一個域內獲取第二網頁資源,以最終實現對目標網頁的正常訪問。從以上描述可以看出,根據本發明實施例提供的網頁資源獲取方法,可以達到提高網頁訪問的可靠性的技術效果。
[0122]當然,以上只是一種示例,本發明對于步驟S802的實現方式不作限定。
[0123]可選地,如圖9所示,在本發明實施例中,步驟S206可以包括:
[0124]S902:從備份網絡獲取第二網頁資源和第三網頁資源,其中,第三網頁資源用于表示在目標網頁中除第一網頁資源之外還需要加載的網頁資源。
[0125]在本發明實施例中,若在步驟S204中判斷出未成功加載第一網頁資源,則可以判定為客戶端無法從第一網頁資源所在的CDN獲取網頁資源,從而可以根據步驟S902,在上述備份網絡中獲取第二網頁資源外,還可以獲取在目標網頁中除第一網頁資源之外還需要加載的第三網頁資源,從而在提高網頁訪問的可靠性的基礎上,省略了針對目標網頁中需要加載的其他網頁資源中的每一個是否成功獲取的判斷過程,降低了處理壓力,并且縮短了處理時間,加快了對目標網頁進行正常訪問的速度。
[0126]在另一方面,如圖10所示,可選地,根據步驟S204的判斷結果,若判斷出成功獲取第一網頁資源,上述網頁資源獲取方法還可以包括:
[0127]S1002:向⑶N請求獲取所述第三網頁資源。
[0128]在本發明實施例中,若在步驟S204中判斷出成功加載第一網頁資源,則可以判定為客戶端可以從第一網頁資源所在的CDN獲取網頁資源,從而可以根據步驟S1002,向該⑶N請求獲取上述第三網頁資源。其中,作為一種可選的方式,在本發明的一些實施例中,還可以進一步地將第三網頁資源作為新的第一網頁資源重復執行根據本發明實施例提供的網頁資源獲取方法,從而可以在利用⑶N的內容分發功能的優勢下,確保目標網頁的正常訪問。
[0129]更具體地,作為一種可選的實施方式,可以在根據步驟S204的判斷結果生成用于指示成功或未成功獲取第一網頁資源的標識項,例如,該標識項可以為特定的cookie,從而在第三網頁資源的加載過程中,可以通過對該標識項的識別,選擇從⑶N還是從備份網絡請求獲取第三網頁資源。
[0130]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定是本發明所必須的。
[0131]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,月艮務器,或者網絡設備等)執行本發明各個實施例所述的方法。
[0132]以上所述僅是本發明的優選實施方式,應當指出,對于本【技術領域】的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
[0133]實施例2
[0134]根據本發明實施例,還提供了一種用于實施上述網頁資源獲取方法的網頁資源獲取裝置。如圖11所示,該裝置可以包括:
[0135]I)訪問單元1102,用于根據網頁訪問請求對目標網頁進行訪問,并向⑶N請求獲取需要加載在目標網頁中的第一網頁資源;
[0136]2)判斷單元1104,用于判斷是否成功獲取第一網頁資源;
[0137]3)第一獲取單元1106,用于在未成功獲取第一網頁資源時,從⑶N以外的備份網絡獲取與第一網頁資源的內容一致的第二網頁資源。
[0138]根據本發明實施例提供的網頁資源獲取裝置,在訪問單元1102中,可以根據網頁訪問請求對目標網頁進行訪問,并向CDN請求獲取需要加載在所述目標網頁中的第一網頁資源。
[0139]一般而言,在本發明實施例中,上述對目標網頁的網頁訪問請求通常可以來自于對瀏覽器或用戶界面中的指向目標網頁的鏈接的點選的識別,并且,作為網絡資源的一種,上述目標網頁的網頁文件通常可以通過URL進行定位,例如,在本發明的一些實施例中,對上述瀏覽器或用戶界面中存在URL超鏈接的一段文字上的鼠標點擊動作的捕捉與識別即可以形成網頁訪問請求。當然,上述指向目標網頁的鏈接也可以不出現在文字上,而是在圖標、圖片、視頻畫面等其他瀏覽器或用戶界面中的元素上,本發明對此不作限定。
[0140]值得注意的是,上述實施例中描述的只是網頁訪問請求的一種較為常見的表現形式,而非必然的實施方式,例如,在本發明的一些實施例中,網頁訪問請求的生成也可以與讀取自計算機輸入設備的輸入信號無關,例如,該網頁訪問請求可以由客戶端中正在運行的應用自動生成,以形成對瀏覽器或用戶界面上的彈出頁,如導航頁面等的訪問,本發明對此不作任何限定。
[0141]基于上述對目標網頁的訪問請求,可以實現對目標網頁的訪問,然而,由于格式限制,與目標網頁對應的網頁文檔自身通常不足以涵蓋其所需呈現的全部信息內容。
[0142]一般而言,目標網頁通常可以表現為html格式的網頁文檔,并可以通過在該網頁文檔中進行編輯的不同元素,例如文本、圖像、音頻、視頻、交互式表單等定義目標網頁的具體呈現方式,從而可以在網頁中展示不同類型的信息,以及實現與外部信息的交互。
[0143]其中,上述網頁元素中的一部分可以直接記錄在上述網頁文檔的內部,由加載器、瀏覽器或用戶界面等直接加載,而另一部分可以通過外部資源鏈接的方式,利用網頁文檔中記錄的存在于該網頁文檔的外部的網頁資源的鏈接地址,實現對這些網頁資源的調用,并進一步地通過加載器、瀏覽器或用戶界面等加載到目標網頁中,以構成上述網頁元素。其中,上述網頁資源的鏈接地址通常也可以表現為URL,然而本發明對此不作限定。
[0144]如前所述,在現有技術中,上述存在于網頁文檔的外部的網頁資源可以存放在與網頁訪問終端之間數據鏈路較短、數據傳輸速度較快的CDN的節點上,其中,該節點可以用于表示計算機網絡中的一個域,也可以表示其中的一臺計算機或服務器等具有基本的數據處理功能的存儲媒介。其中,為便于下文的描述,可以將上述存放在CDN節點上的用于向目標網頁加載的網頁資源記為第一網頁資源。
[0145]具體地,與上述網頁元素對應,第一網頁資源也可以有多種類型,例如文本、圖片、視頻文件等,而其文件格式也可以有多種,例如,較為常見的,可以包括Javascript腳本或CSS類型的文件等,本發明對此均不做任何限定,應理解為可行的任意形式的網頁資源。
[0146]值得注意的是,在本發明實施例中,目標網頁可以根據與之對應的網頁文檔中記錄的第一網頁資源的URL調用該第一網頁資源,然而與該URL對應的第一網頁資源并不一定必然存放在CDN中預定的位置,例如,通過CDN服務器的數據清除或更新操作,可以將該第一網頁資源從CDN中刪除,或更新到其他地址或路徑,也即,在本發明的一些實施例中,客戶端可以向CDN請求獲取第一網頁資源,然而該第一網頁資源也可以不存在于上述CDN中。需要說明的是,上述的場景并不影響本發明技術方案的實施,也不應理解為對本發明構成任何限定。
[0147]根據本發明實施例提供的網頁資源獲取裝置,如圖2所示,在判斷單元1104中,可以在上述向⑶N請求獲取第一網頁資源后,判斷是否成功獲取所述第一網頁資源。
[0148]一般而言,上述第一網頁資源的獲取請求可以表現為通過與之對應的URL對第一網頁資源的訪問或者說調用,其中,為便于描述,將上述用于定位第一網頁資源的鏈接地址定義為第一 URL。
[0149]具體地,在上述場景下,⑶N對于上述的網頁資源獲取請求的響應一般可以包括以下四種情形:
[0150]I)⑶N對網頁資源獲取請求做出響應,并將第一網頁資源發送到客戶端;
[0151]2)⑶N對網頁資源獲取請求做出響應,且存在與第一 URL對應的第一網頁資源,但未成功將第一網頁資源發送到客戶端;
[0152]3)⑶N對網頁資源獲取請求做出響應,但不存在與第一 URL對應的第一網頁資源;
[0153]4)⑶N未對網頁資源獲取請求做出響應。
[0154]其中,對于第一種情形,可以判斷出成功獲取所述第一網頁資源,也即客戶端可以正常地從CDN獲取網頁資源并實現對完整的目標網頁的訪問,鑒于客戶端從CDN獲取網頁資源的方案屬于現有技術中成熟的技術方案,本發明在此不作累述。
[0155]對于第二種情形,具體地,在本發明的一些實施例中,可以來源于客戶端的網絡安全設置,例如防火墻、下載屏蔽、在客戶端或其所處的域設置的資源訪問的限制等,從而導致⑶N在接收到第一網頁資源的獲取請求后,無法將第一網頁資源發送至客戶端中的瀏覽器或用戶界面等,從而可以判斷出未成功獲取所述第一網頁資源。
[0156]對于第三種情形,如前所述,在本發明的一些實施例中,第一網頁資源可以存放在第一 URL以外的位置,例如,在CDN服務器的更新操作中,對第一 URL的訪問路徑進行了更改,等,從而導致⑶N無法將第一網頁資源發送至客戶端,也可以判斷為未成功獲取所述第一網頁資源。
[0157]對于第四種情形,具體地,在本發明的一些實施例中,可以來源于存放第一網頁資源的CDN中的節點的訪問設置,例如,禁止該節點設置的白名單以外的用戶對該節點的訪問,從而導致CDN未能對第一網頁資源的獲取請求作出響應,也應判斷為未成功獲取所述第一網頁資源。
[0158]對于以上情形,可以分別對其進行判斷以得出是否成功獲取所述第一網頁資源的判斷結果,然而,在另一方面,上述是否成功獲取所述第一網頁資源的判斷操作也可以與用戶設置和網絡環境無關,比如可以在客戶端指定的端口進行監控,以檢測在發送網頁資源獲取請求后,是否成功從CDN接收到第一網頁資源。
[0159]當然,以上實施例只是一種示例,在本發明實施例中,還可以通過其他方式對是否成功獲取第一網頁資源進行判斷,可選地,如圖12所示,判斷單元1104可以包括:
[0160]I)判斷模塊1202,用于判斷是否成功將第一網頁資源加載到目標網頁中;其中,若成功將第一網頁資源加載到目標網頁中,則判斷出成功獲取第一網頁資源;若未成功將第一網頁資源加載到目標網頁中,則判斷出未成功獲取第一網頁資源。
[0161]一般而言,在對目標網頁進行訪問的過程中,瀏覽器或加載器將根據目標網頁所對應的網頁文檔對第一網頁資源進行拉取,并在成功獲取第一網頁資源后,將其加載到呈現在瀏覽器或用戶界面中的目標網頁中,從而,在本發明實施例中,可以通過第一網頁資源加載成功與否的判斷的結果,來判斷是否成功從CDN獲取第一網頁資源,其中,若目標網頁所需的第一網頁資源成功加載到目標網頁中,則可以判斷出在加載操作之前客戶端已經成功從⑶N獲取了第一網頁資源,若目標網頁所需的第一網頁資源未成功加載到目標網頁中,則無論加載失敗的原因出自對CDN中的第一網頁資源的獲取失敗,還是瀏覽器或加載器的加載失敗,均可以視為未能成功獲取第一網頁資源,從而可以在第一獲取單元1106中轉向備份網絡請求獲取第二網頁資源。
[0162]值得注意的是,在本發明的一些實施例中,對于基于html標簽的網頁資源的加載方式,其加載動作可以與網頁資源的獲取請求同步進行,具體地,例如,對于第一網頁資源為Javascript腳本文件的情形,可以通過如下所示的html標簽對該Javascript腳本文件進行加載:
[0163]〈script src= " script, js " type= " text/javascript" charset=;/ utf-8" ></script),
[0164]其中,“〈script>〈/script>”可以用于表示html標簽中的〈script〉標簽,該標簽可以用于定義腳本類型的文件,其中,
[0165]Type屬性可以用于規定該腳本文件的MIME類型,其中,“javascript”可以用于表示該腳本文件的類型為Javascript腳本文件;
[0166]Charset屬性可以用于規定該Javascript腳本文件的字符編碼方式,例如,上述的“utf-8”可以用于表示Unicode編碼方式;
[0167]Src屬性可以用于指向外部腳本文件,也即該Javascript腳本文件,且可以通過Src屬性的賦值來規定該Javascript腳本文件的訪問路徑,其中,該訪問路徑通常表現為該Javascript腳本文件的URL,例如上述的“script, js”。
[0168]從以上描述可以看出,在通過上述html〈script〉標簽對作為第一網頁資源的Javascript腳本文件進行加載的過程中,由于通過Src屬性規定了該Javascript腳本文件的訪問路徑,并可以根據該路徑對其進行訪問和調用,從而可以視為在加載的同時對第一網頁資源提出了獲取的請求。
[0169]值得注意的是,對于基于靜態html標簽的網頁資源的加載方式而言,由于其難以準確判斷腳本的加載狀態,從而在本發明的一些實施例中,可以使用JS加載器對Javascript腳本文件進行加載,在上述場景下,如圖13所示,判斷模塊1202可以包括:
[0170]I)判斷子模塊1302,用于通過加載器判斷是否成功將Javascript腳本文件加載到目標網頁中。
[0171]其中,常見的JS加載器有很多,例如,可以為基于script DOM方式的加載器,也可以為基于ajax eval方式的加載器,以及其他可行的可以用于判斷Javascript腳本文件是否成功加載的加載器,本發明對此不作限定。
[0172]類似地,對于第一網頁資源為CSS文件的情形,同樣可以通過html標簽對其進行加載,例如,該html標簽可以為:
[0173]〈link rel=" stylesheet" href=" /css/master, css" type=" text/css" media=" screen;/ charset= 〃 utf-8" >,
[0174]其中,“〈I ink〉”可以用于表示html標簽中的〈I ink〉標簽,該標簽可以用于定義網頁文檔與外部的網頁資源之間的關系,且通常可以用于鏈接樣式表,例如CSS文件,其中,
[0175]Type屬性可以用于規定該外部網頁資源的MME類型,其中,“text/css”可以用于表示該被鏈接的網頁資源為CSS文件;
[0176]Rel屬性可以用于規定上述網頁文檔與該CSS文件之間的鏈接關系,其中,“stylesheet”可以用于表示鏈接樣式表;
[0177]Media屬性可以用于規定被鏈接的該CSS文件將在什么類型的設備上顯示,例如,上述“screen”可以用于表示在PC設備上顯示;
[0178]Charset屬性可以用于規定該CSS文件的字符編碼方式,例如,上述的“utf_8”可以用于表不Unicode編碼方式;
[0179]Href屬性可以用于定義該CSS腳本文件的訪問路徑,其中,該訪問路徑通常表現為該CSS文件的URL,例如上述的“/css/master, css”。
[0180]類似地,在通過上述html〈link>標簽對作為第一網頁資源的CSS文件進行加載的過程中,由于通過Href屬性規定了該CSS文件的訪問路徑,并可以根據該路徑對其進行訪問和調用,從而可以視為在加載的同時對第一網頁資源提出了獲取的請求。
[0181]如圖14所示,在本發明實施例中,對于第一網頁資源為CSS文件的情形,判斷模塊1202可以包括:
[0182]I)判斷子模塊1402,用于在⑶N請求獲取目標網頁中需要加載的第一網頁資源后的預設時間長度內,判斷目標網頁中指定的文件對象模型DOM節點是否已成功加載在CSS文件中記錄的與DOM節點對應的預設樣式;其中,
[0183]若在預設時間長度內DOM節點已成功加載預設樣式,則判斷出在目標網頁中成功加載CSS文件;
[0184]若在預設時間長度內DOM節點未成功加載預設樣式,則判斷出在目標網頁中未成功加載CSS文件。
[0185]其中,DOM作為一種標準編程接口,參照其規定,在本發明實施例中,網頁文檔中的每一個成分均可以視為一個DOM節點,例如,該DOM節點可以為網頁文檔的整體,也可以為上述的用于鏈接外部網頁資源的html標簽,還可以為網頁文檔中記錄的網頁元素,例如其中的文本或html屬性,等。
[0186]在本發明實施例中,可以在CSS文件中為一個或多個DOM節點設置指定的樣式,作為上述的預設樣式,并以該預設樣式作判斷是否成功加載該CSS文件的指示符,在嘗試對該CSS文件進行加載后,根據指示符是否成功作用在目標網頁中,來判定CSS文件是否加載成功。具體地,例如,作為其中一種可選的實施方式,可以通過CSS文件中的如下形式的語句對DOM節點進行設置:
[0187]object{visibility: hidden},
[0188]其中,visibility屬性可以用于規定object元素是否可見,其中,“hidden”可以用于表示該元素不可見,例如,對于object為“head”的情形,可以將標題的樣式設置為不可見,從而可以在請求對該CSS文件進行加載后的預設時間長度內,通過對該標題的樣式的檢測來判斷該CSS文件是否成功加載,其中,若該標題不可見,則可以判斷出CSS文件成功加載,若該標題可見,則可以判斷出CSS文件未成功加載。
[0189]需要說明的是,在本發明實施例中,對第一網頁資源,例如上述Javascript腳本文件或CSS文件進行的加載,應當理解為加載的請求,其中,上述Javascript腳本文件或CSS文件可以未存儲于CDN中,也可以未成功由客戶端獲取或獲取后未成功加載到目標網頁中,從而可以視為請求失敗。對于上述場景,不應理解為與本發明技術方案的描述形成了沖突。
[0190]此外,值得注意的是,在上述實施例中,對于第一網頁資源的加載的動作可以與獲取的動作同步進行,然而這并不影響根據本發明實施例的網頁資源獲取裝置的實施,不應理解為與本發明技術方案形成了沖突,也不應理解為對本發明構成了限定,且仍應視為在本發明的保護范圍之內。
[0191]根據本發明實施例提供的網頁資源獲取裝置,在第一獲取單元1106中,可以根據判斷單元1104的判斷結果,在未成功獲取第一網頁資源時,從所述CDN以外的備份網絡獲取與第一網頁資源的內容一致的第二網頁資源。
[0192]在本發明實施例中,可以在⑶N中所存儲的第一網頁資源之外,在備份網絡中存放第二網頁資源,其中,第二網頁資源的內容可以與第一網頁資源一致,例如,在本發明的另一些實施例中,第二網頁資源可以作為第一網頁資源的備份存放在備份網絡中,然而本發明對此不作限定。
[0193]對于上述客戶端無法從CDN獲取第一網頁資源的情形,可以判斷出未成功獲取第一網頁資源,從而可以在第一獲取單元1106中,從⑶N以外的備份網絡獲取第二網頁資源,其中,第二網頁資源可以作為第一網頁資源的備份預先存放在上述備份網絡中,以備目標網頁的調用,從而可以形成根據本發明實施例的網頁資源獲取裝置的一種可選的實施環境,如圖6所示。
[0194]類似于第一網頁資源,第二網頁資源的文件格式、所包含的信息類型、及其具體表現形式也可以有多種選擇,一般而言,可以與第一網頁資源相同,以便目標網頁在無法從CDN獲取第一網頁資源時,可以通過近乎一致的網頁資源獲取請求及網頁資源加載方式獲取并加載第二網頁資源。然而這并不意味著本發明對此作出了限定,例如,在本發明的一些實施例中,第二網頁資源也可以表現為對第一網頁資源的進行優化處理后存放在備份網絡中的網頁資源,例如,經過壓縮處理或格式優化處理的網頁資源,從而便于備份網絡中網頁資源的存儲與管理。當然,以上只是一種示例,本發明對此不作任何限定。
[0195]在另一方面,作為第二網頁資源的存儲媒介,備份網絡也可以有多種實現方式,其可以具體表現為⑶N以外的網絡中的一臺存儲設備,也可以表現為多臺設備的組合、設備組合所形成的計算機域、或者更廣泛的一個計算機網絡,本發明對此不作任何限定。
[0196]在本發明實施例中,備份網絡的概念可以與預存于其中的第二網頁資源相對應,例如,可以將存有第二網頁資源的計算機網絡視為上述備份網絡。當然,在另一方面,備份網絡也可以預先指定,用于存放作為目標網頁所需的網頁資源的備份的多個第二網頁資源,其中,可選地,備份網絡可以指定為目標網頁所在的網絡區域,從而在可以對目標網頁進行訪問的前提下,即可以在同一網絡區域獲取相關的第二網頁資源,進而達到了提高網頁訪問的可靠性的技術效果。
[0197]特別地,在本發明的一些實施例中,備份網絡還可以指定為在上述存放第一網頁資源的⑶N之外的其他⑶N,其中,上述其他⑶N中所存放的第一網頁資源的備份即可以視為第二網頁資源,從而在第一網頁資源無法成功獲取的情形下,可以從上述其他CDN實現對第二網頁資源的獲取,其中,上述其他CDN也可以選定為與指定網絡區域的客戶端較為接近的CDN節點的組合,從而可以在提高網頁訪問的可靠性的前提下,進一步降低由于第一網頁資源未能成功獲取所導致的網頁訪問速度下降的影響。
[0198]此外,應當理解的是,本發明技術方案還可以與本領域技術人員所知的其他可行的技術手段相互結合使用,以獲取更優的技術效果,例如,對于上述其他CDN的定向,也可以通過域名解析系統DNS (Domain Name System)來實現。需要說明的是,類似的對本發明技術方案變形、拓展及其與其他常用技術手段的結合所形成的技術方案及實施方式均應視為在本發明保護的范圍之內。
[0199]如圖6所示,在上述場景下,當客戶端難以從⑶N獲取第一網頁資源時,可以通過從備用網絡中獲取與第一網頁資源的內容一致的第二網頁資源,解決現有技術中當客戶端難以從⑶N獲取網頁資源時造成的難以在目標網頁中加載與該網頁資源對應的網頁元素從而導致的難以對目標網頁進行正常訪問的技術問題,實現對目標網頁進行正常訪問的技術效果,并提高了網頁訪問的可靠性。
[0200]需要說明的是,在本發明實施例中,上述的第一網頁資源應當視為與向CDN發送的網頁資源獲取請求對應的概念,也即,第一網頁資源應理解為以目標網頁所需加載的網頁元素為基準的向CDN請求獲取的網頁資源,因此,在CDN中的網頁資源進行更新或其他類型的數據處理后所出現的針對第一網頁資源的變更,例如第一網頁資源被刪除的情形下,備份網絡中仍然保存的與被刪除的第一網頁資源的內容對應一致的第二網頁資源,仍應理解為符合本發明技術方案所描述的第二網頁資源,并不影響本發明的實施條件,也不應理解為對本發明構成了限定。
[0201]可選地,作為一種具體的實施方式,如圖15所示,第一獲取單元1106可以包括:
[0202]I)更新模塊1502,用于將用于定位第一網頁資源的第一統一資源定位符URL更新為第二 URL,其中,第二 URL用于定位預存于備份網絡中的第二網頁資源;
[0203]2)第一獲取模塊1504,用于通過第二 URL獲取第二網頁資源。
[0204]通過以上實施例,提供了一種對第二網頁資源進行準確定位并進一步獲取的實施方式,具體地,可以通過對用于定位第一網頁資源的第一 URL進行更新,并通過更新后形成的用于定位第二網頁資源的第二 URL實現對第二網頁資源的訪問和獲取。
[0205]在本發明實施例中,第一 URL和第二 URL分別用于定位第一網頁資源和第二網頁資源,除此之外,本發明對于第一 URL與第二 URL的具體形式不作任何限定。
[0206]此外,在本發明實施例中,更新模塊1502所執行的更新操作也可以有多種方式,例如,作為一種可選的方式,客戶端中可以存有用于記錄第一 URL與第二 URL之間的對應關系的數據表,具體地,二者可以一一對應地存入上述數據表,并在判斷單元1104中判斷未成功通過第一 URL獲取第一網頁資源時,可以通過與該第一 URL對應的一個第二 URL從備份網絡中獲取第二網頁資源。
[0207]當然,上述實施例作為示例提供,并不對本發明構成限定,例如,在本發明實施例中,上述更新操作還可以通過其他方式實現,其中,可選地,如圖16所示,更新模塊1502可以包括:
[0208]I)更新子模塊1602,用于將第一 URL中的域名替換為目標網頁所在的域的主域名,以形成第二 URL,其中,第二網頁資源預存于目標網頁所在的域中與第二 URL對應的位置。
[0209]下面將通過一個具體的實施例對更新子模塊1602進行詳細描述。
[0210]其中,目標網頁對應的網頁文檔對⑶N中的第一網頁資源進行獲取所設置的訪問路徑,也即第一 URL可以如以下所示:
[0211]http://cdn.com/myproject/js/10/abc.js,
[0212]其中,“http”可以用于表示數據傳輸協議為超文本傳送協議http (HypertextTransport Protocol) ;“cdn.com”為第一 URL中的域名部分,可以表示用于存放第一網頁資源的主機地址,“myproject/js/10/”可以用于表示第一網頁資源在上述主機中存放的位置,也即在cdn.com域中對第一網頁資源進行訪問的路徑,“abc.js”可以用于表示該第一網頁資源的文件名,其中后綴“.js”可以表示該文件的類型為Javascript腳本文件。
[0213]假設目標網頁所在的域的主域名為“www.qq.com”,則在更新子模塊1602中,可以將上述第一 URL更新為如下所示的第二 URL:
[0214]http://www.qq.com/myproject/js/10/abc.js,
[0215]容易注意到,第一 URL中的域名部分“cdn.com”被替換為“www.qq.com”,若在與該第二URL對應的位置預存有第二網頁資源,則可以在判斷單元1104中判斷出未成功通過第一 URL從⑶N獲取第一網頁資源,也即該abc.js文件后,可以通過第二 URL從目標網頁所在的主域獲取相同的abc.js文件。
[0216]值得注意的是,在上述實施例中,第一網頁資源和第二網頁資源均可以為abc.js文件,然而這并不應視為與本發明技術方案中的第一和第二網頁資源形成了沖突,而應理解為內容相同但存放位置不同的不同網頁資源。
[0217]在上述實施例中,由于目標網頁與第二網頁資源存放在同一主域內,從而,若對目標網頁進行訪問的請求能夠得到目標網頁的響應,則通常可以視為該域對客戶端放開了訪問限制,從而通常也可以成功從同一個域內獲取第二網頁資源,以最終實現對目標網頁的正常訪問。從以上描述可以看出,根據本發明實施例提供的網頁資源獲取裝置,可以達到提高網頁訪問的可靠性的技術效果。
[0218]當然,以上只是一種示例,本發明對于更新模塊1502的實現方式不作限定。
[0219]可選地,如圖17所示,在本發明實施例中,第一獲取單元1106可以包括:
[0220]I)第二獲取模塊1702,用于從備份網絡獲取第二網頁資源和第三網頁資源,其中,第三網頁資源用于表示在目標網頁中除第一網頁資源之外還需要加載的網頁資源。
[0221]在本發明實施例中,若在判斷單元1104中判斷出未成功加載第一網頁資源,則可以判定為客戶端無法從第一網頁資源所在的CDN獲取網頁資源,從而可以根據第二獲取模塊1702,在上述備份網絡中獲取第二網頁資源外,還可以獲取在目標網頁中除第一網頁資源之外還需要加載的第三網頁資源,從而在提高網頁訪問的可靠性的基礎上,省略了針對目標網頁中需要加載的其他網頁資源中的每一個是否成功獲取的判斷過程,降低了處理壓力,并且縮短了處理時間,加快了對目標網頁進行正常訪問的速度。
[0222]在另一方面,如圖18所示,可選地,根據判斷單元1104的判斷結果,若判斷出成功獲取第一網頁資源,上述網頁資源獲取裝置還可以包括:
[0223]I)第二獲取單元1802,用于在目標網頁成功獲取第一網頁資源時,向⑶N請求獲取第三網頁資源。
[0224]在本發明實施例中,若在判斷單元1104中判斷出成功加載第一網頁資源,則可以判定為客戶端可以從第一網頁資源所在的CDN獲取網頁資源,從而可以根據第二獲取單元1802,向該⑶N請求獲取上述第三網頁資源。其中,作為一種可選的方式,在本發明的一些實施例中,還可以進一步地將第三網頁資源作為新的第一網頁資源重復執行根據本發明實施例提供的網頁資源獲取裝置,從而可以在利用CDN的內容分發功能的優勢下,確保目標網頁的正常訪問。
[0225]更具體地,作為一種可選的實施方式,可以在根據判斷單元1104的判斷結果生成用于指示成功或未成功獲取第一網頁資源的標識項,例如,該標識項可以為特定的cookie,從而在第三網頁資源的加載過程中,可以通過對該標識項的識別,選擇從⑶N還是從備份網絡請求獲取第三網頁資源。
[0226]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定是本發明所必須的。
[0227]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
[0228]在本發明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
[0229]在本申請所提供的幾個實施例中,應該理解到,所揭露的客戶端,可通過其它的方式實現。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
[0230]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
[0231]另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
[0232]所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0233]以上所述僅是本發明的優選實施方式,應當指出,對于本【技術領域】的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
【權利要求】
1.一種網頁資源獲取方法,其特征在于,包括: 根據網頁訪問請求對目標網頁進行訪問,并向內容分發網絡CDN請求獲取需要加載在所述目標網頁中的第一網頁資源; 判斷是否成功獲取所述第一網頁資源; 若未成功獲取所述第一網頁資源,則從所述⑶N以外的備份網絡獲取與所述第一網頁資源的內容一致的第二網頁資源。
2.根據權利要求1所述的方法,其特征在于,所述判斷是否成功獲取所述第一網頁資源包括: 判斷是否成功將所述第一網頁資源加載到所述目標網頁中; 若成功將所述第一網頁資源加載到所述目標網頁中,則判斷出成功獲取所述第一網頁資源; 若未成功將所述第一網頁資源加載到所述目標網頁中,則判斷出未成功獲取所述第一網頁資源。
3.根據權利要求2所述的方法,其特征在于,所述第一網頁資源為Javascript腳本文件,其中,所述判斷是否成功將所述第一網頁資源加載到所述目標網頁中包括: 通過加載器判斷是否成功將所述Javascript腳本文件加載到所述目標網頁中。
4.根據權利要求2所述的方法,其特征在于,所述第一網頁資源為層疊樣式表CSS文件,其中,所述判斷是否成功將所述第一網頁資源加載到所述目標網頁中包括: 在向所述CDN請求獲取所述目標網頁中需要加載的第一網頁資源后的預設時間長度內,判斷所述目標網頁中指定的文件對象模型DOM節點是否已成功加載在所述CSS文件中記錄的與所述DOM節點對應的預設樣式; 若在所述預設時間長度內所述DOM節點已成功加載所述預設樣式,則判斷出在所述目標網頁中成功加載所述CSS文件; 若在所述預設時間長度內所述DOM節點未成功加載所述預設樣式,則判斷出在所述目標網頁中未成功加載所述CSS文件。
5.根據權利要求1至4中任一項所述的方法,其特征在于,所述從所述CDN以外的備份網絡獲取與所述第一網頁資源的內容一致的第二網頁資源包括: 將用于定位所述第一網頁資源的第一統一資源定位符URL更新為第二 URL,其中,所述第二 URL用于定位預存于所述備份網絡中的所述第二網頁資源; 通過所述第二 URL獲取所述第二網頁資源。
6.根據權利要求5所述的方法,其特征在于,所述將用于定位所述第一網頁資源的第一 URL更新為第二 URL包括: 將所述第一 URL中的域名替換為所述目標網頁所在的域的主域名,以形成所述第二URL,其中,所述第二網頁資源預存于所述目標網頁所在的域中與所述第二 URL對應的位置。
7.根據權利要求1至4中任一項所述的方法,其特征在于,所述從所述CDN以外的備份網絡獲取與所述第一網頁資源的內容一致的第二網頁資源包括: 從所述備份網絡獲取所述第二網頁資源和第三網頁資源,其中,所述第三網頁資源用于表示在所述目標網頁中除所述第一網頁資源之外還需要加載的網頁資源。
8.根據權利要求7所述的方法,其特征在于,在所述判斷是否成功獲取所述第一網頁資源之后,還包括: 若所述目標網頁成功獲取所述第一網頁資源,則向所述CDN請求獲取所述第三網頁資源。
9.一種網頁資源獲取裝置,其特征在于,包括: 訪問單元,用于根據網頁訪問請求對目標網頁進行訪問,并向CDN請求獲取需要加載在所述目標網頁中的第一網頁資源; 判斷單元,用于判斷是否成功獲取所述第一網頁資源; 第一獲取單元,用于在未成功獲取所述第一網頁資源時,從所述CDN以外的備份網絡獲取與所述第一網頁資源的內容一致的第二網頁資源。
10.根據權利要求9所述的裝置,其特征在于,所述判斷單元包括: 判斷模塊,用于判斷是否成功將所述第一網頁資源加載到所述目標網頁中;其中,若成功將所述第一網頁資源加載到所述目標網頁中,則判斷出成功獲取所述第一網頁資源;若未成功將所述第一網頁資源加載到所述目標網頁中,則判斷出未成功獲取所述第一網頁資源。
11.根據權利要求10所述的裝置,其特征在于,所述第一網頁資源為Javascript腳本文件,其中,所述判斷模塊包括: 判斷子模塊,用于通過加載器判斷是否成功將所述Javascript腳本文件加載到所述目標網頁中。
12.根據權利要求10所述的裝置,其特征在于,所述第一網頁資源為層疊樣式表CSS文件,其中,所述判斷模塊包括: 判斷子模塊,用于在向所述CDN請求獲取所述目標網頁中需要加載的第一網頁資源后的預設時間長度內,判斷所述目標網頁中指定的文件對象模型DOM節點是否已成功加載在所述CSS文件中記錄的與所述DOM節點對應的預設樣式;其中, 若在所述預設時間長度內所述DOM節點已成功加載所述預設樣式,則判斷出在所述目標網頁中成功加載所述CSS文件; 若在所述預設時間長度內所述DOM節點未成功加載所述預設樣式,則判斷出在所述目標網頁中未成功加載所述CSS文件。
13.根據權利要求9至12中任一項所述的裝置,其特征在于,所述第一獲取單元包括: 更新模塊,用于將用于定位所述第一網頁資源的第一統一資源定位符URL更新為第二URL,其中,所述第二 URL用于定位預存于所述備份網絡中的所述第二網頁資源; 第一獲取模塊,用于通過所述第二 URL獲取所述第二網頁資源。
14.根據權利要求13所述的裝置,其特征在于,所述更新模塊包括: 更新子模塊,用于將所述第一 URL中的域名替換為所述目標網頁所在的域的主域名,以形成所述第二 URL,其中,所述第二網頁資源預存于所述目標網頁所在的域中與所述第二URL對應的位置。
15.根據權利要求9至12中任一項所述的裝置,其特征在于,所述第一獲取單元包括: 第二獲取模塊,用于從所述備份網絡獲取所述第二網頁資源和第三網頁資源,其中,所述第三網頁資源用于表示在所述目標網頁中除所述第一網頁資源之外還需要加載的網頁資源。
16.根據權利要求15所述的裝置,其特征在于,還包括: 第二獲取單元,用于在所述目標網頁成功獲取所述第一網頁資源時,向所述CDN請求獲取所述第三網頁資源。
【文檔編號】H04L29/06GK104426925SQ201310367699
【公開日】2015年3月18日 申請日期:2013年8月21日 優先權日:2013年8月21日
【發明者】郭力恒 申請人:騰訊科技(深圳)有限公司