通过cdn下载资源的实现方法和装置、服务器、客户端的制作方法

文档序号:7823661阅读:269来源:国知局
通过cdn下载资源的实现方法和装置、服务器、客户端的制作方法
【专利摘要】本发明提供了一种通过CDN下载资源的实现方法和装置、服务器、客户端,该方法包括:拦截源服务器向客户端发送的原始网页数据;原始网页数据包括有源服务器的地址信息和静态资源在源服务器的地址信息;将拦截的原始网页数据中静态资源在源服务器的地址信息调整为指向对应的CDN服务器的链接地址,之后发送到客户端,以使客户端从对应的CDN服务器中下载相应的静态资源。这样客户端会跳转到相应的CDN服务器请求静态资源,如果相应的静态资源没有缓存到CDN服务器,能够触发CDN服务器根据链接地址所指示的源服务器的地址以及静态资源的在源服务器中的地址主动向源服务器请求相应的静态资源。这样就实现了CDN服务器向源服务器的主动同步。
【专利说明】通过CDN下载资源的实现方法和装置、服务器、客户端

【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种通过⑶N下载资源的实现方法和装置、服务器、客户端。

【背景技术】
[0002]Q)N(Content Distribut1n Network,内容分发网络)是一种新型网络内容服务体系,其基于互联网络而构建,基于内容访问与应用的效率要求、质量要求和内容秩序而提供内容的分发和服务。CDN可以尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。具体而言,CDN能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息,将用户导向至最近的节点服务器上,使用户可就近取得所需数据(主要是静态资源),解决网络拥挤的状况,提高用户下载数据的速度。
[0003]为了使用户能够正确接收到源服务器的数据内容,需要将源服务器中的数据及时同步到CDN服务器。现有技术中,在每次在源服务器进行更新时,通过人工的方式将更新的数据内容同步到CDN服务器,工作量大,且容易出错。


【发明内容】

[0004]本发明的目的在于提供一种能够实现数据自动同步的通过CDN下载资源的实现方法和装置、服务器、客户端。
[0005]第一方面,本发明提供了一种通过⑶N下载资源的实现装置,包括:
[0006]拦截模块,用于拦截源服务器向客户端发送的原始网页数据;所述原始网页数据包括有所述源服务器的地址信息和静态资源在所述源服务器的地址信息;
[0007]修改模块,用于将拦截的原始网页数据中静态资源在所述源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息;
[0008]发送模块,用于将修改后的网页数据发送到客户端,以使所述客户端从对应的CDN服务器中下载相应的静态资源。
[0009]可选的,所述修改模块用于将拦截的原始网页数据中静态资源在所述源服务器的地址信息修改为指向对应的CDN服务器的链接地址以及调整网页数据中的内容长度,得到修改后的网页数据。
[0010]可选的,所述链接地址还携带有静态资源的引用地址信息,所述静态资源的引用地址信息是从所述网页数据中获取的。
[0011]第二方面,本发明提供了一种客户端,包括:
[0012]第一接收模块,用于接收网页数据;所述网页数据中静态资源的地址为指向⑶N服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0013]下载请求模块,用于根据静态资源的地址向对应CDN请求下载相应的静态资源;
[0014]第二接收模块,用于接收⑶N服务器返回的静态资源。
[0015]可选的,⑶N服务器返回的静态资源为所述⑶N服务器根据所述链接地址中携带的静态资源所在的源服务器的地址信息,以及静态资源在源服务器中的地址信息向源服务器下载的。
[0016]可选的,所述链接地址还携带有静态资源的引用地址信息。
[0017]第三方面,本发明提供了一种服务器,所述服务器包括:
[0018]接收模块,用于接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0019]判断模块,用于判断所述第一接收模块接收到的静态资源下载请求所请求下载的静态资源是否已缓存;
[0020]发送模块,用于在所述判断模块判断相应的静态资源已缓存时,将缓存的相应的静态资源发送至所述客户端;在所述判断模块判断相应的静态资源未缓存时,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源,在接收到相应的静态资源后缓存并发送到所述客户端。
[0021]可选的,所述链接地址还携带有静态资源的引用地址信息;
[0022]所述服务器还包括:
[0023]寻址模块,用于在所述判断模块判断相应的静态资源未缓存后,所述发送模块根据相应的静态资源的原始地址向相应的源服务器地址请求相应的静态资源之前,从对应的链接地址中提取相应的源服务器的地址,在提取相应的源服务器的地址失败时,根据对应的链接地址中的引用地址Referer确定相应的源服务器的地址。
[0024]第五方面,本发明提供了一种通过⑶N下载资源的实现方法,其中,包括:
[0025]拦截源服务器向客户端发送的原始网页数据;所述原始网页数据包括有所述源服务器的地址信息和静态资源在所述源服务器的地址信息;
[0026]将拦截的原始网页数据中静态资源在所述源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息;
[0027]将修改后的网页数据发送到客户端,以使所述客户端从对应的CDN服务器中下载相应的静态资源。
[0028]优选的,所述将拦截的原始网页数据中静态资源在所述源服务器的地址信息修改为指向对应的CDN服务器的链接地址,得到修改后的网页数据包括:
[0029]将拦截的原始网页数据中静态资源在所述源服务器的地址信息修改为指向对应的CDN服务器的链接地址以及调整网页数据中的内容长度,得到修改后的网页数据。
[0030]优选的,所述链接地址还携带有静态资源的引用地址信息,所述静态资源的引用地址信息是从所述网页数据中获取的。
[0031]第五方面,本发明提供了一种通过⑶N下载资源的实现方法,包括:
[0032]接收网页数据;所述网页数据中静态资源的地址为指向⑶N服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0033]根据静态资源的地址向对应CDN服务器请求下载相应的静态资源;
[0034]接收⑶N服务器返回的静态资源。
[0035]可选的,⑶N服务器返回的静态资源为所述⑶N服务器根据所述链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向源服务器下载的。
[0036]可选的,所述链接地址还携带有静态资源的引用地址信息。
[0037]第六方面,本发明提供了一种通过⑶N下载资源的实现方法,包括:
[0038]接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0039]判断所请求下载的静态资源是否已缓存;
[0040]如果已缓存,将缓存的相应的静态资源发送至所述客户端;
[0041]如果未缓存,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源,在接收到相应的源服务器返回的相应的静态资源后缓存并发送到所述客户端。
[0042]可选的,所述链接地址还携带有静态资源的引用地址信息;
[0043]在所请求下载的静态资源未缓存,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源之前,所述方法还包括:从对应的链接地址中提取相应的源服务器的地址信息,在提取相应的源服务器的地址信息失败时,根据对应的链接地址中的引用地址信息确定相应的源服务器的地址。
[0044]本发明中,拦截源服务器向客户端发送的原始网页数据;所述原始网页数据包括有所述源服务器的地址信息和静态资源在所述源服务器的地址信息;将拦截的原始网页数据中静态资源在所述源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息;将修改后的网页数据发送到客户端,以使所述客户端从对应的CDN服务器中下载相应的静态资源。这样客户端会跳转到相应的CDN服务器请求静态资源,如果相应的静态资源没有缓存到CDN服务器,能够触发CDN服务器根据链接地址所指示的源服务器的地址以及静态资源的在源服务器中的地址主动向源服务器请求相应的静态资源。这样就实现了⑶N服务器向源服务器的主动同步。

【专利附图】

【附图说明】
[0045]图1为本发明一实施例提供的一种通过CDN下载资源的实现方法的流程示意图;
[0046]图2为本发明一实施例提供的一种通过CDN下载资源的实现方法的流程示意图;
[0047]图3为本发明一实施例提供的一种通过CDN下载资源的实现方法的流程示意图;
[0048]图4为本发明提供的一种通过CDN下载资源的实现方法的应用场景的示意图;
[0049]图5为本发明一实施例提供的一种通过CDN下载资源的实现方法的流程示意图;
[0050]图6为一次可能的响应过程中源服务器发送至客户端的部分网页数据;
[0051]图7为对图6中所示的部分网页数据修改后得到的网页数据;
[0052]图8为本发明一实施例提供的一种通过CDN下载资源的实现装置的结构示意图;
[0053]图9为本发明一实施例提供的一种客户端的结构流程示意图;
[0054]图10为本发明一实施例提供的一种服务器的结构示意图。

【具体实施方式】
[0055]下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0056]如图1所示,为本发明一个实施例提供的一种通过CDN下载资源的实现方法的流程示意图,该方法可以由位于源服务器侧的功能模块或者包含该功能模块的装置执行,该方法可以包括:
[0057]步骤101,拦截源服务器向客户端发送的原始网页数据;该原始网页数据包括有该源服务器的地址信息和静态资源在该源服务器的地址信息。
[0058]步骤102,将拦截的原始网页数据中静态资源在该源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息;
[0059]步骤103,将修改后的网页数据发送到客户端,以使客户端从对应的⑶N服务器中下载相应的静态资源。
[0060]本发明实施例中,客户端在接收到相应的网页数据后会跳转到相应的CDN服务器请求静态资源,如果相应的静态资源没有缓存到⑶N服务器,能够触发⑶N服务器根据链接地址所指示的源服务器的地址以及静态资源在源服务器中的地址主动向源服务器请求相应的静态资源。这样就实现了 CDN服务器向源服务器的主动同步。
[0061]上述的各个步骤均可以通过多种方式实现,比如对于步骤101,可以根据网页数据的格式对源服务器发送到客户端的数据进行识别,在识别到网页数据后拦截;或者也可以在源服务器中注册需要拦截的数据,使源服务器在发送网页数据时在网页数据中添加相应的拦截标识,并在监控到带有拦截标识的数据后进行拦截,或者通过其他现有的方式实现对原始网页数据的拦截,在此不再一一列举。
[0062]不难理解,本发明实施例中所指的原始网页数据实际是指源服务器发送给客户端的网页数据,这里的“原始”二字是为了与修改后的网页数据进行区分。这里的原始网页数据可以为客户端根据用户输入的域名向源服务器请求的网页对应的网页数据,也可以为源服务器主动向客户端推送的网页数据。
[0063]在具体实施时,源服务器的地址信息可能为源服务器的域名信息,或者IP信息,静态资源在源服务器中的地址信息可能为该静态资源在源服务器中的路径信息或者标签信息。当然源服务器的地址信息和/或静态资源在源服务器中的地址信息也可以表现为其他形式,其具体格式不会影响本发明的实施,相应的技术方案也应该落入本发明的保护范围。
[0064]本发明实施例中所指的静态资源可以具体为js,css格式的图片。
[0065]对于步骤102,在具体实施时,可以在静态资源在源服务器的地址信息之前直接添加对应的CDN服务器的域名,之后将静态资源在源服务器的地址信息添加到静态资源在源服务器的地址信息之后形成携带有源服务器的地址信息以及静态资源在源服务器中的地址信息且指向⑶N服务器的链接地址。这样在将修改后的网页数据发送到客户端之后,客户端根据静态资源的地址请求下载静态资源时,其下载请求会跳转到对应的⑶N服务器上。不难理解的是,本发明实施例中所指的对应的CDN服务器是相对于目的客户端而言,一般来说,是指客户端落入其覆盖范围的CDN服务器,这样可以实现就近下载。
[0066]在具体应用时,上述步骤102中除了包含将拦截的原始网页数据中静态资源在源服务器的地址信息修改为指向对应的CDN服务器的链接地址之外,还可以包括调整网页数据的报文头中的内容长度(Content length)的过程。这样,客户端在接收到相应的网页数据后,可以根据该内容长度验证发送的网页数据是否存在错误。
[0067]在具体应用时,原始网页数据中还可能包含静态资源的引用地址(Referer)信息,此时在步骤102中,还可以将静态资源的引用地址信息携带在修改后的网页数据中的链接地址中。这样做的好处是,当客户端请求该链接地址时,相应的CDN服务器可以获取根据该链接地址确定相应的静态资源的引用地址信息,这样相应的CDN服务器如果不能正确获取链接地址中源服务器的地址信息,可以通过该引用地址信息确定源服务器的地址信息。在具体应用时,该引用地址信息可以位于整个链接地址的末端。
[0068]在具体应用时,步骤102中,将拦截的原始网页数据中静态资源在源服务器的地址信息调整为指向对应的CDN服务器的链接地址可以是指将原始网页数据中所有静态资源在源服务器的地址信息修改为指向对应的CDN服务器的链接地址,也可以仅是指将部分静态资源在源服务器中的地址信息修改为指向对应的CDN服务器的链接地址。对于地址未被修改的静态资源,客户端在接收到该网页数据后,会直接向源服务器请求下载这部分静态资源。
[0069]另一方面,本发明的一个实施例还提供了另一种通过⑶N下载资源的实现方法,该方法可以由客户端执行,如图2所示,为该方法的流程示意图,包括:
[0070]步骤201,接收网页数据;所述网页数据中静态资源的地址为指向⑶N服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0071]步骤202,根据静态资源的地址向对应⑶N服务器请求下载相应的静态资源;
[0072]步骤203,接收⑶N服务器返回的静态资源。
[0073]本发明实施例提供的方法中,当客户端根据静态资源的地址向对应的CDN服务器请求下载相应的静态资源时,即请求访问该指向CDN服务器的链接地址时,其访问请求会被跳转到CDN服务器上,CDN服务器能够根据链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息从服务器中下载相应的静态资源并缓存到⑶N服务器,这样一方面,可以通过⑶N服务器实现就近下载,另一方面能够使⑶N服务器根据源服务器的地址信息和静态资源在源服务器中的地址信息主动向源服务器请求未缓存的静态资源,能够使CDN服务器自动实现与源服务器的同步。
[0074]这里所接收的网页数据可以为经过图1中的步骤102得到的网页数据。相应的,这里的网页数据中的链接地址也可以携带有静态资源的引用地址信息。步骤201-步骤203中的每一个步骤的实现过程可以与现有技术中相应的过程一致,在此不再赘述。
[0075]再一方面,本发明的一个实施例还提供了再一种通过CDN下载的实现方法,该方法可以由CDN服务器执行,如图3所示,为该方法的流程示意图,包括:
[0076]步骤301,接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求;该网页数据可以为图2中的步骤202中客户端根据静态资源的地址向对应CDN服务器请求下载相应的静态资源时发情的静态资源下载请求,相应的,此时网页数据中静态资源的地址为指向⑶N服务器的链接地址,且链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0077]步骤302,判断所请求下载的静态资源是否已缓存;若否,转向步骤303,若否,转向步骤305 ;
[0078]步骤303,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源,之后转向步骤304;
[0079]步骤304,接收相应的源服务器返回的相应的静态资源后缓存,之后转向步骤305。
[0080]步骤305,将缓存的相应的静态资源发送至客户端;
[0081]本发明实施例中,在接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求后,判断所请求的静态资源是否缓存,若是,则将缓存的相应的资源发送至客户端,如果否,则向相应的静态资源所在的源服务器请求相应的静态资源,在接收到相应的静态资源后缓存。这样,对于发生更新的静态资源,CDN服务器能够根据首次针对该静态资源的下载请求向源服务器请求相应的静态资源,自动实现与源服务器的同步。对于未发生更新的静态资源,⑶N服务器由于在之前已经根据上述步骤303和步骤304的流程下载并缓存了相应的静态资源,能够直接向客户端返回相应的静态资源。这样就实现了静态资源的就近下载。
[0082]需要指出的是,虽然图3中示出的是,在步骤304之后,转向步骤305的步骤,但是在实际应用中,在首次请求了相应的静态资源后,也可以首先将静态资源发送至客户端,之后再缓存,向客户端发送静态资源与缓存静态资源的先后关系并不影响本发明的实施。
[0083]在具体应用时,对于从源服务器接收到的静态资源,在进行缓存时,可以将该静态资源在源服务器中的地址信息作为该静态资源在本地缓存中的标签信息,或者按照该静态资源在源服务器中的地址信息将静态资源缓存到CDN服务器中相应的地址。这样CDN服务器在下次接收到针对该静态资源的下载请求时,能够方便的查找出该静态资源并发送至客户端。当然,在实际应用中,也可以按照其他的方式存储静态资源,比如将该静态资源在源服务器中的地址按照预设的规则进行转换映射得到在本地的存储地址,之后缓存到本地,或者在将静态资源存储到本地后,记录静态资源存储在源服务器中的地址与存储在本地的地址的对应关系,CDN服务器后续在接收到针对该静态资源的下载请求时也能查找到该静态资源并发送至客户端,本发明实施例提供的方式不应理解为对本发明的保护范围的限定。
[0084]在具体应用时,在步骤303中,还应该包括获取相应的静态资源所在的源服务器地址信息和获取静态资源在源服务器中的地址信息的过程,之后根据源服务器的地址信息以及静态资源在源服务器中的地址信息向源服务器发送请求下载相应的静态资源,该请求包含静态资源在源服务器中的地址信息,以向源服务器请求相应的静态资源。更进一步的,步骤303中,当源服务器的地址信息为源服务器的域名,静态资源在源服务器中的地址信息为在源服务器中的路径时,可以将在源服务中的路径放在源服务器的域名之后,生成一个指向源服务器的链接,并针对该链接发起下载请求,以向源服务器请求下载相应的静态资源。
[0085]下面结合具体的应用场景,对本发明的完整实施例进行详细的说明。如图4所示,在该应用场景中,包括源服务器、拦截服务器、客户端和CDN服务器,其中,拦截服务器部署在源服务器与客户端之间的路由上靠近源服务器的一侧,通过网络分别与源服务器和客户端相连,CDN服务器通过网络分别与源服务器和客户端相连。其中,这里的拦截服务器用以执行图1中所述的方法,客户端用以执行图2中的方法,CDN服务器用以执行图3中的方法,假设其绑定的域名为WWW.cdnlXXXl.com ;同时假设源服务器绑定的域名为www.1XXX1.com。另外假设拦截服务器在客户端中预先注册了需要拦截响应的事件,源服务器在发送需要拦截响应的事件对应的网页数据时,在该网页数据的报文头中添加相应的拦截标签。
[0086]该方法的具体流程可以如图5所示,包括:
[0087]步骤501,客户端接收用户输入的域名www.1XXX1.com,向源服务器发送访问请求。之后转向步骤502。
[0088]步骤502,源服务器接收客户端发送的访问请求,向客户端发送网页数据。之后转向步骤503。
[0089]假设源服务器发送给客户端的网页数据中源文件部分中的部分片段如图6所示,其中包含一个CSS格式的图片的静态资源,该静态资源在源服务器中的路径link href =^/bootstrap/css/bootstrap, min.css〃,该静态资源的引用地址为 rel = "stylesheet",引用地址位于该静态文件在源服务器中的路径之后。另外,在该网页数据的标签信息中携带了源服务器的域名WWW.1XXX1.com。并假设该网页数据中的标签信息中携带了用于表示该网页数据需要拦截的拦截标识。
[0090]步骤503,拦截服务器拦截该网页数据,将其中的静态资源所对应的路径linkhref = "/bootstrap/css/bootstrap, min.css〃替换为一个指向所述CDN服务器,且包含源服务器的域名及该静态资源在源服务器中的路径的一个链接地址,并修改该网页数据的内容长度。之后转向步骤505。
[0091]由于该网页数据中携带了拦截标识,拦截服务器能够根据拦截标识确定该网页数据需要被拦截。
[0092]该链接地址的具体格式可以为www.cdnlXXXl.com/bootstrap/css/bootstrap,min.css ? web_real_domain = www.1XXX1.corner el = "stylesheet",其中 CDN 服务器的域名包含www.cdnlXXXl.com,该静态资源在源服务器中的路径/bootstrap/css/bootstrap.min.css,源服务器的域名(web_real_domain) www.1XXX1.com,该静态信息的引用地址rel="stylesheet"。图6中的网页数据内容修改经步骤504的修改后可以如图7所示。
[0093]步骤504,拦截服务器将修改后的网页数据发送至客户端。
[0094]步骤505,客户端接收拦截服务器发送的修改后的网页数据。之后转向步骤506。
[0095]步骤506,客户端向该网页数据中的静态资源的地址www.cdnlXXXl.com/bootstrap/css/bootstrap.min.css ? web_real_domain = www.1XXX1.com^rel ="stylesheet〃发起下载请求。之后转向步骤507。在实际应用中,客户端也可能需要访问网页数据中的其他资源,比如动态资源等,这些不是本发明所主要关心的内容,在此亦不在进行详细的说明。由于该下载请求是指向CDN服务器的连接地址,则该下载请求会被转向该⑶N服务器。
[0096]步骤507,⑶N服务器接收客户端发送的下载请求,判断自身服务器中是否缓存了相应的静态资源,若否,则转向步骤508,若是,则转向步骤512。
[0097]具体的,CDN服务器从请求该静态资源的链接地址中提取该静态资源在源服务器中的路径/bootstrap/css/bootstrap.min.css,判断自身是否缓存了该路径对应静态资源。
[0098]步骤508,⑶N服务器从请求该静态资源的链接地址中提取源服务器的链接地址www.1XXX1.com,以及该静态资源在源服务器中的路径/bootstrap/css/bootstrap.min.csso之后转向步骤509。
[0099]如果步骤508中如果没能成功“从请求该静态资源的链接地址中提取源服务器的链接地址”,则可以提取该静态资源的引用地址rel = "stylesheet",之后根据该引用地址获取源服务器的链接地址。
[0100]步骤509,⑶N服务器生成一个用于向源服务器请求该静态资源的链接www.1XXX1.com/bootstrap/css/bootstrap, min.css,并发起针对该链接的下载请求。之后转向步骤510。
[0101]步骤510,源服务器接收CDN发送的下载请求,提取所请求的静态资源在源服务器中的路径bootstrap/css/bootstrap.min.css,将该路径下存储的静态资源发送至Q)N服务器。之后转向步骤511。
[0102]步骤511,⑶N服务器接收源服务器发送的静态资源,将该静态资源存储在bootstrap/css/bootstrap, min.css 的路径下。之后转向步骤 512。
[0103]步骤512,⑶N服务器将缓存的静态资源发送至客户端。
[0104]至此,完成了静态资源通过⑶N服务器下载的过程,如果该静态资源为发生更新的静态资源,那么在步骤507的判断结果为否,CDN服务器自行向源服务器请求该静态资源,通过这种方式,实现了更新的静态资源的自动同步。在后续过程中,如果再有其他的客户端发起了针对该静态资源的下载请求,按照上述的流程,在步骤507的判断结果会为是,直接跳转至步骤512,将缓存的静态资源发送至客户端。这样就通过⑶N服务器实现了静态资源的就近下载。
[0105]图8为本发明一个实施例提供的一种通过CDN下载资源的实现装置的结构示意图,该实施例提供的通过CDN下载资源的实现装置可作为拦截服务器应用到图5中所示的方法中,该装置可以包括:拦截模块801、修改模块802和发送模块803,其中,
[0106]拦截模块801,用于拦截源服务器向客户端发送的原始网页数据;所述原始网页数据包括有所述源服务器的地址信息和静态资源在所述源服务器的地址信息;
[0107]修改模块802,用于将拦截的原始网页数据中静态资源在所述源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息;
[0108]发送模块803,用于将修改后的网页数据发送到客户端,以使所述客户端从对应的CDN服务器中下载相应的静态资源。
[0109]本实施例提供的通过CDN下载资源的实现装置,拦截源服务器向客户端发送的原始网页数据;所述原始网页数据包括有所述源服务器的地址信息和静态资源在所述源服务器的地址信息;将拦截的原始网页数据中静态资源在所述源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息;将修改后的网页数据发送到客户端,以使所述客户端从对应的CDN服务器中下载相应的静态资源。这样客户端会跳转到相应的CDN服务器请求静态资源,如果相应的静态资源没有缓存到CDN服务器,能够触发CDN服务器根据链接地址所指示的源服务器的地址以及静态资源的在源服务器中的地址主动向源服务器请求相应的静态资源。这样就实现了 CDN服务器向源服务器的主动同步。
[0110]需要指出的是,本发明实施例所提供的通过CDN下载资源的实现装置本身可以为一个功能模块或者为具有相应功能的装置。比如在实际应用中,该装置本身可以为源服务器或者⑶N服务器的一个功能模块。
[0111]具体应用时,修改模块802可以用于将拦截的原始网页数据中静态资源在所述源服务器的地址信息修改为指向对应的CDN服务器的链接地址以及调整网页数据中的内容长度,得到修改后的网页数据。
[0112]具体应用时,上述的链接地址还携带有静态资源的引用地址信息,所述静态资源的引用地址信息是从所述网页数据中获取的。
[0113]本发明的一个实施例还提供了一种客户端,如图9所示,该客户端包括第一接收模块901、下载请求模块902和第二接收模块903,其中,
[0114]第一接收模块901,用于接收网页数据;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0115]下载请求模块902,用于根据静态资源的地址向对应⑶N请求下载相应的静态资源;
[0116]第二接收模块903,用于接收⑶N服务器返回的静态资源。
[0117]本发明实施例提供的客户端根据静态资源的地址向对应的CDN服务器请求下载相应的静态资源时,即请求访问该指向CDN服务器的链接地址时,其访问请求会被跳转到CDN服务器上,CDN服务器能够根据链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息从服务器中下载相应的静态资源并缓存到CDN服务器,这样一方面,可以通过CDN服务器实现就近下载,另一方面能够使CDN服务器根据源服务器的地址信息和静态资源在源服务器中的地址信息主动向源服务器请求未缓存的静态资源,能够使CDN服务器自动实现与源服务器的同步。
[0118]在一些示例中,⑶N服务器返回的静态资源为所述⑶N服务器根据所述链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向源服务器下载的。
[0119]在具体应用时,这里的链接地址还携带有静态资源的引用地址信息。
[0120]本发明的一个实施例还提供了一种⑶N服务器,如图10所示,服务器包括接收模块1001、判断模块1002和发送模块1003,其中,
[0121]接收模块1001,用于接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0122]判断模块1002,用于判断第一接收模块1001接收到的静态资源下载请求所请求下载的静态资源是否已缓存;
[0123]发送模块1003,用于在判断模块1002判断相应的静态资源已缓存时,将缓存的相应的静态资源发送至所述客户端;在判断模块1002判断相应的静态资源未缓存时,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源,在接收到相应的静态资源后缓存并发送到所述客户端。
[0124]本发明实施例提供的⑶N服务器,在接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求后,判断所请求的静态资源是否缓存,若是,则将缓存的相应的资源发送至客户端,如果否,则向相应的静态资源所在的源服务器请求相应的静态资源,在接收到相应的静态资源后缓存。这样,对于发生更新的静态资源,CDN服务器能够根据首次针对该静态资源的下载请求向源服务器请求相应的静态资源,自动实现与源服务器的同步。
[0125]可选的,上述的链接地址还携带有静态资源的引用地址信息;
[0126]该⑶N服务器还包括:
[0127]寻址模块1004,用于在判断模块1002判断相应的静态资源未缓存后,发送模块1003根据相应的静态资源的原始地址向相应的源服务器地址请求相应的静态资源之前,从对应的链接地址中提取相应的源服务器的地址,在提取相应的源服务器的地址失败时,根据对应的链接地址中的引用地址Referer确定相应的源服务器的地址。
[0128]本发明的实施例公开了:
[0129]Al、一种通过⑶N下载资源的实现装置,其特征在于,包括:
[0130]拦截模块,用于拦截源服务器向客户端发送的原始网页数据;所述原始网页数据包括有所述源服务器的地址信息和静态资源在所述源服务器的地址信息;
[0131]修改模块,用于将拦截的原始网页数据中静态资源在所述源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息;
[0132]发送模块,用于将修改后的网页数据发送到客户端,以使所述客户端从对应的CDN服务器中下载相应的静态资源。
[0133]A2、如权利要求Al所述的装置,其特征在于,所述修改模块,具体用于将拦截的原始网页数据中静态资源在所述源服务器的地址信息修改为指向对应的CDN服务器的链接地址以及调整网页数据中的内容长度,得到修改后的网页数据。
[0134]A3、如权利要求Al所述的装置,其特征在于,所述链接地址还携带有静态资源的引用地址信息,所述静态资源的引用地址信息是从所述网页数据中获取的。
[0135]B4、一种客户端,其特征在于,包括:
[0136]第一接收模块,用于接收网页数据;所述网页数据中静态资源的地址为指向⑶N服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0137]下载请求模块,用于根据静态资源的地址向对应CDN请求下载相应的静态资源;
[0138]第二接收模块,用于接收⑶N服务器返回的静态资源。
[0139]B5、如权利要求B4所述的客户端,其特征在于,⑶N服务器返回的静态资源为所述CDN服务器根据所述链接地址中携带的静态资源所在的源服务器的地址信息,以及静态资源在源服务器中的地址信息向源服务器下载的。
[0140]B6、如权利要求B4所述的客户端,其特征在于,所述链接地址还携带有静态资源的引用地址信息。
[0141]C7、一种服务器,其特征在于,所述服务器包括:
[0142]接收模块,用于接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0143]判断模块,用于判断所述第一接收模块接收到的静态资源下载请求所请求下载的静态资源是否已缓存;
[0144]发送模块,用于在所述判断模块判断相应的静态资源已缓存时,将缓存的相应的静态资源发送至所述客户端;在所述判断模块判断相应的静态资源未缓存时,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源,在接收到相应的静态资源后缓存并发送到所述客户端。
[0145]CS、如权利要求C7所述的服务器,其特征在于,所述链接地址还携带有静态资源的引用地址信息;
[0146]所述服务器还包括:
[0147]寻址模块,用于在所述判断模块判断相应的静态资源未缓存后,所述发送模块根据相应的静态资源的原始地址向相应的源服务器地址请求相应的静态资源之前,从对应的链接地址中提取相应的源服务器的地址,在提取相应的源服务器的地址失败时,根据对应的链接地址中的引用地址Referer确定相应的源服务器的地址。
[0148]D9、一种通过⑶N下载资源的实现方法,其特征在于,包括:
[0149]拦截源服务器向客户端发送的原始网页数据;所述原始网页数据包括有所述源服务器的地址信息和静态资源在所述源服务器的地址信息;
[0150]将拦截的原始网页数据中静态资源在所述源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息;
[0151]将修改后的网页数据发送到客户端,以使所述客户端从对应的CDN服务器中下载相应的静态资源。
[0152]D10、如权利要求D9所述的方法,其特征在于,所述将拦截的原始网页数据中静态资源在所述源服务器的地址信息修改为指向对应的CDN服务器的链接地址,得到修改后的网页数据包括:
[0153]将拦截的原始网页数据中静态资源在所述源服务器的地址信息修改为指向对应的CDN服务器的链接地址以及调整网页数据中的内容长度,得到修改后的网页数据。
[0154]011、如权利要求09所述的方法,其特征在于,所述链接地址还携带有静态资源的引用地址信息,所述静态资源的引用地址信息是从所述网页数据中获取的。
[0155]E12、一种通过⑶N下载资源的实现方法,其特征在于,包括:
[0156]接收网页数据;所述网页数据中静态资源的地址为指向⑶N服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0157]根据静态资源的地址向对应⑶N服务器请求下载相应的静态资源;
[0158]接收⑶N服务器返回的静态资源。
[0159]E13、如要求E12所述的方法,其特征在于,
[0160]CDN服务器返回的静态资源为所述CDN服务器根据所述链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向源服务器下载的。
[0161]E14、如权利要求E12所述方法,其特征在于,所述链接地址还携带有静态资源的引用地址信息。
[0162]F15、一种通过⑶N下载资源的实现方法,其特征在于,包括:
[0163]接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息;
[0164]判断所请求下载的静态资源是否已缓存;
[0165]如果已缓存,将缓存的相应的静态资源发送至所述客户端;
[0166]如果未缓存,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源,在接收到相应的源服务器返回的相应的静态资源后缓存并发送到所述客户端。
[0167]F16、如权利要求F15所述的方法,其特征在于,所述链接地址还携带有静态资源的引用地址信息;
[0168]在所请求下载的静态资源未缓存,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源之前,所述方法还包括:从对应的链接地址中提取相应的源服务器的地址信息,在提取相应的源服务器的地址信息失败时,根据对应的链接地址中的引用地址信息确定相应的源服务器的地址。
[0169]本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0170]类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。[0171 ] 本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在于该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是互相排斥之处,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
[0172]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0173]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种浏览器终端的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0174]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0175]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
【权利要求】
1.一种通过CDN下载资源的实现装置,其特征在于,包括: 拦截模块,用于拦截源服务器向客户端发送的原始网页数据;所述原始网页数据包括有所述源服务器的地址信息和静态资源在所述源服务器的地址信息; 修改模块,用于将拦截的原始网页数据中静态资源在所述源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息; 发送模块,用于将修改后的网页数据发送到客户端,以使所述客户端从对应的CDN服务器中下载相应的静态资源。
2.如权利要求1所述的装置,其特征在于,所述修改模块,具体用于将拦截的原始网页数据中静态资源在所述源服务器的地址信息修改为指向对应的CDN服务器的链接地址以及调整网页数据中的内容长度,得到修改后的网页数据。
3.如权利要求1所述的装置,其特征在于,所述链接地址还携带有静态资源的引用地址信息,所述静态资源的引用地址信息是从所述网页数据中获取的。
4.一种客户端,其特征在于,包括: 第一接收模块,用于接收网页数据;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息; 下载请求模块,用于根据静态资源的地址向对应CDN请求下载相应的静态资源; 第二接收模块,用于接收CDN服务器返回的静态资源。
5.如权利要求4所述的客户端,其特征在于,CDN服务器返回的静态资源为所述CDN服务器根据所述链接地址中携带的静态资源所在的源服务器的地址信息,以及静态资源在源服务器中的地址信息向源服务器下载的。
6.如权利要求4所述的客户端,其特征在于,所述链接地址还携带有静态资源的引用地址信息。
7.一种服务器,其特征在于,所述服务器包括: 接收模块,用于接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息; 判断模块,用于判断所述第一接收模块接收到的静态资源下载请求所请求下载的静态资源是否已缓存; 发送模块,用于在所述判断模块判断相应的静态资源已缓存时,将缓存的相应的静态资源发送至所述客户端;在所述判断模块判断相应的静态资源未缓存时,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源,在接收到相应的静态资源后缓存并发送到所述客户端。
8.一种通过⑶N下载资源的实现方法,其特征在于,包括: 拦截源服务器向客户端发送的原始网页数据;所述原始网页数据包括有所述源服务器的地址信息和静态资源在所述源服务器的地址信息; 将拦截的原始网页数据中静态资源在所述源服务器的地址信息调整为指向对应的CDN服务器的链接地址,得到修改后的网页数据;其中,所述链接地址中携带有所述源服务器的地址信息以及静态资源在所述源服务器的地址信息; 将修改后的网页数据发送到客户端,以使所述客户端从对应的CDN服务器中下载相应的静态资源。
9.一种通过⑶N下载资源的实现方法,其特征在于,包括: 接收网页数据;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息; 根据静态资源的地址向对应CDN服务器请求下载相应的静态资源; 接收⑶N服务器返回的静态资源。
10.一种通过⑶N下载资源的实现方法,其特征在于,包括: 接收客户端根据网页数据中静态资源的地址发起的静态资源下载请求;所述网页数据中静态资源的地址为指向CDN服务器的链接地址,所述链接地址携带有静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息; 判断所请求下载的静态资源是否已缓存; 如果已缓存,将缓存的相应的静态资源发送至所述客户端; 如果未缓存,根据相应的静态资源对应的链接地址中携带的静态资源所在的源服务器的地址信息以及静态资源在源服务器中的地址信息向相应的源服务器请求相应的静态资源,在接收到相应的源服务器返回的相应的静态资源后缓存并发送到所述客户端。
【文档编号】H04L29/12GK104468817SQ201410806357
【公开日】2015年3月25日 申请日期:2014年12月22日 优先权日:2014年12月22日
【发明者】李纪峰 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1