CN104714965B - 静态资源去重方法、静态资源管理方法及装置 - Google Patents
静态资源去重方法、静态资源管理方法及装置 Download PDFInfo
- Publication number
- CN104714965B CN104714965B CN201310688095.6A CN201310688095A CN104714965B CN 104714965 B CN104714965 B CN 104714965B CN 201310688095 A CN201310688095 A CN 201310688095A CN 104714965 B CN104714965 B CN 104714965B
- Authority
- CN
- China
- Prior art keywords
- static resource
- file
- content
- resource file
- static
- 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
Abstract
本申请公开了一种静态资源去重的方法和装置、一种用于CDN节点的静态资源去重的方法和装置、一种用于静态资源去重的静态资源管理方法和装置。其中所述静态资源去重的方法包括:接收获取静态资源文件的请求;判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的静态资源文件,并将其标记为优选静态资源文件;若是,返回跳转到所述任一优选静态资源文件的应答;若否,返回所述请求的静态资源文件。本申请提供的方法,能够减少静态资源文件的重复下载,节省网络带宽资源,将所述方法用于CDN节点,还能够有效提高CDN节点的命中率。
Description
技术领域
本申请涉及资源去重领域,具体涉及一种静态资源去重的方法和装置。本申请同时提供一种用于CDN节点的静态资源去重的方法和装置,以及一种用于静态资源去重的静态资源管理方法和装置。
背景技术
互联网(简称internet)是一种公用信息的载体,是大众传媒的一种。具有快捷性、普及性,是现今最流行、最受欢迎的传媒之一。不论是使用台式机还是移动设备,只要安装了浏览器,用户都可以随时随地获取互联网资讯,实现了远程办公、电子商务、网络社交、即时通讯等应用和服务,实现了视听、游戏等娱乐功能。
互联网的架构是基于客户端和服务器模型的,即:各种各样的资源存储在服务器上,用户通过客户端来访问服务器上的资源,具体的访问过程是通过HTTP(Hypertexttransfer protocol超文本传输协议)协议实现的。HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议,它不仅可以使浏览器更加高效,而且还能提供缓存功能,减少网络传输对带宽资源的占用。
HTTP协议是基于请求/响应模式的,基本工作原理是这样的:用户在客户端的浏览器中输入网址,通过HTTP协议向服务器提出浏览网页的要求,服务器收到来自客户端的请求后,将客户端请求的网页数据传输给客户端,这个动作称为响应,客户端浏览器将接收到的网页数据提取出来,并进行相应的显示或播放,用户就得到了所需的信息。
随着互联网上的应用越来越多,用户已经不再满足于按照请求/响应模式从互联网上获取信息了,而是出现了大量上传数据的需要,例如:向网站上传文本、图片、视频、音频、照片等,向个人空间上传照片,向淘宝店铺上传所售商品的图片资料等。随着上传的静态资源文件越来越丰富,同时也出现了大量的内容重复的静态资源文件。这些静态资源文件在服务器上存储的目录可能不同,文件名称也可能不同,但是文件的内容却是相同的,用户访问这些静态资源文件,就可能出现重复下载的情况,会造成对网络带宽资源的浪费。
以淘宝相关业务为例,淘宝上有很多从事第三方店铺装修服务的公司,他们为不同的商家装修店铺,但使用的模板却都大致相同,其中就存在着大量的重复静态文件:图片、CSS(Cascading Style Sheets层叠样式表单)、JS(JavaScript)等。每当用户访问一家新的淘宝店铺或者某店铺不同位置的商品时,用户的浏览器就有可能从服务器上下载重复的静态资源文件,从而占用不必要的带宽资源。
另外,对于CDN(content delivery network内容分发网络)服务器(即:CDN节点)来说,为了使用户能够就近取得所需资源,提高用户访问网站的速度,通常CDN节点在内存缓存了大量的静态资源文件,内容重复的现象更为突出,不仅会浪费带宽资源,而且大量重复资源对存储空间的占用,还会降低CDN节点的命中率,降低CDN节点对用户需求的响应速度。
发明内容
本申请提供一种静态资源去重的方法和装置,以解决重复下载静态资源文件、浪费网络带宽资源的问题。本申请另外提供一种用于CDN节点的静态资源去重的方法和装置,以及一种用于静态资源去重的静态资源管理方法和装置。
本申请的一种静态资源去重的方法,包括:
接收获取静态资源文件的请求;
判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的静态资源文件,并将其标记为优选静态资源文件;
若是,返回跳转到所述任一优选静态资源文件的应答;若否,返回所述请求的静态资源文件。
可选的,所述内容相同并且访问量满足设定要求的静态资源文件是指,内容相同并且访问量最大的静态资源文件。
可选的,所述方法还包括:
查找内容相同的静态资源文件;
获取所述内容相同的静态资源文件的访问量。
可选的,所述查找内容相同的静态资源文件包括:
遍历所有所述静态资源文件;
针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值;
将校验值相同的静态资源文件标识为内容相同。
可选的,所述统一的算法为消息摘要算法。
可选的,所述消息摘要算法包括MD5、SHA1或SHA256算法。
可选的,在将所述校验值相同的静态资源文件标识为内容相同之前,先判断所述校验值相同的静态资源文件的内容是否相同;若是,将所述校验值相同的静态资源文件标识为内容相同。
可选的,所述判断所述校验值相同的静态资源文件的内容是否相同,包括:
采用读取并比较文件内容的方式判断所述校验值相同的静态资源文件的内容是否相同;
或者,采用不同的算法再次获取所述静态资源文件内容的新校验值,并通过比较新校验值是否相同,来判断所述校验值相同的静态资源文件的内容是否相同。
可选的,所述获取所述内容相同的静态资源文件的访问量包括:
统计分析静态资源文件的访问日志,计算所述内容相同的静态资源文件的访问量。
可选的,所述方法还包括:
根据所述内容相同的静态资源文件和所述访问量,生成内容相同的静态资源文件的URL到优选静态资源文件URL跳转指示的跳转表;
相应的,所述判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的静态资源文件,具体是指:
查找所述跳转表中是否存在请求的静态资源文件的URL至优选静态资源文件URL的跳转指示。
可选的,在所述接收获取静态资源文件的请求之后,首先执行下述步骤:
判断所述请求中是否包含请求方有所述静态资源文件的缓存文件的标识;
若是,从所述请求中提取所述缓存文件的最后修改时间,与本地存储的相应文件的最后修改时间进行比较,判断所述缓存文件是否是最新的,若是,则返回使用请求方本地缓存文件的应答,不继续执行后续的步骤。
可选的,所述静态资源文件包括:图片文件、文本文件、音频文件、视频文件、动画文件、PPT文件、Word文件、Excel文件、PDF文件、软件包文件或压缩包文件。
相应的,本申请还提供一种静态资源去重的装置,包括:
请求接收单元,用于接收获取静态资源文件的请求;
优选资源判断单元,用于判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的静态资源文件,并将其标记为优选静态资源文件;
第一应答单元,用于返回对所述请求的应答;如果存在所述优选静态资源文件,则返回跳转到任一所述优选静态资源文件的应答,否则,返回所述请求的静态资源文件。
此外,本申请还提供一种用于CDN节点的静态资源去重的方法,包括:
接收获取静态资源文件的请求;
判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件;
若是,返回跳转到所述被指定为代表文件的静态资源文件的应答;若否,返回所述请求的静态资源文件;
所述代表文件,是指内容相同的所有静态资源文件中的任一文件。
可选的,所述方法还包括:
查找内容相同的静态资源文件;
将内容相同的所有静态资源文件中的任一文件指定为所述内容相同的所有静态资源文件的代表文件。
可选的,所述查找内容相同的静态资源文件包括:
遍历所述所有静态资源文件;
针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值;
将校验值相同的静态资源文件标识为内容相同。
可选的,所述统一的算法为消息摘要算法。
可选的,所述消息摘要算法包括MD5、SHA1或SHA256算法。
可选的,在将所述校验值相同的静态资源文件标识为内容相同之前,先判断所述校验值相同的静态资源文件的内容是否相同;
若是,将所述校验值相同的静态资源文件标识为内容相同。
可选的,所述判断所述校验值相同的静态资源文件的内容是否相同,包括:
采用读取并比较文件内容的方式判断所述校验值相同的静态资源文件的内容是否相同;
或者,采用不同的校验算法再次获取所述静态资源文件内容的新校验值,并通过比较新校验值是否相同,来判断所述校验值相同的静态资源文件的内容是否相同。
可选的,所述方法还包括:
生成内容相同静态资源文件的URL到所述被指定为代表文件的静态资源文件URL跳转指示的跳转表;
相应的,所述判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件,具体是指:
查找所述跳转表中是否存在请求的静态资源文件的URL至所述被指定为代表文件的静态资源文件URL的跳转指示。
可选的,所述将内容相同的所有静态资源文件中的任一文件指定为所述内容相同的所有静态资源文件的代表文件,具体是指将内容相同的所有静态资源文件中的访问量最大的静态资源文件,指定为所述内容相同的所有静态资源文件的代表文件。
可选的,所述方法还包括:
获取所述内容相同的静态资源文件的访问量。
可选的,在所述接收获取静态资源文件的请求之后,首先执行下述步骤:
判断所述请求中是否包含请求方有所述静态资源文件的缓存文件的标识;
若是,从所述请求中提取所述缓存文件的最后修改时间,与本地存储的相应文件的最后修改时间进行比较,判断所述缓存文件是否是最新的,若是,则返回使用请求方本地缓存文件的应答,不继续执行后续的步骤。
可选的,所述静态资源文件包括:图片文件、文本文件、音频文件、视频文件、动画文件、PPT文件、Word文件、Excel文件、PDF文件、软件包文件或压缩包文件。
相应的,本申请还提供一种用于CDN节点的静态资源去重的装置,包括:
请求接收单元,用于接收获取静态资源文件的请求;
代表文件判断单元,用于判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件;
第二应答单元,用于返回对所述请求的应答;如果存在所述指定为代表文件的静态资源文件,则返回跳转到所述被指定为代表文件的静态资源文件的应答,否则,返回所述请求的静态资源文件。
此外,本申请还提供一种用于静态资源去重的静态资源管理方法,包括:
查找内容相同的静态资源文件;
将内容相同的所有静态资源文件中的任一文件指定为所述内容相同的所有静态资源文件的代表文件;
生成内容相同静态资源文件URL到所述被指定为代表文件的静态资源文件URL跳转指示的跳转表。
可选的,所述查找内容相同的静态资源文件包括:
遍历所述所有静态资源文件;
针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值;
将校验值相同的静态资源文件标识为内容相同。
可选的,所述统一的算法为消息摘要算法。
可选的,所述消息摘要算法包括MD5、SHA1或SHA256算法。
相应的,本申请还提供一种用于静态资源去重的静态资源管理装置,包括:
相同文件查找单元,用于查找内容相同的静态资源文件;
代表文件指定单元,用于将内容相同的所有静态资源文件中的任一文件指定为所述内容相同的所有静态资源文件的代表文件;
跳转表生成单元,用于生成内容相同静态资源文件URL到所述代表文件URL跳转指示的跳转表。
与现有技术相比,本申请具有以下优点:
本申请提供的静态资源去重的方法,将客户端对静态资源文件的访问跳转到与其内容相同并且访问量更大的静态资源文件,而客户端浏览器本地可能已经缓存所述访问量更大的静态资源文件,因此浏览器直接使用缓存文件即可,从而能够减少静态资源文件的重复下载,有效节省对网络带宽资源的占用。
本申请提供的静态资源去重的方法,提供了一种优选实施方式,即:采用MD5、SHA1或SHA256算法计算静态资源文件内容的校验值并比对校验值是否相同,来查找内容相同的静态资源文件,能够有效减少查找内容相同的静态资源文件的工作量,提高查找效率。
本申请提供的静态资源去重的方法,还提供了一种优选实施方式,对于校验值相同的静态资源文件,增加了对其内容是否相同的判断,即:采用读取文件内容并比较的方式、或者更换算法重新计算并比对校验值的方式,从而能够及时发现所用算法可能出现的小概率碰撞情况,避免错误跳转给用户带来不好的体验。
本申请提供的用于CDN节点的静态资源去重的方法,将对内容相同的静态资源文件的访问都跳转到被指定为代表文件的静态资源文件,因此内存中仅需存放被指定为代表文件的静态资源文件,而不用存放内容相同的所有静态资源文件,从而减少内容相同的静态资源文件对CDN内存空间的占用,有效提高CDN节点的命中率,减少不必要的处理开销。
本申请提供的用于CDN节点的静态资源去重的方法,提供了一种优选实施方式,即:将访问量最大的静态资源文件指定为内容相同的静态资源文件的代表文件,并且将对静态资源文件的访问跳转到被指定为代表文件的静态资源文件,同时利用客户端浏览器具有的本地缓存功能,从而能够减少静态资源文件的重复下载,有效节省网络带宽资源。
本申请提供的用于静态资源去重的静态资源管理方法,通过查找内容相同的静态资源文件、并为内容相同的静态资源文件指定代表文件的方式,实现对内容相同的静态资源文件的复用,从而能够更为有效地管理静态资源,根据不同的应用方式,获得节省存储空间或者节省网络带宽资源等有益效果。
附图说明
图1为本申请的静态资源去重的方法的实施例的流程图;
图2为本申请的静态资源去重的装置的实施例的示意图;
图3为本申请的用于CDN节点的静态资源去重的方法的实施例的流程图;
图4为本申请的用于CDN节点的静态资源去重的装置的实施例的示意图;
图5为本申请的用于静态资源去重的静态资源管理方法的实施例的示意图;
图6为本申请的用于静态资源去重的静态资源管理装置的实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,分别提供了一种静态资源去重的方法和装置、一种用于CDN节点的静态资源去重的方法和装置、以及一种用于静态资源去重的静态资源管理方法和装置。在下面的实施例中逐一进行详细说明。
请参考图1,其为本申请的一种静态资源去重方法的实施例的流程示意图。所述方法包括如下步骤:
步骤101:接收获取静态资源文件的请求。
采用本申请提供的静态资源去重的方法,需要在接收到对静态资源文件的请求后,判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的静态资源文件,为了能够更为高效地实现本申请提供的方法,可以预先执行查找内容相同的静态资源文件、获取静态资源文件访问量、以及生成静态资源文件跳转表的操作。
首先,查找内容相同的静态资源文件。
在本申请提供的静态资源去重的方法中,所述静态资源包括但不限于图片文件、文本文件、音频文件、视频文件、动画文件、PPT文件、Word文件、Excel文件、PDF文件、软件包文件、压缩包文件等各种不依赖于程序动态生成的文件。
通常比较两个文件是否相同,最容易想到的方法就是先比较两个文件的长度是否相同,如果长度相同,在进一步比较文件的内容是否相同,即:通过调用文件系统提供的函数接口读取两个文件的内容,然后进行比较,如果全部相同就认为两个文件的内容是相同的。这种方法简单易行,但是只适合少量文件的比对。如果需要比较的不是两个文件,而是需要在服务器上的大量静态资源文件中找出内容相同的文件,那么采用两两比较所有静态资源文件的方式,效率就会很低。
本申请提供的方法,采取了一种优选的实施方式,即:遍历所有静态资源文件,然后针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值,并将校验值相同的静态资源文件标识为内容相同。
所述统一的算法是指杂凑算法(又称摘要算法、哈希算法),比较常用的杂凑算法有MD5、SHA1、SHA256等。在本实施例的一个具体例子中,采用的是MD5算法。
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护,是计算机广泛使用的杂凑算法之一,主流编程语言普遍已有MD5实现。将数据(如文件内容)运算为另一固定长度值,是杂凑算法的基本原理,MD5算法就是将任意长度的数据映射为一个128bit的大整数,例如:MD5(tanajiya.tar.gz)=0ca175b9c0f726a831d895e269332461计算得到的就是tanajiya.tar.gz文件的校验值,有时也可称为该文件的数字签名。可以这样理解,MD5可以为任何文件(不管其大小、格式、数量)产生一个独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化,而且通过MD5值反推原始文件的内容是极其困难的。基于MD5算法的上述特性,该算法被广泛应用于一致性验证、数字证书和安全访问等领域。
在本实施例的一个具体例子中,通过基于大数据的后台处理方式,采用MD5算法计算所有静态资源文件内容的校验码,计算结果如下表所示:
静态资源文件列表 | 对应的MD5校验值 |
http://tb.cn/imgextra/i2/692532833/A.jpg | 30025a18245a36b1191cf384ccab013e |
http://tb.cn/imgextra/i3/692532833/Y.gif | 72b4d193a11766e2a4c45c1fed65754c |
http://tb.cn/imgextra/x3/321459832/B.jpg | 30025a18245a36b1191cf384ccab013e |
http://tb.cn/img/bao/uploaded/i4/i4/Z.png | a34ffd9ad598adbfccf0f4e8ae192899 |
... | ... |
由上表可以看到,http://tb.cn/imgextra/i2/692532833/A.jpg和http://tb.cn/imgextra/x3/321459832/B.jpg这两个静态图片,虽然存放的目录不同,文件名称也不同,但是它们的MD5校验值是相同的,从而可以得出这样的结论,这两个静态图片是内容相同的静态资源文件,可以为这两个文件添加内容相同标识,也可以直接使用校验值作为内容是否相同的标识。如果同一个用户先访问上述A.jpg文件(该文件会在用户的本地浏览器缓存),随后又访问上述B.jpg文件,就会造成相同资源的重复传输,占用不必要的网络带宽,本申请提供的方法,通过跳转实现资源复用,就可以有效解决上述问题。
采用MD5算法可以找出内容相同的静态资源文件,通常情况下是没有问题的,但是该算法本身也存在缺陷,即:会以很小的概率出现碰撞,所谓碰撞是指,两个不同的输入内容经杂凑函数计算得出完全相同的杂凑值(即:校验值),在上述例子中,就是指两个内容不同的静态资源文件的MD5校验值相同,MD5算法的碰撞概率是1/2^64(即:2的64次方分之一)。之所以会发生碰撞,是由杂凑算法本身的计算原理决定的:以有长度限制的杂凑函数计算没有长度限制的讯息(例如:文件内容)是必然会有冲撞情况出现的(鸽巢原理,也称抽屉原理)。SHA1算法、SHA256算法也存在发生碰撞的可能性,但是概率比MD5算法还要低。
虽然出现上述碰撞的概率极低(可以认为,如果整个系统内的静态资源文件总数远低于2的64次方,基本是不会发生碰撞的),但是如果一旦出现碰撞,将某静态资源文件的请求跳转到与其内容不同的静态资源文件,会给用户带来不好的浏览体验。为了避免出现这种情况,本申请提供了两种可能的解决方法。
一种解决方法,可以采用不同的杂凑算法对校验值相同的静态资源文件的内容再次计算新的校验值,然后对新的校验值进行比对判断。例如,如果第一次采用MD5算法计算后发现有两个静态资源文件A.jpg和B.jpg的MD5校验值相同,为了避免发生碰撞,可以再选用SHA1或SHA256算法中的一个算法,再次计算这两个静态资源文件的新校验值,如果计算得到的两个新校验值是不同的,说明这两个文件的内容不同,之前采用的MD5算法发生了碰撞;如果两个新校验值相同,则可以认为这两个文件的内容是相同的(两个杂凑算法都发生碰撞的概率极低,可以忽略不计)。
另一种解决方法,可以先判断校验值相同的两个静态资源文件的长度是否相同,如果不同,说明文件内容不同,是采用的杂凑算法发生了碰撞;如果长度相同,则读取两个文件的内容并进行比较,如果都相同,则说明校验值相同的两个静态资源文件的内容的确相同,否则说明两个文件的内容并不相同,是采用的杂凑算法发生了碰撞。
本实施例提供的上述两个解决方法是主动检测碰撞的方式,在其他实施过程中,也可以采取被动解决碰撞的方式,即:如果用户反馈获取的静态资源文件的内容有误,可以根据用户的反馈,查找是否是因为杂凑算法发生碰撞,而导致的将内容不同的静态资源文件判断为内容相同,因而给用户提供了错误的静态资源文件,并进行相应的处理。
采用上述主动检测碰撞的解决方法,会占用系统的处理资源,给系统带来额外的压力,解决的是出现概率很低的杂凑算法碰撞问题;而采用被动解决方式,可能会偶尔给用户带来不好的浏览体验。因此在具体的实施方式中,可以权衡利弊,根据静态资源文件的具体数量级别,决定是否要解决可能存在的碰撞问题,以及采用何种方法解决。这些具体解决方式的变更,都不影响本申请的核心,都在本申请的保护范围之内。
本实施例采用的是MD5、SHA1或SHA256等消息摘要算法,在其他实施方式中,也可以采用其他方式或者算法来识别内容相同的静态资源文件,具体采用何种方式或算法,不是本申请的核心,本申请不作限定。
其次,获取内容相同的静态资源文件的访问量。
本申请提供的静态资源去重的方法,核心在于对内容相同的静态资源文件进行复用,即:将对访问量较小的静态资源文件的访问跳转到与其内容相同的、访问量较大的静态资源文件,由于客户端浏览器可能已经缓存了所述访问量较大的静态资源文件,因此客户端浏览器直接使用本地缓存的文件即可,不用再从服务器端下载,从而达到节省网络带宽的目的。
通过之前的计算、比对校验值的步骤,已经找到了内容相同的静态资源文件,要实现本申请提供的方法,还需要进一步获取所述内容相同的静态资源文件的访问量。在不同的实施方式中,可能采取不同的获取方法,在本实施例的一个具体例子中,采用统计分析静态资源文件的访问日志来计算静态资源文件访问量的方式。
服务器通常都有记录并生成日志文件的功能,日志文件可以记录服务器的执行的操作或处理,通过查阅日志文件可以监视服务器的运行情况,并在出现故障的时候提供有用的信息。通常可以通过配置指定需要记录哪些信息、记录日志的时间段、日志文件超过一定大小长度后如何处理:覆盖旧日志或是生成新日志文件并对就日志文件进行归档等。完成配置后,日志文件就会按照要求记录所需的信息,这些信息通常可以分为两类:一类是错误信息,用于记录服务器发生错误的时间、错误类型等,用户身份验证失败等信息也包含在错误日之中;还有一类是访问信息,用于记录客户端对服务器的访问信息。
具体到互联网上的服务器,每天都会生成大量的访问日志,记录来访者的IP地址、访问日期、访问时间、访问资源的名称(URL)、访问资源的大小、来访者使用的协议及版本等。根据这些日志信息,可以分析统计出很多其他信息,例如:用户最常访问的URL、一天中访问服务器的高峰时段等。
本实施例的一个具体例子中,就是对静态资源文件的访问日志进行统计分析,获取内容相同的静态资源文件的访问量,得到如下所示的结果:
内容相同的静态资源文件 | 访问量 |
http://tb.cn/imgextra/i2/692532833/A.jpg | 5000 |
http://tb.cn/imgextra/x3/321459832/B.jpg | 3000 |
...... | ...... |
最后,生成静态资源文件跳转表。
找出了内容相同的静态资源文件,并且获取了所述静态资源文件的访问量,当接收到客户端对静态资源文件的请求时,就可以查询上述信息决定是否执行跳转,从而实现本申请所提供的方法。为了提高对客户端请求的响应速度,可以根据上述信息生成一张静态资源文件跳转表,将内容相同的静态资源文件URL都列在表中,并且指示是否需要跳转到内容相同并且访问量满足设定要求的优选静态资源文件URL。
所述访问量满足设定要求是对选择优选静态资源文件的一种约束,所述设定要求可以是访问量最大、访问量排名前三等具体的要求,当然也可以设定其它的具体要求,其目的在于,将访问量较小的静态资源文件URL跳转到访问量较大的静态资源文件URL。如果存在多个内容相同的静态资源文件,那么根据设定要求的不同,所述访问量满足设定要求的静态资源文件可能是一个,也可能是多个,这些静态资源文件都是优选静态资源文件。
在本实施例的一个具体例子中,预先设定:在多个内容相同的静态资源文件中,选择其中访问量最大的静态资源文件作为优选静态资源文件,并根据该设定生成如下所示的跳转表,根据该表的指示,将对静态资源文件http://tb.cn/imgextra/x3/321459832/B.jpg的访问跳转到与其内容相同、并且访问量最大的优选静态资源文件http://tb.cn/imgextra/i2/692532833/A.jpg:
内容相同的静态资源文件 | 访问量 | 是否跳转及优选静态资源文件 |
http://tb.cn/imgextra/i2/692532833/A.jpg | 5000 | N/A(无需跳转) |
http://tb.cn/imgextra/x3/321459832/B.jpg | 3000 | http://tb.cn/imgextra/i2/692532833/A.jpg |
...... | ...... | ...... |
上表仅仅是示意性的,在其他具体的实施方式中,根据对访问量设定要求的不同,优选静态资源文件也可能是多个,而不止一个;表格的形式也可以不同,例如:不包含“访问次数”列,或者不将内容相同的静态资源文件都列出来,而仅仅包含访问量较小的、需要跳转的静态资源文件;上述跳转信息的具体存储方式也是可选的,可以存储在数据库中,也可以是excel表格文件或者是普通的数据文件,这些都不是本申请的核心,本申请不作具体的限定,只要能够根据跳转信息,查找某个静态资源文件是否有对应的跳转指示就可以了,即:对所述静态资源文件URL的请求是否需要跳转,以及跳转的目标静态资源文件URL。
上述查找内容相同的静态资源文件、分析静态资源文件的访问量、以及根据上述两类信息生成跳转表的过程,都不是一次性完成的,而是需要周期性地执行。因为静态资源文件的数量并不是固定不变的,对这些静态资源文件的访问也是动态变化的,即:访问量也是动态更新的,因此前面描述的步骤也需要定期执行才能比较准确地反映当前系统中存储的静态资源文件的真实情况。但是每隔一定时间进行处理时,对于已经处理过的静态资源文件不需要再重新计算校验值,仅对于未处理过的新增的静态资源文件需要计算校验值,并重新获取、更新内容相同的静态资源文件的访问量,以及根据上述两类信息更新跳转表。
经过上述三个步骤生成了静态资源文件的跳转表后,就可以在接收到客户端对静态资源文件的请求后,查询所述跳转表,从而高效地实现本申请提供的静态资源去重的方法,具体参见步骤102中的描述。
用户通过客户端浏览器访问服务器上的静态资源文件时,会通过HTTP协议发送对所需静态资源文件的请求信息,服务器端接收到所述请求后,返回相应的应答信息。基本的处理流程是这样的:
(1)建立TCP连接,HTTP属于TCP/IP模型中的应用层协议,客户端的浏览器要访问服务器上的某个网页,也就是说浏览器与服务器之间要进行互相通信,首先得建立TCP连接,然后浏览器才能向服务器发送请求信息。
(2)客户端浏览器发送请求,请求中包含客户端所需资源的URL,以及使用的HTTP协议的版本号等信息,例如GET/sample/hello.jsp HTTP/1.1。
(3)服务器返回应答,应答中包含应答码和客户端浏览器请求的数据,其中应答码用于反映服务器处理HTTP请求的状态,例如:2XX类应答码表示客户端请求被正确接收和处理,3XX类应答码表示客户端请求没有成功,客户端浏览器需要采取重定向等进一步的操作。
(4)关闭TCP连接。一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,当然也可以通过在请求或应答的头信息中添加Connection:keep-alive指示,使TCP连接在数据发送后将仍然保持打开状态,可以节省为每个请求建立新连接所需的时间,还节约了网络带宽。
通常,用户通过客户端浏览器请求的网页文件中有很多图片、音乐、电影等静态资源文件时,服务器端返回的信息中并不直接包含这些静态资源文件,而只是提供所述静态资源文件的链接URL,当浏览器进行解释的时候,提取所述静态资源文件的URL,并向服务器发出对静态资源文件的请求信息。因此上述的处理流程通常会执行多次才能返回用户所访问的页面上的所有静态资源文件。
采用本申请提供的静态资源去重方法的系统或服务器,接收到对静态资源文件的请求后,继续执行下面步骤102的处理。
步骤102:判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的静态资源文件,并将其标记为优选静态资源文件。
实现本申请提供的静态资源去重的方法,需要充分利用浏览器缓存特性和HTTP协议对缓存功能的支持。由于客户端浏览器具备缓存特性,因此在判断是否存在优选静态资源文件之前,应该首先确定客户端浏览器是否有所述请求的静态资源文件的缓存文件,然后再进行相应的处理。
所谓浏览器缓存(Browser Caching)特性,是指为了加速浏览,客户端浏览器在本地存储系统上对最近请求过的网络资源(网页、图片、音频等)进行存储,当用户再次请求相同的网络资源时,浏览器就可以从本地存储系统中直接提取并使用所述资源,这样就可以加速页面的浏览。以IE浏览器为例,该浏览器将网络资源的缓存文件都存储在“C:\Documents and Settings\zh2000g\Local Settings\Temporary Internet Files”这样类似的目录里。
使用浏览器的缓存特性,一方面,可以避免为了获取重复的资源,花费再次请求的时间,提高对用户请求的响应速度;另一方面,因为不需要再次从服务器端下载,因此节约了网络带宽资源,提高了网络的效率。
所谓HTTP协议对缓存功能的支持,是指通过HTTP协议中的特殊字段对上述浏览器缓存特性提供支持。因为客户端浏览器再次请求相同的网络资源时,存在这样一种可能,服务器端的该静态资源文件可能已经更新了,那么浏览器通过缓存功能直接将从本地获取的缓存文件提供给用户,那么用户就无法得到该静态资源文件的更新版本,这样的浏览体验虽然速度快,但是由于没有获得最新的信息用户是无法接受的。为了解决这一问题,要求客户端浏览器一侧在本地存储系统中缓存的不只是静态资源文件,还有服务器发过来的该文件的最后服务器修改时间,而HTTP协议则采用If-Modified-Since标签来提供相应的支持,具体原理如下所述。
If-Modified-Since是标准的HTTP请求头标签,客户端浏览器在发送HTTP请求时,把浏览器缓存的静态资源文件的最后修改时间一起发送给服务器端,服务器端接收到该请求后,会把这个时间与服务器上对应文件的最后修改时间进行比较。如果时间一致,那么返回HTTP状态码304(不返回该静态资源文件),客户端浏览器接到之后,就直接使用本地缓存的静态资源文件,例如:在浏览器中直接显示本地缓存的图片;如果时间不一致,就返回HTTP状态码200和更新后的静态资源文件,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中。
当然,如果客户端浏览器没有所请求的静态资源文件的缓存文件,那么浏览器发送的HTTP请求中就没有If-Modified-Since标签,服务器接受请求后就直接返回HTTP状态码200和客户端浏览器请求的静态资源文件。
HTTP的If-Modified-Since头标签与客户端的浏览器缓存功能相互配合,不仅加快了响应速度、节约了网络流量,同时也能够有效地保证用户获取的是最新的网络资源信息。
本申请提供的方法在上述处理流程的基础上,在服务器一侧添加对内容相同的静态资源文件URL的跳转功能,能够更为充分地利用客户端浏览器的本地缓存功能,减少客户端浏览器访问下载重复内容静态资源文件的非必要流量,从而减少对带宽的占用。因此,采用本申请提供的方法,服务器端发现HTTP请求中的缓存文件的最后修改时间与本地相应文件的最后修改时间不一致,或者HTTP请求中没有If-Modified-Since头标签时,不直接返回HTTP状态码200和更新后的静态资源文件,而是判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的优选静态资源文件,并执行相应的处理。
为了提高上述判断过程的效率,在步骤101中已经生成了静态资源文件URL到内容相同并且访问量满足设定要求的静态资源文件URL的跳转表,所述访问量满足设定要求可以是访问量最大、访问量排名前三等具体的要求,当然也可以设定其它的具体要求,其目的在于,将访问量较小的静态资源文件URL跳转到访问量较大的静态资源文件URL。如果存在内容相同的多个静态资源文件,那么根据设定要求的不同,所述访问量能满足设定要求的静态资源文件可能是一个,也可能是多个,这些静态资源文件都是所述的优选静态资源文件。
作为一种优选实施方式,本步骤的判断过程可以通过查询所述跳转表来实现,即:查询跳转表中是否存在HTTP请求中携带的静态资源文件的URL至优选静态资源文件URL的跳转指示,并根据查询结果执行下述步骤103中的相应处理。
步骤103:如果存在所述优选静态资源文件,返回跳转到所述任一优选静态资源文件的应答;否则,返回所述请求的静态资源文件。
本申请提供的静态资源去重的方法,利用了HTTP协议的跳转指令。服务器接收来自客户端浏览器的请求后,会进行相应的处理,不论处理成功与否,服务器都会向客户端返回应答,其中包含的HTTP应答码(也称为状态码),反映了服务器处理HTTP请求的状态。HTTP应答码由3位数字构成,其中首位数字定义了应答码(即:状态码)的类型:
1XX-信息类,表示收到客户端浏览器请求,正在进一步的处理中;
2XX-成功类,表示客户端请求被正确接收,理解和处理例如:200OK;
3XX-重定向类,表示客户端请求没有成功,客户端必须采取进一步的动作;
4XX-客户端错误类,表示客户端提交的请求有错误例如:404NOTFound,意味着请求中所引用的文档不存在;
5XX-服务器错误类,表示服务器不能完成对请求的处理:如500。
其中,应答码302,又称重定向状态码,代表暂时性转移,也被认为是暂时重定向(temporary redirect),告知客户端为满足当前HTTP请求就必须发出另一个HTTP请求,因为所请求的资源不在当前HTTP请求指定的地址,而位于其他地址。通常当一个网页经历短期的URL变化时会使用该应答码。出现这种情况时,服务器不仅返回应答码302,而且在应答中还包含了一个附加的HTTP报头信息:Location,用于指示另一个新的URL地址,通过访问该地址可以找到客户端所需的资源。
本申请提供的静态资源去重的方法,利用了HTTP协议的302状态码。对于客户端浏览器请求的静态资源文件,采用本申请提供的方法,查找在步骤101中生成的跳转表,如果所述跳转表中存在请求的静态资源文件的URL至优选静态资源文件URL的跳转指示,即:存在与请求的静态资源文件内容相同并且访问量更大的静态资源文件,则在返回的HTTP应答中包含302状态码,并且在HTTP报头信息中写入任一优选静态资源文件的URL;否则,按照服务器原有的处理逻辑进行处理,即:返回200状态码和客户端请求的静态资源文件。
采用本申请提供的方法,由于服务器应答返回的是跳转到访问量更大的静态资源文件(也称热文件)URL的跳转指令,而客户端浏览器此前可能已经访问过所述热文件,并且在浏览器本地缓存中并未过期,则浏览器就可以使用本地缓存的所述热文件,不需要再从服务器端下载,从而减少静态资源文件的重复下载,有效节省对带宽资源的占用。
在本实施例的一个具体例子中,生成跳转表时,预先设定的要求是访问量最大,即:将静态资源文件URL跳转到内容相同并且访问量最大的静态资源文件URL,当接收到对静态资源文件http://tb.cn/imgextra/x3/321459832/B.jpg的请求后,本步骤中首先查找跳转表,找到与上述静态资源文件URL对应的跳转指示,即:跳转到http://tb.cn/imgextra/i2/692532833/A.jpg静态资源文件的指示,然后返回HTTP应答码302,并指明需客户端浏览器跳转访问的新URL,即:http://tb.cn/imgextra/i2/692532833/A.jpg。客户端浏览器接收到该应答后,发现本地缓存中存在所述新URL指定的A.jpg文件,并且并未过期,因此客户端浏览器直接显示本地缓存的A.jpg文件就可以了。
本申请提供的静态资源去重的方法,通过将对静态资源文件的访问跳转到与其内容相同并且访问量更大的静态资源文件,同时利用浏览器的本地缓存特性,能够减少静态资源文件的重复下载,有效节省对网络带宽资源的占用。
在上述的实施例中,提供了一种静态资源去重的方法,与之相对应的,本申请还提供一种静态资源去重的装置。请参看图2,其为本申请的一种静态资源去重装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种静态资源去重的装置,包括:请求接收单元201,用于接收获取静态资源文件的请求;优选资源判断单元202,用于判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的静态资源文件,并将其标记为优选静态资源文件;第一应答单元203,用于返回对所述请求的应答,如果存在所述优选静态资源文件,则返回跳转到任一所述优选静态资源文件的应答,否则,返回所述请求的静态资源文件。
可选的,所述内容相同并且访问量满足设定要求的静态资源文件是指,内容相同并且访问量最大的静态资源文件。
可选的,所述装置还包括:相同文件查找单元,用于查找内容相同的静态资源文件;访问量获取单元,用于获取所述内容相同的静态资源文件的访问量。
可选的,所述相同文件查找单元包括:文件遍历子单元,用于遍历所有所述静态资源文件;校验值计算子单元,针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值;相同文件标识子单元,用于将校验值相同的静态资源文件标识为内容相同。
可选的,所述校验值计算子单元,具体用于针对每个静态资源文件,根据所述静态资源文件的内容,采用消息摘要算法生成能够唯一标识所述静态资源文件的校验值。
可选的,所述校验值计算子单元,具体用于针对每个静态资源文件,根据所述静态资源文件的内容,采用MD5、SHA1或SHA256算法中的一种算法生成能够唯一标识所述静态资源文件的校验值。
可选的,所述相同文件查找单元还包括:内容判断子单元,用于判断所述校验值相同的静态资源文件的内容是否相同。
可选的,所述内容判断子单元具体用于,采用读取并比较文件内容的方式判断所述校验值相同的静态资源文件的内容是否相同;或者采用不同的算法再次获取所述静态资源文件内容的新校验值,并通过比较新校验值是否相同,来判断所述校验值相同的静态资源文件的内容是否相同。
可选的,所述访问量获取单元,具体用于统计分析静态资源文件的访问日志,计算所述内容相同的静态资源文件的访问量。
可选的,所述装置还包括:第一跳转表生成单元,用于根据所述内容相同的静态资源文件和所述访问量,生成内容相同的静态资源文件的URL到优选静态资源文件URL跳转指示的跳转表;
相应的,所述优选资源判断单元,具体用于查找所述跳转表中是否存在请求的静态资源文件的URL至优选静态资源文件URL的跳转指示。
可选的,所述装置还包括:缓存判断单元,用于判断所述请求中是否包含请求方有所述静态资源文件的缓存文件的标识;若是,从所述请求中提取所述缓存文件的最后修改时间,与本地存储的相应文件的最后修改时间进行比较,判断所述缓存文件是否是最新的,若是,则返回使用请求方本地缓存文件的应答,不继续执行后续的步骤。
与上述的静态资源去重方法相对应的,本申请还提供一种用于CDN节点的静态资源去重的方法。请参考图3,其为本申请提供的一种用于CDN节点的静态资源去重方法的实施例的流程示意图,本实施例与第一实施例步骤相同的部分不再赘述,下面重点描述不同之处。本申请提供的一种用于CDN节点的静态资源去重方法包括:
步骤301:接收获取静态资源文件的请求。
采用本申请提供的用于CDN节点的静态资源去重的方法,能够减少内容相同的静态资源文件对CDN内存缓存空间的占用,从而有效提高CDN节点的命中率。
所谓CDN,是指内容分发网络(Content Delivery Network,简称CDN),是一种通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
CDN的出现也是根据互联网的发展应运而生的。在传统的互联网内容发布模式中,内容的发布由ICP(Internet Content Provider网络内容服务商)的应用服务器完成,而网络只表现为一个透明的数据传输通道,由于IP网的“尽力而为”的特性使得服务质量保证是依靠在用户和应用服务器之间端到端地提供充分的、远大于实际所需的带宽通道来实现。在这种方式下,不仅大量宝贵的骨干带宽被占用,同时ICP的应用服务器的负载也变得非常重,而用户也经常对服务器的响应速度不满。
因此将内容推到网络的边缘,为用户提供近距离的边缘服务,从而保证服务的质量和整个网络上的访问秩序就成了一种显而易见的选择,而这就是内容分发网络(CDN)服务模式。当用户访问使用CDN服务的网站时,通过授权的DNS域名解析服务器的支持,用户的访问请求将被自动指向距离本地最近的CDN服务器(即:CDN节点)上,以提高对用户访问的响应速度和服务的可用性,改善互联网上的服务质量。
实现CDN的主要技术手段是内存缓存技术,Internet的统计表明,超过80%的用户经常访问的是20%的网站的内容,在这个规律下,采用缓存技术可以处理大部分客户的静态请求,不仅加快了对用户请求的响应,同时也降低了原始服务器的负载。因此,CDN节点通常在其内存中缓存大量的静态资源文件,这些静态资源文件的特点在于更新的频率较低,用缓存技术将文件存储在CDN的边缘节点上,即可满足终端用户就近访问的需求。
缓存命中率是判断CDN加速效果是否显著的重要因素之一,所谓缓存命中率是指用户访问所需静态资源的时候,命中CDN缓存的概率。用户访问一个使用了CDN的域名,请求会被解析到某个CDN节点,如果该CDN节点上已经缓存了用户要请求的静态资源,则直接返回用户所需的静态资源,即:命中缓存;如果该CDN节点上没有缓存相应的静态资源,则会去原始服务器获取,然后再返回给用户,同时把静态资源缓存在该节点上,即:没有命中缓存。所谓CDN节点的命中率,就是指命中缓存的次数与接收到用户请求总次数的比值。缓存的命中率越高,就说明去原始服务器取数据的次数越少,这样,加速效果也就越好。
综上所述,为了实现对客户端访问静态资源的快速响应,CDN节点将很多原始服务器上的静态资源文件都在本节点的内存中进行缓存,因此很有可能存在URL不同、存放目录不同、文件名称也不同、但是内容却完全相同的静态资源文件。而现有的CDN节点是依据包含静态资源文件名的URL进行相关的缓存处理,并没有一种机制检测这些文件的内容是否一致,那么内容相同的静态资源文件就会重复占用CDN节点的内存缓存空间,影响命中率。采用本申请提供的方法,可以有效解决这一问题。
采用本申请提供的用于CDN节点的静态资源去重的方法,当CDN节点接收到对静态资源文件的请求后,判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件,并进行相应的处理。为了能够更为高效地实现本申请提供的方法,可以预先执行查找内容相同的静态资源文件、在内容相同的静态资源文件中指定代表文件、以及生成静态资源文件跳转表的操作。
首先,查找内容相同的静态资源文件。
在本申请提供的用于CDN节点的静态资源去重的方法中,所述静态资源包括但不限于图片文件、文本文件、音频文件、视频文件、动画文件、PPT文件、Word文件、Excel文件、PDF文件、软件包文件或压缩包文件等各种不依赖于程序动态生成的文件。
本申请提供的方法,根据计算校验值判断静态资源文件的内容是否相同,即:遍历所有静态资源文件,然后针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值,并将校验值相同的静态资源文件标识为内容相同。
所述统一的算法是指杂凑算法(又称摘要算法、哈希算法),比较常用的杂凑算法有MD5、SHA1、SHA256等。在本实施例的一个具体例子中,采用的是MD5算法。有关该算法的说明,以及解决碰撞的几种可能的方式,请参见实施例一中的相应描述,此处不再赘述。
其次,将内容相同的所有静态资源文件中的一个特定文件指定为所述内容相同的所有静态资源文件的代表文件。
在上面的步骤中,通过计算校验值找到了内容相同的静态资源文件并进行了标识,这些静态资源文件虽然可能URL不同、存储路径不同、文件名称也不同,但是它们的内容是相同的,对于请求这些静态资源的客户端来说,并不关心这些形式上的不同,只要内容相同,在客户端的浏览器上就可以正确地显示用户所需的图片、文档、或者播放视频、音频等,因此只需要在这些内容相同的静态资源文件中选择一个特定的文件作为代表文件,后续所有的对内容相同的静态资源文件的访问或者存储等操作,都可以使用代表文件来完成。
代表文件的指定,可以是任意的,即:在内容相同的静态资源文件中任意指定一个文件为代表文件;也可以采取某些策略来指定,例如:在内容相同的静态资源文件中指定其中访问量最大的静态资源文件为代表文件;或者,根据需要采用其他策略指定。
在本实施例的一个具体例子中,在找出所有内容相同的静态资源文件后,将其中访问量最大的静态资源文件指定为代表文件。为了实现这一指定,需要获取内容相同的静态资源文件的访问量,在本实施例的一个具体例子中,通过统计分析静态资源文件的访问日志,计算所述内容相同的静态资源文件的访问量。相关的说明请参见实施例一中的相关描述。
最后,生成静态资源文件跳转表。
通过上面的步骤,找出了内容相同的静态资源文件,并且为内容相同的静态资源文件指定了代表文件,为了提高对客户端请求的响应速度,可以根据上述信息生成一张静态资源文件跳转表,将内容相同的静态资源文件URL都列在表中,并且指示是否需要跳转到被指定为代表文件的静态资源文件URL。
本申请提供的用于CDN节点的静态资源去重的方法,通过对内容相同的静态资源文件进行复用,从而达到节省CDN节点内存空间的目的。通过上述生成的静态资源文件跳转表,可以看到,所有内容相同的静态资源文件URL都指向一个被指定为代表文件的静态资源文件URL,由此可见,客户端对内容相同的所有静态资源文件的访问请求,可以只使用被指定为代表文件的静态资源文件即可满足,因此在CDN节点的内存中不用缓存内容相同的所有静态资源文件,而只需要在内存中缓存被指定为代表文件的静态资源文件就可以了。每个CDN节点的内存空间是有限的,采用本申请提供的方法,静态资源文件在CDN节点中的内存占用量就会显著下降,意味着可以节省更多的内存空间缓存其它更多的静态资源文件,因此能够有效提高CDN命中率,减少去原始服务器取数据的处理开销。
在本实施例的一个具体的例子中,在内容相同的所有静态资源文件中,指定其中访问量最大的静态资源文件作为代表文件,因此本步骤中生成的跳转表,包含的就是内容相同的静态资源文件URL到访问量最大的被指定为代表文件的静态资源文件URL的跳转指示,从而不仅能够节省CDN节点的内存空间,还能够获得节省网络带宽资源的有益效果,具体请参见步骤302和步骤303中的说明。
在本实施例中,采用生成跳转表的方式,在跳转表中包含了内容相同的所有静态资源文件URL到被指定为代表文件的静态资源文件URL的跳转指示,在其他实施方式中,可以不采用生成跳转表的方式,只要将内容相同的所有静态资源文件URL都指向被指定为代表文件的静态资源文件URL,即:建立起来这样一种对应关系即可,类似的改动都不偏离本申请的核心,同样可以实现本申请提供的技术方案,都在本申请的保护范围内。
步骤302:判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件。
实现本申请提供的用于CDN节点的静态资源去重的方法,还需要利用浏览器缓存特性和HTTP协议对缓存功能的支持。由于客户端浏览器具备缓存特性,因此接收到客户端对静态资源文件的请求后,应该首先确定客户端浏览器是否有所述请求的静态资源文件的缓存文件,然后再进行相应的处理。关于浏览器缓存(Browser Caching)特性和HTTP协议对缓存特性的支持,请参见实施例一中的相关描述,此处不再赘述。
采用本申请提供的方法,服务器端发现HTTP请求中的缓存文件的最后修改时间与本地相应文件的最后修改时间不一致,或者HTTP请求中没有If-Modified-Since头标签时,不直接返回HTTP状态码200和更新后的静态资源文件,而是判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件,并执行相应的处理。
作为一种优选实施方式,在步骤301中已经生成了静态资源文件URL到内容相同并且被指定为代表文件的静态资源文件URL的跳转表,本步骤的判断过程可以通过查询所述跳转表来实现,即:查询跳转表中是否存在HTTP请求中携带的静态资源文件的URL至被指定为代表文件的静态资源文件URL的跳转指示,并根据查询结果执行下述步骤303中的相应处理。
步骤303:如果存在所述被指定为代表文件的静态资源文件,返回跳转到所述被指定为代表文件的静态资源文件的应答;若否,返回所述请求的静态资源文件;
本申请提供的静态资源去重的方法,利用了HTTP协议的302状态码,关于HTTP协议的302状态码的说明,请参见实施例一中相应部分的描述。
对于客户端浏览器请求的静态资源文件,采用本申请提供的方法,查找在步骤301中生成的跳转表,如果所述跳转表中存在请求的静态资源文件URL至被指定为代表文件的静态资源文件URL的跳转指示,则在返回的HTTP应答中包含302状态码,并且在HTTP报头信息中写入被指定为代表文件的静态资源文件的URL;否则,按照服务器原有的处理逻辑进行处理,即:返回200状态码和客户端请求的静态资源文件。
作为一种优选实施方式,在步骤301中,指定访问量最大的静态资源文件作为内容相同的静态资源文件的代表文件,因此本步骤中返回的包含302状态码的应答,是告知客户端浏览器跳转到访问量最大的静态资源文件(也称热文件)URL,而客户端浏览器此前可能已经访问过所述热文件,并且在浏览器本地缓存中并未过期,则浏览器就可以使用本地缓存的所述热文件,不需要再从服务器端下载,从而减少静态资源文件的重复下载,有效节省对带宽资源的占用。
本申请提供的用于CDN节点的静态资源去重的方法,一方面,通过为内容相同的静态资源文件指定代表文件,并且仅在内存中存放代表文件,能够减少内容相同的静态资源文件对CDN内存空间的占用,从而有效提高CDN节点的命中率,减少CDN节点不必要的处理开销;另一方面,通过将访问量最大的静态资源文件指定为内容相同的静态资源文件的代表文件,从而将对静态资源文件的访问跳转到内容相同并且访问量最大的静态资源文件,能够减少静态资源文件的重复下载,有效节省对带宽资源的占用。
在上述的实施例中,提供了一种用于CDN节点的静态资源去重的方法,与之相对应的,本申请还提供一种用于CDN节点的静态资源去重的装置。请参看图4,其为本申请一种用于CDN节点的静态资源去重装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种用于CDN节点的静态资源去重的装置,包括:请求接收单元401,用于接收获取静态资源文件的请求;代表文件判断单元402,用于判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件;第二应答单元403,用于返回对所述请求的应答;如果存在所述指定为代表文件的静态资源文件,则返回跳转到所述被指定为代表文件的静态资源文件的应答,否则,返回所述请求的静态资源文件。
可选的,所述装置还包括:相同文件查找单元,用于查找内容相同的静态资源文件;第一代表文件指定单元,用于将内容相同的所有静态资源文件中的一个特定文件指定为所述内容相同的所有静态资源文件的代表文件。
可选的,所述相同文件查找单元包括:文件遍历子单元,用于遍历所有所述静态资源文件;校验值计算子单元,针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值;相同文件标识子单元,用于将校验值相同的静态资源文件标识为内容相同。
可选的,所述校验值计算子单元,具体用于针对每个静态资源文件,根据所述静态资源文件的内容,采用消息摘要算法生成能够唯一标识所述静态资源文件的校验值。
可选的,所述校验值计算子单元,具体用于针对每个静态资源文件,根据所述静态资源文件的内容,采用MD5、SHA1或SHA256算法中的一种算法生成能够唯一标识所述静态资源文件的校验值。
可选的,所述相同文件查找单元还包括:内容判断子单元,用于判断所述校验值相同的静态资源文件的内容是否相同。
可选的,所述内容判断子单元具体用于,采用读取并比较文件内容的方式判断所述校验值相同的静态资源文件的内容是否相同;或者采用不同的算法再次获取所述静态资源文件内容的新校验值,并通过比较新校验值是否相同,来判断所述校验值相同的静态资源文件的内容是否相同。
可选的,所述装置还包括:第二跳转表生成单元,用于生成内容相同静态资源文件的URL到所述被指定为代表文件的静态资源文件URL跳转指示的跳转表;
相应的,所述代表文件判断单元,具体用于查找所述跳转表中是否存在请求的静态资源文件的URL至所述被指定为代表文件的静态资源文件URL的跳转指示。
可选的,所述第一代表文件指定单元具体用于,将内容相同的所有静态资源文件中的访问量最大的静态资源文件,指定为所述内容相同的所有静态资源文件的代表文件。
可选的,所述装置还包括:访问量获取单元,获取所述内容相同的静态资源文件的访问量。
可选的,所述装置还包括:缓存判断单元,用于判断所述请求中是否包含请求方有所述静态资源文件的缓存文件的标识;若是,从所述请求中提取所述缓存文件的最后修改时间,与本地存储的相应文件的最后修改时间进行比较,判断所述缓存文件是否是最新的,若是,则返回使用请求方本地缓存文件的应答,不继续执行后续的步骤。
本申请还提供一种用于静态资源去重的静态资源管理方法。请参考图5,其为本申请提供的一种用于静态资源去重的静态资源管理方法的实施例的流程示意图,本实施例与第一和/或第三实施例步骤相同的部分不再赘述,下面重点描述不同之处。本申请提供的一种用于静态资源去重的静态资源管理方法包括:
步骤501:查找内容相同的静态资源文件。
在本申请提供的用于静态资源去重的静态资源管理方法中,所述静态资源包括但不限于图片文件、文本文件、音频文件、视频文件、动画文件、PPT文件、Word文件、Excel文件、PDF文件、软件包文件或压缩包文件等各种不依赖于程序动态生成的文件。
本申请提供的方法,通过计算校验值判断静态资源文件的内容是否相同,即:遍历所有静态资源文件,然后针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值,并将校验值相同的静态资源文件标识为内容相同。
所述统一的算法是指杂凑算法(又称摘要算法、哈希算法),比较常用的杂凑算法有MD5、SHA1、SHA256等。在本实施例的一个具体例子中,采用的是MD5算法。有关该算法的说明,以及解决碰撞的几种可能的方式,请参见实施例一中的相应描述,此处不再赘述。
步骤502:将内容相同的所有静态资源文件中的一个特定文件指定为所述内容相同的所有静态资源文件的代表文件。
在上面的步骤中,通过计算校验值找到了内容相同的静态资源文件并进行了标识,这些静态资源文件虽然可能URL不同、存储路径不同、文件名称也不同,但是它们的内容是相同的,对于请求这些静态资源的客户端来说,并不关心这些形式上的不同,只要内容相同,在客户端的浏览器上就可以正确地显示用户所需的图片、文档、或者播放视频、音频等,因此只需要在这些内容相同的静态资源文件中选择一个特定的文件作为代表文件,后续所有的对内容相同的静态资源文件的访问或者存储等操作,都可以使用代表文件来完成。
代表文件的指定,可以是任意的,即:在内容相同的静态资源文件中任意指定一个文件为代表文件;也可以采取某些策略来指定,例如:在内容相同的静态资源文件中指定其中访问量最大的静态资源文件为代表文件;或者,根据需要采用其他策略指定。
步骤503:生成内容相同静态资源文件URL到所述被指定为代表文件的静态资源文件URL跳转指示的跳转表。
通过步骤502和503,找出了内容相同的静态资源文件,并且为内容相同的静态资源文件指定了代表文件,在本步骤中根据上述信息生成一张内容相同静态资源文件URL到所述被指定为代表文件的静态资源文件URL跳转指示的跳转表。
在本实施例中,采用生成跳转表的方式,在其他实施方式中,可以不采用生成跳转表的方式,只要将内容相同的所有静态资源文件URL都指向被指定为代表文件的静态资源文件URL,即:建立起来这样一种对应关系即可,类似的改动都不偏离本申请的核心,同样可以实现本申请提供的技术方案,都在本申请的保护范围之内。
采用本申请提供的用于静态资源去重的静态资源管理方法,通过查找内容相同的静态资源文件、并为内容相同的静态资源文件指定代表文件的方式,实现对内容相同的静态资源文件的复用,从而能够更为有效地管理静态资源。
在静态资源服务器上实施本申请提供的用于静态资源去重的静态资源管理方法,通过将访问量大的静态资源文件指定为代表文件,并生成内容相同的静态资源文件URL到被指定为代表文件的静态资源文件URL的跳转表,从而将客户端对静态资源文件的请求跳转到内容相同但是访问量更大的静态资源文件,与客户端浏览器的本地缓存功能相配合,能够有效减少对网络带宽资源的占用。
在CDN节点上实施本申请提供的用于静态资源去重的静态资源管理方法,由于所有内容相同的静态资源文件URL都指向被指定为代表文件的静态资源文件URL,因此在CDN节点内存中不用缓存内容相同的所有静态资源文件,而只需要缓存被指定为代表文件的静态资源文件,静态资源文件在CDN节点中的内存占用量就会显著下降,因此能够有效提高CDN节点的命中率。另外,如果将访问量较大的静态资源文件指定为代表文件,同样也能够取得节省网络带宽资源的有益效果。
在上述的实施例中,提供了一种用于静态资源去重的静态资源管理方法,与之相对应的,本申请还提供一种用于静态资源去重的静态资源管理装置。请参看图6,其为本申请一种用于静态资源去重的静态资源管理装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种用于静态资源去重的静态资源管理装置,包括:相同文件查找单元601,用于查找内容相同的静态资源文件;代表文件指定单元602,用于将内容相同的所有静态资源文件中的一个特定文件指定为所述内容相同的所有静态资源文件的代表文件;跳转表生成单元603,用于生成内容相同静态资源文件URL到所述代表文件URL的跳转表。
可选的,所述相同文件查找单元包括:文件遍历子单元,用于遍历所有所述静态资源文件;校验值计算子单元,针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值;相同文件标识子单元,用于将校验值相同的静态资源文件标识为内容相同。
可选的,所述校验值计算子单元,具体用于针对每个静态资源文件,根据所述静态资源文件的内容,采用消息摘要算法生成能够唯一标识所述静态资源文件的校验值。
可选的,所述校验值计算子单元,具体用于针对每个静态资源文件,根据所述静态资源文件的内容,采用MD5、SHA1或SHA256算法中的一种算法生成能够唯一标识所述静态资源文件的校验值。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (26)
1.一种静态资源去重的方法,其特征在于,包括:
接收获取静态资源文件的请求;
查找内容相同的静态资源文件;
获取所述内容相同的静态资源文件的访问量;
判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的静态资源文件,并将内容相同并且访问量满足设定要求的静态资源文件标记为优选静态资源文件;
根据所述内容相同的静态资源文件和所述访问量,生成内容相同的静态资源文件的URL到优选静态资源文件URL跳转指示的跳转表;
若是,返回跳转到所述任一优选静态资源文件的应答;若否,返回所述请求的静态资源文件;其中,若是,返回跳转到所述任一优选静态资源文件的应答;若否,返回所述请求的静态资源文件,具体是指:若所述跳转表中存在所述跳转指示;返回跳转到所述任一优选静态资源文件的应答;若所述跳转表中不存在所述跳转指示,返回所述请求的静态资源文件。
2.根据权利要求1所述的静态资源去重的方法,其特征在于,所述内容相同并且访问量满足设定要求的静态资源文件是指,内容相同并且访问量最大的静态资源文件。
3.根据权利要求1或2所述的静态资源去重的方法,其特征在于,所述查找内容相同的静态资源文件包括:
遍历所有所述静态资源文件;
针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值;
将校验值相同的静态资源文件标识为内容相同。
4.根据权利要求3所述的静态资源去重的方法,其特征在于,所述统一的算法为消息摘要算法。
5.根据权利要求4所述的静态资源去重的方法,其特征在于,所述消息摘要算法包括MD5、SHA1或SHA256算法。
6.根据权利要求5所述的静态资源去重的方法,其特征在于,在将所述校验值相同的静态资源文件标识为内容相同之前,先判断所述校验值相同的静态资源文件的内容是否相同;
若是,将所述校验值相同的静态资源文件标识为内容相同。
7.根据权利要求6所述的静态资源去重的方法,其特征在于,所述判断所述校验值相同的静态资源文件的内容是否相同,包括:
采用读取并比较文件内容的方式判断所述校验值相同的静态资源文件的内容是否相同;
或者,采用不同的算法再次获取所述静态资源文件内容的新校验值,并通过比较新校验值是否相同,来判断所述校验值相同的静态资源文件的内容是否相同。
8.根据权利要求1或2所述的静态资源去重的方法,其特征在于,所述获取所述内容相同的静态资源文件的访问量包括:
统计分析静态资源文件的访问日志,计算所述内容相同的静态资源文件的访问量。
9.根据权利要求1或2所述的静态资源去重的方法,其特征在于,在所述接收获取静态资源文件的请求之后,首先执行下述步骤:
判断所述请求中是否包含请求方有所述静态资源文件的缓存文件的标识;
若是,从所述请求中提取所述缓存文件的最后修改时间,与本地存储的相应文件的最后修改时间进行比较,判断所述缓存文件是否是最新的,若是,则返回使用请求方本地缓存文件的应答,不继续执行后续的步骤。
10.根据权利要求1或2所述的静态资源去重的方法,其特征在于,所述静态资源文件包括:图片文件、文本文件、音频文件、视频文件、动画文件、PPT文件、Word文件、Excel文件、PDF文件、软件包文件或压缩包文件。
11.一种静态资源去重的装置,其特征在于,包括:
请求接收单元,用于接收获取静态资源文件的请求;
相同文件查找单元,用于查找内容相同的静态资源文件;
访问量获取单元,用于获取所述内容相同的静态资源文件的访问量;
优选资源判断单元,用于判断是否存在与请求的静态资源文件内容相同并且访问量满足设定要求的静态资源文件,并将其标记为优选静态资源文件;
第一跳转表生成单元,用于根据所述内容相同的静态资源文件和所述访问量,生成内容相同的静态资源文件的URL到优选静态资源文件URL跳转指示的跳转表;
第一应答单元,用于返回对所述请求的应答;如果存在所述优选静态资源文件,则返回跳转到任一所述优选静态资源文件的应答,否则,返回所述请求的静态资源文件;其中,用于返回对所述请求的应答,具体是指:如果所述跳转表中存在所述跳转指示;返回跳转到所述任一优选静态资源文件的应答;如果所述跳转表中不存在所述跳转指示,返回所述请求的静态资源文件。
12.一种用于CDN节点的静态资源去重的方法,其特征在于,包括:
接收获取静态资源文件的请求;
查找内容相同的静态资源文件;
将内容相同的所有静态资源文件中的访问量最大的静态资源文件,指定为所述内容相同的所有静态资源文件的代表文件;
生成内容相同静态资源文件的URL到所述被指定为代表文件的静态资源文件URL跳转指示的跳转表;
判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件;若是,返回跳转到所述被指定为代表文件的静态资源文件的应答;若否,返回所述请求的静态资源文件;
其中,所述判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件,具体是指:查找所述跳转表中是否存在请求的静态资源文件的URL至所述被指定为代表文件的静态资源文件URL的跳转指示;
所述代表文件,是指内容相同的所有静态资源文件中访问量最大的静态资源文件。
13.根据权利要求12所述的静态资源去重的方法,其特征在于,所述查找内容相同的静态资源文件包括:
遍历所述所有静态资源文件;
针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值;
将校验值相同的静态资源文件标识为内容相同。
14.根据权利要求13所述的静态资源去重的方法,其特征在于,所述统一的算法为消息摘要算法。
15.根据权利要求14所述的静态资源去重的方法,其特征在于,所述消息摘要算法包括MD5、SHA1或SHA256算法。
16.根据权利要求14或15所述的静态资源去重的方法,其特征在于,在将所述校验值相同的静态资源文件标识为内容相同之前,先判断所述校验值相同的静态资源文件的内容是否相同;
若是,将所述校验值相同的静态资源文件标识为内容相同。
17.根据权利要求16所述的静态资源去重的方法,其特征在于,所述判断所述校验值相同的静态资源文件的内容是否相同,包括:
采用读取并比较文件内容的方式判断所述校验值相同的静态资源文件的内容是否相同;
或者,采用不同的校验算法再次获取所述静态资源文件内容的新校验值,并通过比较新校验值是否相同,来判断所述校验值相同的静态资源文件的内容是否相同。
18.根据权利要求12所述的静态资源去重的方法,其特征在于,所述方法还包括:
获取所述内容相同的静态资源文件的访问量。
19.根据权利要求12所述的静态资源去重的方法,其特征在于,在所述接收获取静态资源文件的请求之后,首先执行下述步骤:
判断所述请求中是否包含请求方有所述静态资源文件的缓存文件的标识;
若是,从所述请求中提取所述缓存文件的最后修改时间,与本地存储的相应文件的最后修改时间进行比较,判断所述缓存文件是否是最新的,若是,则返回使用请求方本地缓存文件的应答,不继续执行后续的步骤。
20.根据权利要求12所述的静态资源去重的方法,其特征在于,所述静态资源文件包括:图片文件、文本文件、音频文件、视频文件、动画文件、PPT文件、Word文件、Excel文件、PDF文件、软件包文件或压缩包文件。
21.一种用于CDN节点的静态资源去重的装置,其特征在于,包括:
请求接收单元,用于接收获取静态资源文件的请求;
相同文件查找单元,用于查找内容相同的静态资源文件;
访问量获取单元,获取所述内容相同的静态资源文件的访问量;第一代表文件指定单元,用于将内容相同的所有静态资源文件中的访问量最大的静态资源文件,指定为所述内容相同的所有静态资源文件的代表文件;
代表文件判断单元,用于判断是否存在与请求的静态资源文件内容相同并且被指定为代表文件的静态资源文件;
第二跳转表生成单元,用于生成内容相同静态资源文件的URL到所述被指定为代表文件的静态资源文件URL跳转指示的跳转表;所述代表文件判断单元,具体用于查找所述跳转表中是否存在请求的静态资源文件的URL至所述被指定为代表文件的静态资源文件URL的跳转指示;
第二应答单元,用于返回对所述请求的应答;如果存在所述指定为代表文件的静态资源文件,则返回跳转到所述被指定为代表文件的静态资源文件的应答,否则,返回所述请求的静态资源文件。
22.一种用于静态资源去重的静态资源管理方法,其特征在于,包括:
查找内容相同的静态资源文件;
将内容相同的所有静态资源文件中的访问量最大的静态资源文件指定为所述内容相同的所有静态资源文件的代表文件;
生成内容相同静态资源文件URL到被指定为代表文件的静态资源文件URL跳转指示的跳转表。
23.根据权利要求22所述的用于静态资源去重的静态资源管理方法,其特征在于,所述查找内容相同的静态资源文件包括:
遍历所述所有静态资源文件;
针对每个静态资源文件,根据所述静态资源文件的内容,采用统一的算法生成能够唯一标识所述静态资源文件的校验值;
将校验值相同的静态资源文件标识为内容相同。
24.根据权利要求23所述的用于静态资源去重的静态资源管理方法,其特征在于,所述统一的算法为消息摘要算法。
25.根据权利要求24所述的用于静态资源去重的静态资源管理方法,其特征在于,所述消息摘要算法包括MD5、SHA1或SHA256算法。
26.一种用于静态资源去重的静态资源管理装置,其特征在于,包括:
相同文件查找单元,用于查找内容相同的静态资源文件;
代表文件指定单元,用于将内容相同的所有静态资源文件中的访问量最大的静态资源文件指定为所述内容相同的所有静态资源文件的代表文件;
跳转表生成单元,用于生成内容相同静态资源文件URL到所述代表文件URL跳转指示的跳转表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310688095.6A CN104714965B (zh) | 2013-12-16 | 2013-12-16 | 静态资源去重方法、静态资源管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310688095.6A CN104714965B (zh) | 2013-12-16 | 2013-12-16 | 静态资源去重方法、静态资源管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104714965A CN104714965A (zh) | 2015-06-17 |
CN104714965B true CN104714965B (zh) | 2019-10-18 |
Family
ID=53414309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310688095.6A Active CN104714965B (zh) | 2013-12-16 | 2013-12-16 | 静态资源去重方法、静态资源管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104714965B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068850B (zh) * | 2015-09-11 | 2018-08-10 | 厦门喜鱼网络科技有限公司 | 一种资源包加载装置、方法和计算设备 |
CN105512280B (zh) * | 2015-12-07 | 2019-05-21 | 福建天晴数码有限公司 | 缓存站点文件的方法及其系统 |
CN105530297B (zh) * | 2015-12-11 | 2019-03-08 | 北京奇虎科技有限公司 | 一种网页资源包上传方法和装置 |
CN105653648A (zh) * | 2015-12-28 | 2016-06-08 | 北京金山安全软件有限公司 | 一种文件获取方法、装置及电子设备 |
CN107465707B (zh) * | 2016-06-03 | 2021-02-02 | 阿里巴巴集团控股有限公司 | 一种内容分发网络的内容刷新方法及装置 |
CN107704465B (zh) * | 2016-08-08 | 2021-11-16 | 腾讯科技(深圳)有限公司 | 静态资源更新方法以及静态资源管理系统 |
CN106708936A (zh) * | 2016-11-21 | 2017-05-24 | 北京天融信网络安全技术有限公司 | 一种网页优化方法及装置 |
CN106713479B (zh) * | 2017-01-06 | 2020-04-10 | 南京铱迅信息技术股份有限公司 | 一种基于云端的文件去重方法 |
CN108347479B (zh) * | 2018-01-26 | 2020-12-18 | 政采云有限公司 | 基于内容分发网络的多仓库静态资源上传方法和系统 |
CN109739812A (zh) * | 2018-12-29 | 2019-05-10 | 北京金山安全软件有限公司 | 一种显示资源文件的方法及装置 |
CN110866198B (zh) * | 2019-09-27 | 2022-10-28 | 上海硬通网络科技有限公司 | 静态资源缓存方法、系统、装置、计算机设备和存储介质 |
CN110912769B (zh) * | 2019-11-12 | 2021-08-10 | 中移(杭州)信息技术有限公司 | Cdn缓存命中率统计方法、系统、网络设备及存储介质 |
CN113515328A (zh) * | 2020-04-09 | 2021-10-19 | 北京沃东天骏信息技术有限公司 | 页面渲染的方法、装置、电子设备和存储介质 |
CN113301081B (zh) * | 2020-06-11 | 2024-05-03 | 阿里巴巴集团控股有限公司 | 一种针对内容分发网路的数据处理方法、装置、电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719936A (zh) * | 2009-12-09 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 提供文件下载服务的方法、装置及缓存系统 |
CN101882216A (zh) * | 2009-05-08 | 2010-11-10 | 成都市华为赛门铁克科技有限公司 | 构建数据指纹的方法、装置及电子设备 |
CN103036967A (zh) * | 2012-12-10 | 2013-04-10 | 北京奇虎科技有限公司 | 一种下载管理设备、方法及数据下载系统 |
CN103200278A (zh) * | 2013-04-25 | 2013-07-10 | 网宿科技股份有限公司 | 源站文件更新发布方法及缓存文件更新方法 |
CN103218434A (zh) * | 2013-04-15 | 2013-07-24 | 北京小米科技有限责任公司 | 一种加载静态资源的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8041814B2 (en) * | 2001-06-28 | 2011-10-18 | International Business Machines Corporation | Method, system and computer program product for hierarchical load balancing |
CN102143199A (zh) * | 2010-10-19 | 2011-08-03 | 华为技术有限公司 | 获取内容的方法、节点及内容网络 |
CN102789494B (zh) * | 2012-07-11 | 2015-08-05 | 深圳市宜搜科技发展有限公司 | 一种互联网资源去重的处理方法及系统 |
CN102821148A (zh) * | 2012-08-02 | 2012-12-12 | 深信服网络科技(深圳)有限公司 | Cifs应用优化方法及装置 |
-
2013
- 2013-12-16 CN CN201310688095.6A patent/CN104714965B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882216A (zh) * | 2009-05-08 | 2010-11-10 | 成都市华为赛门铁克科技有限公司 | 构建数据指纹的方法、装置及电子设备 |
CN101719936A (zh) * | 2009-12-09 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 提供文件下载服务的方法、装置及缓存系统 |
CN103036967A (zh) * | 2012-12-10 | 2013-04-10 | 北京奇虎科技有限公司 | 一种下载管理设备、方法及数据下载系统 |
CN103218434A (zh) * | 2013-04-15 | 2013-07-24 | 北京小米科技有限责任公司 | 一种加载静态资源的方法和装置 |
CN103200278A (zh) * | 2013-04-25 | 2013-07-10 | 网宿科技股份有限公司 | 源站文件更新发布方法及缓存文件更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104714965A (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104714965B (zh) | 静态资源去重方法、静态资源管理方法及装置 | |
CN104077310B (zh) | 加载资源文件的方法、设备和系统 | |
US7966383B2 (en) | Client-server systems and methods for accessing metadata information across a network using proxies | |
US8180376B1 (en) | Mobile analytics tracking and reporting | |
CN108287839A (zh) | 一种页面加载方法和设备 | |
CN100562873C (zh) | 获取网页中网页元素的系统及方法 | |
US9690568B2 (en) | Client-side script bundle management system | |
CN108259425A (zh) | 攻击请求的确定方法、装置及服务器 | |
CN103118007B (zh) | 一种用户访问行为的获取方法和系统 | |
CN109542613A (zh) | 一种cdn节点内服务调度的分配方法、装置及存储介质 | |
CN106294379A (zh) | 一种页面的加载方法、装置和系统 | |
JP2010529574A (ja) | P2pネットワーク上で広告をするためのシステム及び方法 | |
BRPI0715701A2 (pt) | mÉtodo de coleta de dados em uma rede distribuÍda | |
RU2015156798A (ru) | Система и способ пуша (push) рекламы, основанные на домашнем шлюзе | |
US11416564B1 (en) | Web scraper history management across multiple data centers | |
CN107465722A (zh) | Web访问的实现方法和装置 | |
CN103001964A (zh) | 一种局域网环境下的缓存加速方法 | |
US8352442B2 (en) | Determination of an updated data source from disparate data sources | |
CN107105336A (zh) | 数据处理方法及数据处理装置 | |
CN107211035A (zh) | 用于在内容递送网络中监测服务的方法和网络节点 | |
CN111161006A (zh) | 一种区块链信用服务方法、系统及存储介质 | |
CN105074688B (zh) | 使用对等节点图的基于流的数据去重复 | |
CN109474569A (zh) | 一种检测web缓存欺骗的方法及系统 | |
CN107291826A (zh) | 文件搜索处理方法及装置 | |
US20140006916A1 (en) | Pre-reading method and apparatus |
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 |