CN105512280B - 缓存站点文件的方法及其系统 - Google Patents

缓存站点文件的方法及其系统 Download PDF

Info

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
Application number
CN201510888664.0A
Other languages
English (en)
Other versions
CN105512280A (zh
Inventor
陈丛亮
刘德建
毛新生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian TQ Digital Co Ltd
Original Assignee
Fujian TQ Digital Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian TQ Digital Co Ltd filed Critical Fujian TQ Digital Co Ltd
Priority to CN201510888664.0A priority Critical patent/CN105512280B/zh
Publication of CN105512280A publication Critical patent/CN105512280A/zh
Application granted granted Critical
Publication of CN105512280B publication Critical patent/CN105512280B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL 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算法生成哈希散列。
CN201510888664.0A 2015-12-07 2015-12-07 缓存站点文件的方法及其系统 Active CN105512280B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488636B (zh) * 2012-06-11 2016-04-13 腾讯科技(深圳)有限公司 一种离线浏览网页的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
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