CN105512280B - 缓存站点文件的方法及其系统 - Google Patents
缓存站点文件的方法及其系统 Download PDFInfo
- Publication number
- CN105512280B CN105512280B CN201510888664.0A CN201510888664A CN105512280B CN 105512280 B CN105512280 B CN 105512280B CN 201510888664 A CN201510888664 A CN 201510888664A CN 105512280 B CN105512280 B CN 105512280B
- Authority
- CN
- China
- Prior art keywords
- url
- cdn server
- hash
- file
- website
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种缓存站点文件的方法及系统,其中方法包括:解析站点中的html文档,存储引用资源文件的URL到CDN服务器中;下载URL的资源文件,并生成哈希散列;获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到CDN服务器中。通过上述方式,本发明能够提高用户浏览器的命中率,并提高页面加载速度,减少CDN服务器与用户之间的传输流量。
Description
技术领域
本发明涉及文件处理技术领域,尤其是涉及一种缓存站点文件的方法及其系统。
背景技术
目前许多站点由于其内容相同,会使用相同的js组件或者其他相同的图标,而在获取这些内容时,浏览器是通过url加载,在获取缓存时,极有可能导致用户访问每个站点都需要重新到CDN服务器上加载此文件。因此既浪费用户的网络资源,又耗费了时间。
现有中国专利申请(申请号:201410838045.6)通过其哈希散列或哈希值来判断文件是否相同,但并没有修改了其URL,这样只能解决单个URL资源在不同页面应用的复用。因此在实际中,仍会出现在多个URL中重复加载该资源文件。
发明内容
本发明所要解决的技术问题是:存在相同资源文件的多个URL修改成相同的URL,并缓存,避免用户加载时浪费网络资源,并节省时间。
为了解决上述技术问题,本发明采用的技术方案为:提供一种缓存站点文件的方法,包括:
解析站点中的html文档,存储引用资源文件的URL到CDN服务器中;
下载URL的资源文件,并生成哈希散列;
获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到CDN服务器中。
为解决上述问题,本发明还提供一种缓存站点文件的系统,包括:
解析存储模块,用于解析站点中的html文档,存储引用资源文件的URL到CDN服务器中;
散列生成模块,用于下载URL的资源文件,并生成哈希散列;
修改缓存模块,用于获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到CDN服务器中。
本发明的有益效果在于:区别于现有技术,本发明通过解析站点中的html文件,存储对应的URL到CDN服务器中,并生成哈希散列,将相同资源的哈希散列的URL修改成一个,并进行缓存。通过上述方式,本发明提高用户浏览器的命中率,并提高页面加载速度,减少CDN服务器与用户之间的传输流量。
附图说明
图1为本发明方法实施例一的流程示意图;
图2为本发明系统实施例二的结构框图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过将html文件中通过url引用的资源文件计算hash散列,找出url不同但内容相同的资源文件,将其中的文件以及哈希散列缓存在cdn服务器。
请参照图1,本发明实施例一提供一种缓存站点文件的方法,包括:
S1:解析站点中的html文档,存储引用资源文件的URL到CDN服务器中;
S2:下载URL的资源文件,并生成哈希散列;
S3:获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到CDN服务器中。
具体地,步骤S1为:
通过CDN服务器请求访问多个站点,获取站点中的html文档;
解析所述html文档,获得引用相同资源文件的URL,并存储。
而在步骤S2中,本发明可通过SHA-1算法生成哈希散列。
在将修改成一致的URL缓存到CDN服务器中后,用户可通过浏览器发起访问站点的http请求,并解析到CDN服务器中;CDN服务器向站点发起http请求,站点返回对应资源文件的URL到CDN服务器;CDN服务器返回修改成相同资源文件的URL的http请求到浏览器;浏览器解析获取资源文件。
浏览器会缓存相同url的文件,如果访问别的网站访问到这个文件,就可以直接在本地读取,无需再访问服务器。以下通过一个具体的实例进行说明,以方便本领域技术人员理解。
本发明解决的是多个不同url资源的复用。现有cdn技术只能解决单个url资源在不同页面引用的复用。在原站点上可存在多个文件,因为他们可分别存放在不同的服务器上,并且url不同。但是实际上这多个文件有可能是一个文件的多个副本,即文件的内容相同。
比如:http://site1.com和http://site2.com两个站点都引用了jQuery.js这个文件,但是他们的url不同,现有技术的cdn会使得用户的本地浏览器会将这两个文件识别为不同的文件会下载2次。因为他们的url一个是http://site1.com/jQuery.js一个是http://site2.com/jQuery.js。利用本方案后,在cdn服务器将他们统一为相同的url,从而实现的用户浏览器只下载一次这个js的目的。
CDN服务器上可设置文件缓存模块及URL列表存储模块,在用户访问网页时,对用户访问的站点,如http://site1.com/1.html或http://site2.com/2.html或者其他页面html文档进行解析,将其中引用的资源文件URL存储到CDN服务器中的引用的资源文件URL列表存储模块。
文件缓存模块对上述资源文件URL进行下载,并通过SHA-1算法生成每个文件的hash散列,找出站点中相同SHA-1散列的文件所对应的资源文件URL,进行缓存。
举个例子:
用户1的浏览器通过CDN服务器访问http://site1.com/1.html页面,其中另外一个站点的页面是http://site2.com/2.html它与http://site1.com/1.html中都引用了一个相同的文件,例如jQuery1.9的版本。
CDN服务器中的文件缓存模块对解析出http://site1.com/1.html中所有引用的资源文件URL,并对它进行下载,再通过SHA-1算法生成hash散列,其中SHA-1算法是一种散列算法,可以生成标识文件唯一性的标识。
用户2的浏览器又通过CDN服务器访问http://site2.com/2.html,这时重复上述步骤,也对这个页面中的用的资源文件URL下载下来的文件计算hash散列。
此时,文件缓存模块通过上述计算,计算出两个页面包含的两个引用资源文件URL为http://site1.com/jquery.1.9.js和http://site2.com/js/jquery.1.9.js,这两个资源文件存在于上述两个站点,但是它们的hash散列相同,表示他们文件也相同。
当其他用户访问CDN服务器时,将http://site2.com/2.html与http://site1.com/1.html中两个相同的引用资源文件到修改为相同的url。即,将页面中http://site1.com/jquery.1.9.js和http://site2.com/js/jquery.1.9.js都改为http://site3.com/jquery.1.9.js。
其他用户(如用户3、用户4……的浏览器下一次对http://site1.com/1.html页面中的http://site1.com/jquery.1.9.js的引用进行替换,替换为http://site3.com/jquery.1.9.js。用户如果再访问http://site2.com/2.html就将页面中的http://site2.com/js/jquery.1.9.js也替换为http://site3.com/jquery.1.9.js。应当理解的是,这种替换不是永久的,是每一次浏览器发起请求时替换,且当浏览器访问CDN服务器的http://site1.com/1.html时,CDN服务器向原站点http://site1.com/1.html发起请求,原站点返回的内容中的引用文件的url会改变,http://site1.com/1.html本身访问这个页面的url没有影响。
在修改的操作时,可按下述方式进行:
http://site1.com/1.html的页面内容:
<html>….<script src=http://site1.com/jquery.1.9.js/>…</html>
http://site2.com/2.html的页面内容:
<html>….<script src=http://site2.com/js/jquery.1.9.js/>…</html>
最终二者的script引用都被替换为<script src=http://site3.com/jquery.1.9.js/>。
区别于现有技术,本发明通过解析站点中的html文件,存储对应的URL到CDN服务器中,并生成哈希散列,将相同资源的哈希散列的URL修改成一个,并进行缓存。通过上述方式,本发明提高用户浏览器的命中率,并提高页面加载速度,减少CDN服务器与用户之间的传输流量。
对应地,本发明实施例二提供一种缓存站点文件的系统100,包括:
解析存储模块110,用于解析站点中的html文档,存储引用资源文件的URL到CDN服务器中;
散列生成模块120,用于下载URL的资源文件,并生成哈希散列;
修改缓存模块130,用于获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到CDN服务器中。
其中,所述解析存储模块110包括:
访问获取单元,用于通过CDN服务器请求访问多个站点,获取站点中的html文档;
解析存储单元,用于解析所述html文档,获得引用相同资源文件的URL,并存储。
所述散列生成模块120通过SHA-1算法生成哈希散列。
在一个具体的实施例中,本发明所述系统还可包括:
访问解析模块,用于通过浏览器发起访问站点的http请求,并解析到CDN服务器中;
转发返回模块,用于CDN服务器向站点发起http请求,站点返回对应资源文件的URL到CDN服务器;
返回修改模块,用于CDN服务器返回修改成相同URL的http请求到浏览器;
解析资源模块,用于浏览器解析获取资源文件。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种缓存站点文件的方法,其特征在于,包括:
解析站点中的html文档,存储引用资源文件的URL到CDN服务器中;
下载URL的资源文件至所述CDN服务器,并生成哈希散列;
获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到CDN服务器中;
通过浏览器发起访问站点的http请求,并解析到CDN服务器中;
CDN服务器向站点发起http请求,站点返回对应资源文件的URL到CDN服务器;
CDN服务器返回修改成相同资源文件的URL的http请求到浏览器;
浏览器解析获取资源文件。
2.根据权利要求1所述一种缓存站点文件的方法,其特征在于,解析站点中的html文档,存储引用资源文件的URL到CDN服务器中具体为:
通过CDN服务器请求访问多个站点,获取站点中的html文档;
解析所述html文档,获得引用相同资源文件的URL,并存储。
3.根据权利要求1所述一种缓存站点文件的方法,其特征在于,通过SHA-1算法生成哈希散列。
4.一种缓存站点文件的系统,其特征在于,包括:
解析存储模块,用于解析站点中的html文档,存储引用资源文件的URL到CDN服务器中;
散列生成模块,用于下载URL的资源文件至所述CDN服务器,并生成哈希散列;
修改缓存模块,用于获取对应于相同哈希散列的多个URL,并修改成相同URL,缓存到CDN服务器中,所述相同URL与所述多个URL中的任一URL均不同;
访问解析模块,用于通过浏览器发起访问站点的http请求,并解析到CDN服务器中;
转发返回模块,用于CDN服务器向站点发起http请求,站点返回对应资源文件的URL到CDN服务器;
返回修改模块,用于CDN服务器返回修改成相同URL的http请求到浏览器;
解析资源模块,用于浏览器解析获取资源文件。
5.根据权利要求4所述一种缓存站点文件的系统,其特征在于,所述解析存储模块包括:
访问获取单元,用于通过CDN服务器请求访问多个站点,获取站点中的html文档;
解析存储单元,用于解析所述html文档,获得引用相同资源文件的URL,并存储。
6.根据权利要求5所述一种缓存站点文件的系统,其特征在于,所述散列生成模块通过SHA-1算法生成哈希散列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510888664.0A CN105512280B (zh) | 2015-12-07 | 2015-12-07 | 缓存站点文件的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510888664.0A CN105512280B (zh) | 2015-12-07 | 2015-12-07 | 缓存站点文件的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105512280A CN105512280A (zh) | 2016-04-20 |
CN105512280B true CN105512280B (zh) | 2019-05-21 |
Family
ID=55720262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510888664.0A Active CN105512280B (zh) | 2015-12-07 | 2015-12-07 | 缓存站点文件的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105512280B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959361A (zh) * | 2016-04-25 | 2016-09-21 | 乐视控股(北京)有限公司 | 一种任务分发方法、装置和系统 |
CN112328291A (zh) * | 2020-12-11 | 2021-02-05 | 上海市民信箱信息服务有限公司 | 一种app轻应用市场软件版本管控的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103269377A (zh) * | 2013-05-31 | 2013-08-28 | 北京奇虎科技有限公司 | 处理脚本文件的方法、服务器、客户端和系统 |
CN104506637A (zh) * | 2014-12-29 | 2015-04-08 | 国家电网公司 | 解决网络拥挤的缓存方法、系统及url转发服务器 |
CN104714965A (zh) * | 2013-12-16 | 2015-06-17 | 阿里巴巴集团控股有限公司 | 静态资源去重方法、静态资源管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488636B (zh) * | 2012-06-11 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 一种离线浏览网页的方法及装置 |
-
2015
- 2015-12-07 CN CN201510888664.0A patent/CN105512280B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103269377A (zh) * | 2013-05-31 | 2013-08-28 | 北京奇虎科技有限公司 | 处理脚本文件的方法、服务器、客户端和系统 |
CN104714965A (zh) * | 2013-12-16 | 2015-06-17 | 阿里巴巴集团控股有限公司 | 静态资源去重方法、静态资源管理方法及装置 |
CN104506637A (zh) * | 2014-12-29 | 2015-04-08 | 国家电网公司 | 解决网络拥挤的缓存方法、系统及url转发服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN105512280A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11792294B2 (en) | Method and apparatus for reducing loading time of web pages | |
US8990357B2 (en) | Method and apparatus for reducing loading time of web pages | |
US10210145B2 (en) | Partial website optimization for a web publisher | |
US9292467B2 (en) | Mobile resource accelerator | |
US20140164447A1 (en) | Cookie synchronization and acceleration of third-party content in a web page | |
US9690568B2 (en) | Client-side script bundle management system | |
US20150120821A1 (en) | Dynamically populated manifests and manifest-based prefetching | |
US11818229B2 (en) | Caching in a content delivery framework | |
US20190222667A1 (en) | Speculative prefetch of resources across page loads | |
US11611628B2 (en) | Persistent edge state of end user devices at network nodes | |
US10645192B2 (en) | Identifying content files in a cache using a response-based cache index | |
US9531829B1 (en) | Smart hierarchical cache using HTML5 storage APIs | |
US10178147B1 (en) | Client-side location address translation | |
US8484373B2 (en) | System and method for redirecting a request for a non-canonical web page | |
CN103246667A (zh) | 数据跨域传递的方法及装置 | |
US10148735B1 (en) | Application layer load balancer | |
US20150019688A1 (en) | Methods for bundling images and devices thereof | |
CN105512280B (zh) | 缓存站点文件的方法及其系统 | |
US9471552B1 (en) | Optimization of scripting for web applications | |
US10021207B1 (en) | Architecture for proactively providing bundled content items to client devices | |
Kovaliuk et al. | The efficiency analysis of HTTP/2 protocol | |
US10812612B2 (en) | Execution of per-user functions at cache nodes | |
ElAarag et al. | Background Information | |
Trivedi et al. | Performance and Scalability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |