网页资源获取方法及装置制造方法

文档序号:8004921阅读:295来源:国知局
网页资源获取方法及装置制造方法
【专利摘要】本发明提供了一种网页资源获取方法及装置。其中,该网页资源获取方法包括:根据网页访问请求对目标网页进行访问,并向内容分发网络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日
【发明者】郭力恒 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1