缓存站点文件的方法及其系统的制作方法

文档序号:9750956阅读:361来源:国知局
缓存站点文件的方法及其系统的制作方法
【技术领域】
[0001]本发明涉及文件处理技术领域,尤其是涉及一种缓存站点文件的方法及其系统。
【背景技术】
[0002]目前许多站点由于其内容相同,会使用相同的js组件或者其他相同的图标,而在获取这些内容时,浏览器是通过url加载,在获取缓存时,极有可能导致用户访问每个站点都需要重新到CDN服务器上加载此文件。因此既浪费用户的网络资源,又耗费了时间。
[0003]现有中国专利申请(申请号:201410838045.6)通过其哈希散列或哈希值来判断文件是否相同,但并没有修改了其URL,这样只能解决单个URL资源在不同页面应用的复用。因此在实际中,仍会出现在多个URL中重复加载该资源文件。

【发明内容】

[0004]本发明所要解决的技术问题是:存在相同资源文件的多个URL修改成相同的URL,并缓存,避免用户加载时浪费网络资源,并节省时间。
[0005]为了解决上述技术问题,本发明采用的技术方案为:提供一种缓存站点文件的方法,包括:
[0006]解析站点中的html文档,存储引用资源文件的URL到CDN服务器中;
[0007]下载URL的资源文件,并生成哈希散列;
[0008]获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到⑶N服务器中。
[0009]为解决上述问题,本发明还提供一种缓存站点文件的系统,包括:
[0010]解析存储模块,用于解析站点中的html文档,存储引用资源文件的URL到CDN服务器中;
[0011]散列生成模块,用于下载URL的资源文件,并生成哈希散列;
[0012]修改缓存模块,用于获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到⑶N服务器中。
[0013]本发明的有益效果在于:区别于现有技术,本发明通过解析站点中的html文件,存储对应的URL到CDN服务器中,并生成哈希散列,将相同资源的哈希散列的URL修改成一个,并进行缓存。通过上述方式,本发明提高用户浏览器的命中率,并提高页面加载速度,减少CDN服务器与用户之间的传输流量。
【附图说明】
[0014]图1为本发明方法实施例一的流程示意图;
[0015]图2为本发明系统实施例二的结构框图。
【具体实施方式】
[0016]为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0017]本发明最关键的构思在于:通过将html文件中通过url引用的资源文件计算hash散列,找出url不同但内容相同的资源文件,将其中的文件以及哈希散列缓存在cdn服务器。
[0018]请参照图1,本发明实施例一提供一种缓存站点文件的方法,包括:
[0019]S1:解析站点中的html文档,存储引用资源文件的URL到⑶N服务器中;
[0020]S2:下载URL的资源文件,并生成哈希散列;
[0021 ] S3:获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到⑶N服务器中。
[0022]具体地,步骤SI为:
[0023]通过⑶N服务器请求访问多个站点,获取站点中的html文档;
[0024]解析所述html文档,获得引用相同资源文件的URL,并存储。
[0025]而在步骤S2中,本发明可通过SHA-1算法生成哈希散列。
[0026]在将修改成一致的URL缓存到⑶N服务器中后,用户可通过浏览器发起访问站点的http请求,并解析到CDN服务器中;CDN服务器向站点发起http请求,站点返回对应资源文件的URL到CDN服务器;CDN服务器返回修改成相同资源文件的URL的http请求到浏览器;浏览器解析获取资源文件。
[0027]浏览器会缓存相同urI的文件,如果访问别的网站访问到这个文件,就可以直接在本地读取,无需再访问服务器。以下通过一个具体的实例进行说明,以方便本领域技术人员理解。
[0028]本发明解决的是多个不同url资源的复用。现有cdn技术只能解决单个url资源在不同页面引用的复用。在原站点上可存在多个文件,因为他们可分别存放在不同的服务器上,并且url不同。但是实际上这多个文件有可能是一个文件的多个副本,即文件的内容相同。
[0029]比如:http://sitel.com和http: //site2.com两个站点都引用了 jQuery.js这个文件,但是他们的url不同,现有技术的cdn会使得用户的本地浏览器会将这两个文件识别为不同的文件会下载2次。因为他们的url—个是http://si tel.com/ jQuery.js—个是http: //site2.com/ jQuery.js。利用本方案后,在cdn服务器将他们统一为相同的url,从而实现的用户浏览器只下载一次这个js的目的。
[0030]CDN服务器上可设置文件缓存模块及URL列表存储模块,在用户访问网页时,对用户访问的站点,如http: //sitel.com/1.html或http: //site2.com/2.html或者其他页面html文档进行解析,将其中引用的资源文件URL存储到CDN服务器中的引用的资源文件URL列表存储模块。
[0031]文件缓存模块对上述资源文件URL进行下载,并通过SHA-1算法生成每个文件的hash散列,找出站点中相同SHA-1散列的文件所对应的资源文件URL,进行缓存。
[0032]举个例子:
[0033]用户I的浏览器通过CDN服务器访问http://sitel.com/l.html页面,其中另外一个站点的页面是http: //site2.com/2.html它与http://sitel.com/1.html 中都引用了一个相同的文件,例如j Query 1.9的版本。
[0034]CDN服务器中的文件缓存模块对解析出http://sitel.com/1.html中所有引用的资源文件URL,并对它进行下载,再通过SHA-1算法生成hash散列,其中SHA-1算法是一种散列算法,可以生成标识文件唯一性的标识。
[0035]用户2的浏览器又通过⑶N服务器访问http://site2.com/2.html,这时重复上述步骤,也对这个页面中的用的资源文件URL下载下来的文件计算hash散列。
[0036]此时,文件缓存模块通过上述计算,计算出两个页面包含的两个引用资源文件URL为http: //sitel.com/ j query.1.9.js 和http: //site2.com/ js/j query.1.9.js,这两个资源文件存在于上述两个站点,但是它们的hash散列相同,表示他们文件也相同。
[0037]当其他用户访问CDN服务器时,将http://site2.eom/2.h tm I 与 http://sitel.com/1.html中两个相同的引用资源文件到修改为相同的url。即,将页面中http://sitel.c
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1