CN116996578A - 基于内容分发网络的资源处理方法和装置 - Google Patents
基于内容分发网络的资源处理方法和装置 Download PDFInfo
- Publication number
- CN116996578A CN116996578A CN202311254278.7A CN202311254278A CN116996578A CN 116996578 A CN116996578 A CN 116996578A CN 202311254278 A CN202311254278 A CN 202311254278A CN 116996578 A CN116996578 A CN 116996578A
- Authority
- CN
- China
- Prior art keywords
- resource
- cache
- distribution network
- content distribution
- content
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 230000004044 response Effects 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims abstract description 45
- 239000012634 fragment Substances 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 33
- 238000005192 partition Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 abstract description 11
- 230000003068 static effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Abstract
本发明涉及计算机技术领域,提供一种基于内容分发网络的资源处理方法和装置,该方法包括:识别资源访问请求中的位置标识,以判断是否是首次访问内容分发网络的缓存服务;在确定是非首次访问内容分发网络的缓存服务时,根据所识别的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,向客户端返回响应信息。在确定是首次访问内容分发网络的缓存服务、且未查找到所识别的位置标识匹配成功的已有公共缓存标识时,将资源访问请求转发给源站,并接收来自源站的包含响应信息头的资源信息以转发给客户端。本发明优化了通过内容分发网络所进行的静态资源缓存过程,降低了首包时间指标。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于内容分发网络的资源处理方法和装置。
背景技术
随着社会的发展,大多数地域都接入了互联网,但是不同地域的用户访问同一网站的响应速度是不同的。为了提高网站对用户访问的响应速度,出现了内容分发网络(Content Delivery Network,CDN)。CDN是构建在现有网络基础之上的智能虚拟网络,它借助于各种缓存服务器,使得用户能以最快的速度,从最接近用户的地方获得所需的信息,很大程度上降低网络拥塞,提高用户访问的响应速度和命中率。CDN中很重要的一个部分是缓存服务器从CDN源站拉取资源并缓存。当用户访问时,便可以从缓存服务器中读取并处理资源进行反馈。目前,缓存服务器对拉取的资源的处理方式是按照资源分片的方式,即缓存服务器先按照一定的固定大小将资源分片,然后对各分片进行压缩等处理后存储至缓存服务器的各个单位中。但随着分片的访问热度(如次数)的增加,按照上述缓存服务器的资源处理方式,首分片的处理效率低,会相应降低缓存服务器对用户访问的响应速度,影响用户体验。
因此,有必要提供一种新的基于内容分发网络的资源处理方法,以解决上述问题。
发明内容
本发明意在提供一种基于内容分发网络的资源处理方法和装置,以解决现有技术中存在首分片的处理效率低,会相应降低缓存服务器对用户访问的响应速度以及影响用户体验等的技术问题,本发明要解决的技术问题通过以下技术方案来实现。
本发明第一方面提出一种基于内容分发网络的资源处理方法,包括:接收客户端的资源访问请求,所述资源访问请求包括具有位置标识的信息头、待访问资源网络地址;识别所述资源访问请求中的位置标识,并根据所识别的位置标识判断是否是首次访问内容分发网络的缓存服务;在确定是非首次访问内容分发网络的缓存服务时,根据所识别的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,向客户端返回响应信息;在确定是首次访问内容分发网络的缓存服务、且未查找到所识别的位置标识匹配成功的已有公共缓存标识时,将所述资源访问请求转发给源站,并接收来自源站的包含响应信息头的资源信息以转发给客户端,其中,在首次访问内容分发网络的缓存服务时,从源站返回的响应信息头和当前资源内容进行拆分形成多个缓存,并形成公共缓存标识以表征同一资源所对应的资源文件。
根据可选的实施方式,所述在首次访问内容分发网络的缓存服务时,从源站返回的响应信息头和当前资源内容进行拆分形成多个缓存,并形成公共缓存标识以表征同一资源所对应的资源文件,包括:将响应信息头与资源内容拆分成至少两个缓存,响应信息头形成的公共缓存标识独立于资源内容形成的缓存,根据当前资源内容所属的资源文件的大小和类型,形成与当前资源内容所属的资源文件相对应的资源分片;具体将响应信息头中的资源类型、资源长度和/或资源范围形成缓存标识,并与缓存索引形成对应关系。
根据可选的实施方式,内容分发网络的缓存服务后端根据客户端的资源访问请求的位置标识,通过运算来确定待访问资源所在的资源分片的位置,以将资源访问请求对应到该资源分片的资源子分片,并将资源子分片的资源内容返回给客户端。
根据可选的实施方式,根据所识别的位置标识确定缓存索引,根据所确定的缓存索引从缓存服务后端中查询并读取公共缓存标识;在确定查找到与待访问资源相对应的公共缓存标识时,在所述公共缓存标识的基础上添加资源内容,直接发送回客户端。
根据可选的实施方式,在确定未查找到与待访问资源相对应的公共缓存标识时,通过内容分发网络向源站发送回源请求,从相应源站拉取对应的新资源以转发给客户端,同时将该资源拆分后在缓存服务后端形成多个缓存,并形成与新资源相对应的新的公共缓存标识。
根据可选的实施方式,从相应源站拉取对应的新资源之后,判断该新资源所对应的资源文件的大小,以确定拉回新资源所对应的整个资源文件,或者确定拉回新资源所对应的整个资源文件中一部分资源。
根据可选的实施方式,在新资源所对应的资源文件的大小大于指定值时,确定拉回新资源所对应的整个资源文件中一部分资源。
根据可选的实施方式,通过内容分发网络的缓存服务对客户端的资源访问请求进行资源过期判断。
本发明第二方面提供一种基于内容分发网络的资源处理装置,采用本发明第一方面所述的资源处理方法,所述资源处理装置包括:请求接收模块,用于接收客户端的资源访问请求,所述资源访问请求包括具有位置标识的信息头、待访问资源网络地址;识别处理模块,用于识别所述资源访问请求中的位置标识,并根据所识别的位置标识判断是否是首次访问内容分发网络的缓存服务;第一确定模块,在确定是非首次访问内容分发网络的缓存服务时,根据所识别的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,向客户端返回响应信息;第二确定模块,在确定是首次访问内容分发网络的缓存服务、且未查找到所识别的位置标识匹配成功的已有公共缓存标识时,将所述资源访问请求转发给源站,并接收来自源站的包含响应信息头的资源信息以转发给客户端,其中,在首次访问内容分发网络的缓存服务时从源站返回的响应信息头和当前资源内容进行拆分形成多个缓存,并形成公共缓存标识以表征同一资源所对应的资源文件。
根据可选的实施方式,进一步包括拆分处理模块,所述拆分处理模块将响应信息头与资源内容拆分成至少两个缓存,响应信息头形成的公共缓存标识独立于资源内容形成的缓存,根据当前资源内容所属的资源文件的大小和类型,形成与当前资源内容所属的资源文件相对应的资源分片;具体将响应信息头中的资源类型、资源长度和/或资源范围形成缓存标识,并与缓存索引形成对应关系。
本发明第三方面提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面所述的方法。
本发明第四方面提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明第一方面所述的方法。
本发明包括以下优点:
与现有技术相比,本发明通过识别所述资源访问请求中的位置标识,根据所识别的位置标识判断是否是首次访问内容分发网络的缓存服务;在确定是非首次访问内容分发网络的缓存服务时,根据所识别的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,即使没有缓存相应资源分片的资源内容,也能立即向客户端返回响应信息,能够有优化CDN的缓存服务的存储过程;特别是在CDN缓存服务已存在待访问资源所对应的同一资源文件、但未缓存相应资源分片的资源内容的情况下,当其他客户端再首次访问CDN缓存服务时,也能立即向客户端返回响应信息,并转发回源请求,进而能够有效减少CDN首包时间,能够提升用户体验感。
附图说明
图1是本发明的基于内容分发网络的资源处理方法的一示例的步骤流程图;
图2是应用基于内容分发网络的资源处理方法的一具体示例的示意图;
图3是现有方法对资源请求进行处理的一示例的示意图;
图4是本发明的基于内容分发网络的资源处理方法中缓存存储处理的一示例的流程示意图;
图5是本发明的基于内容分发网络的资源处理装置的一示例的结构框图;
图6是本发明的一个实施例的计算机设备的结构示意图;
图7是本发明的一个实施例的计算机程序产品的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
鉴于上述问题,本发明提出一种基于内容分发网络的资源处理方法,该方法通过优化缓存源站资源的超文本传输协议(http)响应头的方式,将客户端通过内容分发网络对资源的任意位置范围请求回源获得的超文本传输协议(http)响应头信息独立保存,并形成表征资源的公共索引标识,识别所述资源访问请求中的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,即使没有缓存相应资源分片的资源内容,也能立即向客户端返回响应信息;在确定是首次访问内容分发网络的缓存服务、且未查找到所识别的位置标识匹配成功的已有公共缓存标识时,将所述资源访问请求转发给源站,并接收来自源站的包含响应信息头的资源信息以转发给客户端,能够有优化CDN的缓存服务的存储过程;特别是在CDN缓存服务已存在待访问资源所对应的同一资源文件、但未缓存相应资源分片的资源内容的情况下,当其他客户端再首次访问CDN缓存服务时,也能避免重复转发回源请求,进而能够有效减少CDN首包时间,能够提升用户体验感。
需要说明的是,首包时间指从客户端开始发送请求到收到服务器端返回的第一个http协议数据包之间所需要的时间,首包时间可以反映出CDN服务节点的整体性能。
实施例:
图1是本发明的基于内容分发网络的资源处理方法的一示例的步骤流程图。
下面参照图1、图2、图3和图4,将对本发明的内容进行详细说明。
在图2的示例中,本发明方法的应用示例中,包括客户端(例如网民C、网民D或其他用户)、内容分发网络(Content Delivery Network,CDN)的缓存后端(例如缓存服务器等)和源站(例如包括文件1和文件2,其中,文件1包括S1~S4四个资源分片;文件2包括S1~S6六个资源分片)。例如图2中的网民C通过内容分发网络发起资源访问请求(例如httpRange请求,具体为请求文件2中S2资源分片)。具体地,在缓存后端进行本地查询以确定是否已经存在资源访问请求所对应的缓存。如不存在,则从源站回源拉取对应的资源发回给网民,并缓存到缓存后端(即用于缓存资源的本地服务器)。
下面将结合图1至图4具体说明本发明的方法。
如图1所示,在步骤S101中,接收客户端的资源访问请求,所述资源访问请求包括待访问资源网络地址(URL, 统一资源定位器),待访问资源位置标识等信息。
在图2的示例中,接收网民C的资源访问请求,所述资源访问请求为超文本传输协议(http),所述资源访问请求为请求源站的资源文件2的第二个资源分片S2。例如,网民D请求资源文件2的第五个资源分片S5。
具体地,所述资源访问请求包括待访问资源网络地址(URL, 统一资源定位器),待访问资源位置标识等信息。例如为当前http请求。
例如,在 http 请求头中包含位置标识,所述位置标识包括开始数据的索引位置(即第一参数)、结束数据的索引位置(即第二参数)、指定位置(指定某个字符位置、指定某字段范围的位置)的中间参数等,如当网民访问http://www.a.com/a.mp4资源的1048576-2097151字节,则发送的http请求头如下:
>GET /a.mp4http/1.1
>Host: www.a.com
>Range: bytes=1048576-2097151
>...
其中,Range(即资源范围)具体是指网民想要获得资源的范围信息。例如常用格式为Range: bytes=first-end,first(开始数据的索引位置、即第一参数)、end(结束数据的索引位置、即第二参数)。
例如, Range: bytes=0-499,表征前500个字节。例如,Range: bytes=2-10 ,具体地,第3个字节(索引位置为2)~第11个字节(索引位置为10)。例如, Range: bytes=0- ,其表示省略了结束数据的索引位置、即第二参数。例如,Range:bytes=-500,其表示省略了开始数据的索引位置、即第一参数,即表示最后500个字节。再例如,多个集合模式,Range:bytes=p1-p2,m1-m2 ,其表示多个区段,用","分割。例如将一个资源文件按1M大小进行拆分,拆分成b-a的区段,也即aM~(a+1)M、(a+1)M~(a+2)M...(b-1)M~bM。
需要说明的是,上述仅作为可选示例,不能理解成对本发明的限制。
更具体地,待访问资源例如为源站的资源文件(在下文中,也简称为“文件”)的某个资源分片。
需要说明的是,所述资源分片是CDN缓存服务对静态大资源缓存和回源的通用方式,CDN缓存服务将一个大文件分割成同等大小的分片(通常是256KB到1MB),并在需要时分别从源站下载这些分片。例如,当网民通过拖拽或者预览观看视频部分内容时,CDN缓存服务仅回源下载对应的资源分片,由此能够充分利用 CDN缓存服务中节点与源站之间的带宽来降低CDN的回源成本。上述仅作为可选示例进行说明,不能理解成对本发明的限制。
接下来,在步骤S102中,根据所述资源访问请求中资源网络地址(URL, 统一资源定位器)判断该资源对应的http响应信息头是否已经存在。
需要说明的是,所述内容分发网络的缓存服务、即CDN缓存服务,通过http协议对外提供下载服务,例如,提供音频数据等下载服务。
在本示例中,CDN缓存服务将一个资源文件按照文件大小、资源类型或其他参数,进行资源拆分,以使得一个资源文件对应多个资源分片,其中,资源分片指的是将资源文件(例如大于指定大小的资源文件,具体地,大于一个资源分片。例如大于1MB, M 表示字节(Byte)单位 1M Bytes=1024K Bytes = 1048576 Bytes)或者视频按照空间进行等比拆分,如一个资源文件的总大小是100.5MB,按照 0M~1M,1M~2M,...,100M~100.5M进行拆分后存储。对于这个资源文件的不同资源分片来说,http 响应信息头中通用部分的内容是一样的,但是资源分片的位置信息是独立的。即一个资源对应一个通用http响应头,每个资源分片各自的http 响应头仅存在位置信息的不同。
具体地,内容分发网络的缓存服务包括缓存服务器、用于转发资源访问请求的代理件(例如client)、边缘节点、中间节点、上层节点。其中,将客户端的资源访问请求转发给源站,需要经过边缘节点、中间节点和上层节点。
进一步地,边缘节点直接服务于客户端,边缘节点的数量也最多。中层节点主要是汇聚边缘节点回源请求,不直接服务于客户端,中间节点的数量比边缘节点的数量少。上层节点主要是汇聚中层节点回源请求,不直接服务于客户端,上层节点的数量比中层节点的数量少。通常用户不会为中层节点/上层节点产生的带宽费用。
需要说明的是,上述仅作为可选示例进行说明,不能理解成对本发明的限制。
接下来,在步骤S103中,在确定是非首次访问内容分发网络的缓存服务时,根据所识别的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,向客户端返回响应信息。
在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,向客户端返回响应信息,读取CDN缓存服务的缓存中资源总长度,与当前http请求的位置标识进行范围判断,当判断位置标识与已有公共缓存标识匹配成功时(即当判断位置标识有效时),将该公共缓存标识匹添加位置标识以修改为满足当前 http 请求的响应信息,并立刻将该响应信息返回给客户端,而无需判断当前http 请求的资源内容是否已经存在,从而降低网民请求首包时间。
具体根据所识别的URL信息,确定当前http请求中位置标识是否有相匹配的公共缓存标识已经存在于内容分发网络的缓存服务。
进一步,根据所识别的位置标识确定缓存索引,根据所确定的缓存索引从缓存服务后端中查询并读取公共缓存标识。
在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,即使没有缓存相应资源分片的资源内容,也能立即向客户端返回响应信息,而无需判断当前http 请求的资源内容是否已经存在。
接着,内容分发网络的缓存服务后端根据客户端的资源访问请求的访问时间、位置标识,通过运算来确定待访问资源所在的资源分片的位置,以将资源访问请求对应到该资源分片的资源子分片,并将资源子分片的资源内容返回给客户端。
例如,当CDN边缘节点收到客户端(例如网民C)的当前http请求时,会从本地缓存获取,例如通过http标准协议将所获取的资源内容发回客户端。客户端(例如网民C)从发出当前http请求收到响应信息的时间为17ms,即首包时间为17ms。
例如,识别http请求中资源范围字段(例如第一参数、第二参数和中间参数)、待访问资源的资源长度、访问时间,根据上述信息进行运算,来确定待访问资源所在的资源分片(例如资源文件2中的资源分片S2)的具体位置。
例如,由于CDN缓存服务的后端服务器已存储有资源文件2的公共缓存标识h2,但未保存资源分片5的资源内容,所以当网民D向CDN缓存服务请求资源文件2中的资源分片S5时,CDN缓存服务的后端服务器根据网民D的待访问资源请求中的位置标识,判断出与该位置标识相匹配的公共缓存标识h2,并立即向网民D返回响应信息,首包时间为25ms。与现有缓存方法相比,如图3中网民D向CDN缓存服务请求资源文件2中的资源分片S5时,判断CDN缓存服务的后端服务器中是否有资源分片5的资源内容,如果没有资源分片5的资源内容,则向源站发送回源请求,并接收源站返回的资源分片5的资源内容,再转发给网民D(即接收响应信息),在这种情况下,网民D发送待访问资源请求到接收到响应信息的首包时间为50ms,具体可参见图2和图3。因此,与现有方法相比,本发明的资源处理方法能够显著降低首包时间。
在一具体实施方式中,在查找内容分发网络的缓存索引的过程中,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,通过内容分发网络向源站发送回源请求,从相应源站拉取对应的新资源以转发给客户端,将该资源拆分后在缓存服务后端形成多个缓存,并形成与新资源相对应的新的公共缓存标识,以用于后续资源查找使用。
需要说明的是,上述仅作为可选示例进行说明,不能理解成对本发明的限制。
接下来,在步骤S104中,在确定是首次访问内容分发网络的缓存服务、且未查找到所识别的位置标识匹配成功的已有公共缓存标识时,将所述资源访问请求转发给源站,并接收来自源站的包含响应信息头的资源信息以转发给客户端,其中,在首次访问内容分发网络的缓存服务时从源站返回的响应信息头和当前资源内容进行拆分形成多个缓存,并形成公共缓存标识以表征同一资源所对应的资源文件。
具体地,所述响应信息头例如为http响应信息头、即发回的首包。所述响应信息头包括资源长度、缓存时间、最近一次的修改时间,etag校验等关键信息。所述响应信息头例如为Content-Length: 80,资源长度;Last-Modified:数据的最后修改时间;Cache-Control: 10,缓存10秒。
当通过内容分发网络对源站某一资源首次访问时,内容分发网络的缓存服务进行缓存存储处理。如图4所示,所述缓存存储处理包括以下步骤。
步骤S301:将从源站返回的响应信息头和当前资源内容进行拆分形成多个缓存。
具体地,将响应信息头与资源内容拆分成至少两个缓存,响应信息头去掉位置标识形成公共索引标识进行缓存;资源内容按照分片大小拆分形成一个或多个资源分片,或者一个或多个资源子分片,以为后续访问提供查询和下载服务。
步骤S302:具体将响应信息头中的资源类型、资源长度和/或资源范围形成公共缓存标识,并与缓存索引形成对应关系。
在一具体实施方式中,所述资源类型包括语音、视频等。资源长度具体为一个资源文件的长度。例如,将请求信息中资源地址和位置标识形成公共缓存标识。所述公共缓存标识例如为www.a.com/a.mp4-1048576-2097151。
具体地,所述公共缓存标识用于区分并标识同一资源(例如同一资源文件)的资源分片。所述缓存索引用于查询待访问资源所对应的资源分片。
进一步地,公共缓存标识独立于资源分片内容,且表征资源分片所对应的整个资源文件,使拆分后的各资源分片对应有标识分片位置或子分片位置的标识。
接着,将公共缓存标识与缓存索引形成对应关系,具体在使用公共缓存索引进行资源缓存查询时,能够根据公共缓存索引确定缓存标识。例如,使用公共缓存标识中的资源类型或资源长度与缓存索引形成一一对应关系。
在一具体实施方式中,在确定是首次访问内容分发网络的缓存服务时,将所述资源访问请求转发给源站,或者向源站发送回源请求。
在另一具体实施方式中,如网民E看视频的时是拖曳观看的方式,正好拖拽到了5.5M 的位置,则CDN缓存服务会将网民E的资源访问请求对齐到 5~6M的资源分片的位置,以回源拉取这部分资源内容。例如使用以下计算方式计算,假设资源文件总长度为 cl,请求a~b内容,资源分片大小设置为 slice_size,min表示取两者中小值的计算,则对齐后的范围为start~end。
start = a/slice_size*slice_size,
end = min((b/slice_size+1)*slice_size, cl),
其中,start表征拉取资源时对齐后所对应的开始位置;cl表示资源文件总长度;slice_size表示一个资源分片的长度,例如使用等长度划分的资源分片;a表示待访问资源中想要获取的资源的开始位置;end表示拉取资源时对齐后所对应的结束位置;min表示取(b/slice_size+1)*slice_size 和cl这两者所表示的值中小值的计算,即取两值中较小的那个值;b表示待访问资源中想要获取的资源的结束位置。
在图3所示的现有方法的示例中,CDN缓存服务存储首次回源取得资源分片,并回传给网民A,此时首包时间即是1(CDN收到客户端的资源访问请求的时间)+2(CDN缓存服务将回源请求发送到源站的时间)+3(源站将响应信息头发送到CDN的时间)+4(CDN将响应信息头转发给网民A的时间)之和、即首包时间为10毫秒(ms)。例如,网民B请求文件1的第二个资源分片S2,由于此时CDN已经存在资源分片S2的资源内容,则直接回复给网民B,首包时间为5+6=11毫秒(ms),具体参见图3。而在CDN缓存服务未缓存资源分片S2的情况下,需要向源站发送回源请求,再接收源站返回的资源分片S2的资源内容,并由CDN缓存服务转发给网民B,在这种情况下,首包时间为5+2+3+6=16毫秒(ms)。例如,网民C请求文件2的第二个分片S2,首包时间为7+8+9+10=34毫秒(ms)。再例如,网民D请求文件2的第五个分片S5,首包时间为11+12+13+14=50毫秒(ms)。
参见图2和图3,与图3所示的现有方法相比,本发明的资源处理方法中,网民D对资源分片S5的首次访问时,虽然CDN缓存服务没有保存资源文件2的资源分片S5的资源内容,但是由于存储有表征资源文件2的公共索引标识,所以当接收到网民D对资源分片S5的首次访问时,则可立刻向网民D返回响应信息(而现有方法是需要回源请求,这样会导致CDN首包时间50ms显著上升),本发明的资源处理方法使得首包时间缩短为25ms(网民D请求文件2的第五个分片S5,首包时间为11+14=25毫秒)。从图2和图3的首包时间比较可知,本发明的方法能够在CDN缓存服务已存在公共索引标识的情况下,当其他客户端再首次访问CDN缓存服务时,能立刻收到响应信息而无需判断CDN缓存服务是否已经缓存相应资源分片的资源内容,能够有效减少CDN首包时间,并能够提升用户体验感。
在一可选实施方式中,从相应源站拉取对应的新资源之后(即内容分发网络的缓存中没有待访问资源的情况),判断该新资源所对应的资源文件的大小,以确定拉回新资源所对应的整个资源文件,或者确定拉回新资源所对应的整个资源文件中一部分资源。
在新资源所对应的资源文件的大小大于指定值(在1M~5M的范围内)时,确定拉回新资源所对应的整个资源文件中一部分资源。所述一部分资源包括一个或多个资源分片。在拉回的新资源为多个资源分片的情况下,单独确认每一资源分片是否已存在于CDN缓存服务的后端。对于所确认的不存在的资源分片,通过一个 http请求回源来获取所不存在的资源分片。例如在http请求头中通过资源范围信息(即Range信息)说明要下载的位置,如Range: bytes=2M~3M,源站会根据资源范围信息(即Range信息)返回2M~3M的资源分片。
在另一可选实施方式中,通过内容分发网络的缓存服务对客户端的资源访问请求进行资源过期判断。
具体地,客户端和CDN缓存服务的后端服务器通过识别http 信息头中“If-Modified-Since”、“Etag”、“Cache-Control”等,对缓存资源进行有效性判断。例如CDN缓存服务的后端服务器根据对待访问资源的最后修改时间,来判断是否过期,以确定是否具有有效性。具体地,响应头中会带有例如对待访问资源的最后修改时间等的时间标识。第一次发送待访问资源请求之后,浏览器记录这个时间,再次发送待访问资源请求时,待访问资源请求的请求头部带上If-Modified-Since、即为上一次访问所记录下的时间。服务器端收到带 If-Modified-Since 的请求后会去和上一次访问时间进行对比,来判断是否过期以确定是否具有有效性。若修改过就返回最新资源,则返回修改状态码。若没有修改过,则返回未修改状态码。因此,待访问资源请求的响应信息中资源均为最新的资源。
需要说明的是,上述仅作为可选示例进行说明,不能理解成对本发明的限制。此外,附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以例如在多个模块中同步或异步执行的。
与现有技术相比,本发明通过识别所述资源访问请求中的位置标识,根据所识别的位置标识判断是否是首次访问内容分发网络的缓存服务;在确定是非首次访问内容分发网络的缓存服务时,根据所识别的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,即使没有缓存相应资源分片的资源内容,也能立即向客户端返回响应信息,能够有优化CDN的缓存服务的存储过程;特别是在CDN缓存服务已存在待访问资源所对应的同一资源文件、但未缓存相应资源分片的资源内容的情况下,当其他客户端再首次访问CDN缓存服务时,也能立即向客户端返回响应信息,并转发回源请求,进而能够有效减少CDN首包时间,能够提升用户体验感。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图5是根据本发明的基于内容分发网络的资源处理装置的一示例的结构示意图。
参照图5,本公开第二方面提供一种基于内容分发网络的资源处理装置,采用本发明第一方面所述的基于内容分发网络的资源处理方法。所述资源处理装置400包括请求接收模块410、识别处理模块420、第一确定模块430和第二确定模块440。
在一具体实施方式中,请求接收模块410用于接收客户端的资源访问请求,所述资源访问请求包括具有位置标识的信息头、待访问资源网络地址。识别处理模块420用于识别所述资源访问请求中的位置标识,并根据所识别的位置标识判断是否是首次访问内容分发网络的缓存服务。第一确定模块430在确定是非首次访问内容分发网络的缓存服务时,根据所识别的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,向客户端返回响应信息。第二确定模块440在确定是首次访问内容分发网络的缓存服务、且未查找到所识别的位置标识匹配成功的已有公共缓存标识时,将所述资源访问请求转发给源站,并接收来自源站的包含响应信息头的资源信息以转发给客户端,其中,在首次访问内容分发网络的缓存服务时,从源站返回的响应信息头和当前资源内容进行拆分形成多个缓存,并形成公共缓存标识以表征同一资源所对应的资源文件。
在一可选实施方式中,所述资源处理装置400进一步包括拆分处理模块。
具体地,所述拆分处理模块将响应信息头与资源内容拆分成至少两个缓存,响应信息头形成的公共缓存标识独立于资源内容形成的缓存,根据当前资源内容所属的资源文件的大小和类型,形成与当前资源内容所属的资源文件相对应的资源分片,并将该资源分片拆分形成与当前资源内容相对应的一个或多个资源子分片;
具体将响应信息头中的资源类型、资源长度和/或资源范围形成公共缓存标识,并与缓存索引形成对应关系。
在一可选实施方式中,内容分发网络的缓存服务后端根据客户端的资源访问请求的位置标识,通过运算来确定待访问资源所在的资源分片的位置,以将资源访问请求对应到该资源分片的资源子分片,并将资源子分片的资源内容返回给客户端。
根据所识别的位置标识确定缓存索引,根据所确定的缓存索引从缓存服务后端中查询并读取公共缓存标识。
在确定查找到与待访问资源相对应的公共缓存标识时,在所述公共缓存标识的基础上添加资源内容,直接发送回客户端。
在确定未查找到与待访问资源相对应的公共缓存标识时,通过内容分发网络向源站发送回源请求,从相应源站拉取对应的新资源以转发给客户端,同时将该资源拆分后在缓存服务后端形成多个缓存,并形成与新资源相对应的新的公共缓存标识。
接着,从相应源站拉取对应的新资源之后,判断该新资源所对应的资源文件大小,以确定拉回新资源所对应的整个资源文件,或者确定拉回新资源所对应的整个资源文件中一部分资源。
在一可选实施方式中,在新资源所对应的资源文件大于指定值时,确定拉回新资源所对应的整个资源文件中一部分资源。
在一可选实施方式中,通过内容分发网络的缓存服务对客户端的资源访问请求进行资源过期判断。 需要说明的是,由于所述资源处理装置执行的资源处理方法与图1中的资源处理方法大致相同,因此,省略了对该相同部分的说明。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
下面描述本发明的计算机设备实施例,该计算机设备可以视为对于上述本发明的方法和装置实施例的具体实体实施方式。对于本发明计算机设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明计算机设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图6是本发明的一个实施例的计算机设备的结构示意图,该计算机设备包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行所述基于内容分发网络的资源处理方法。
如图6所示,计算机设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的计算机设备并不限于单一实体,也可以是多个实体设备的总和。
所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得计算机设备能够执行本发明的方法,或者方法中的至少部分步骤。
所述存储器包括易失性存储器,例如随机存取存储单元(RAM)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(ROM)。
可选的,该实施例中,计算机设备还包括有I/O接口,其用于计算机设备与外部的设备进行数据交换。I/O接口可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
应当理解,图6显示的计算机设备仅仅是本发明的一个示例,本发明的计算机设备中还可以包括上述示例中未示出的元件或组件。例如,有些计算机设备中还包括有显示屏等显示单元,有些计算机设备还包括人机交互元件,例如按钮、键盘等。只要该计算机设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的计算机设备。
图7是本发明的一个实施例的计算机程序产品的示意图。如图7所示,计算机程序产品中存储有计算机可执行程序,所述计算机可执行程序被执行时,实现本发明的所述基于内容分发网络的资源处理方法。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的系统,以及系统中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等。本发明也可以由执行本发明的方法的计算机软件来实现,例如由微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得计算机设备执行根据本发明的方法。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者计算机设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于内容分发网络的资源处理方法,其特征在于,包括以下步骤:
接收客户端的资源访问请求,所述资源访问请求包括具有位置标识的信息头、待访问资源网络地址;
识别所述资源访问请求中的位置标识,并根据所识别的位置标识判断是否是首次访问内容分发网络的缓存服务;
在确定是非首次访问内容分发网络的缓存服务时,根据所识别的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,向客户端返回响应信息;
在确定是首次访问内容分发网络的缓存服务、且未查找到所识别的位置标识匹配成功的已有公共缓存标识时,将所述资源访问请求转发给源站,并接收来自源站的包含响应信息头的资源信息以转发给客户端,其中,在首次访问内容分发网络的缓存服务时,从源站返回的响应信息头和当前资源内容进行拆分形成多个缓存,并形成公共缓存标识以表征同一资源所对应的资源文件。
2.根据权利要求1所述的资源处理方法,其特征在于,所述在首次访问内容分发网络的缓存服务时,从源站返回的响应信息头和当前资源内容进行拆分形成多个缓存,并形成公共缓存标识以表征同一资源所对应的资源文件,包括以下步骤:
将响应信息头与资源内容拆分成至少两个缓存,响应信息头形成的公共缓存标识独立于资源内容形成的缓存,根据当前资源内容所属的资源文件的大小和类型,形成与当前资源内容所属的资源文件相对应的资源分片;
具体将响应信息头中的资源类型、资源长度和/或资源范围形成缓存标识,并与缓存索引形成对应关系。
3.根据权利要求1所述的资源处理方法,其特征在于,还包括以下步骤:
所述内容分发网络的缓存服务后端根据客户端的资源,访问请求的位置标识,通过运算来确定待访问资源所在的资源分片的位置,以将资源访问请求对应到该资源分片的资源子分片,并将资源子分片的资源内容返回给客户端。
4.根据权利要求1所述的资源处理方法,其特征在于,还包括以下步骤:
根据所识别的位置标识确定缓存索引,根据所确定的缓存索引从缓存服务后端中查询并读取公共缓存标识;
在确定查找到与待访问资源相对应的公共缓存标识时,在所述公共缓存标识的基础上添加资源内容,直接发送回客户端。
5.根据权利要求4所述的资源处理方法,其特征在于,还包括以下步骤:
在确定未查找到与待访问资源相对应的公共缓存标识时,通过内容分发网络向源站发送回源请求,从相应源站拉取对应的新资源以转发给客户端,同时将该资源拆分后在缓存服务后端形成多个缓存,并形成与新资源相对应的新的公共缓存标识。
6.根据权利要求5所述的资源处理方法,其特征在于,还包括以下步骤:
从相应源站拉取对应的新资源之后,判断该新资源所对应的资源文件的大小,以确定拉回新资源所对应的整个资源文件,或者确定拉回新资源所对应的整个资源文件中一部分资源。
7.根据权利要求6所述的资源处理方法,其特征在于,还包括以下步骤:
在新资源所对应的资源文件的大小大于指定值时,确定拉回新资源所对应的整个资源文件中一部分资源。
8.根据权利要求1所述的资源处理方法,其特征在于,还包括以下步骤:
通过内容分发网络的缓存服务对客户端的资源访问请求进行资源过期判断。
9.一种基于内容分发网络的资源处理装置,采用权利要求1至8中任一项所述的资源处理方法,其特征在于,所述资源处理装置包括:
请求接收模块,用于接收客户端的资源访问请求,所述资源访问请求包括具有位置标识的信息头、待访问资源网络地址;
识别处理模块,用于识别所述资源访问请求中的位置标识,并根据所识别的位置标识判断是否是首次访问内容分发网络的缓存服务;
第一确定模块,在确定是非首次访问内容分发网络的缓存服务时,根据所识别的位置标识,查找内容分发网络的缓存索引,在查找到与所识别的位置标识匹配成功的已有公共缓存标识时,向客户端返回响应信息;
第二确定模块,在确定是首次访问内容分发网络的缓存服务、且未查找到所识别的位置标识匹配成功的已有公共缓存标识时,将所述资源访问请求转发给源站,并接收来自源站的包含响应信息头的资源信息以转发给客户端,其中,在首次访问内容分发网络的缓存服务时从源站返回的响应信息头和当前资源内容进行拆分形成多个缓存,并形成公共缓存标识以表征同一资源所对应的资源文件。
10.根据权利要求9所述的资源处理装置,其特征在于,还包括拆分处理模块,
所述拆分处理模块将响应信息头与资源内容拆分成至少两个缓存,响应信息头形成的公共缓存标识独立于资源内容形成的缓存,根据当前资源内容所属的资源文件的大小和类型,形成与当前资源内容所属的资源文件相对应的资源分片;
具体将响应信息头中的资源类型、资源长度和/或资源范围形成缓存标识,并与缓存索引形成对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311254278.7A CN116996578B (zh) | 2023-09-27 | 2023-09-27 | 基于内容分发网络的资源处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311254278.7A CN116996578B (zh) | 2023-09-27 | 2023-09-27 | 基于内容分发网络的资源处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116996578A true CN116996578A (zh) | 2023-11-03 |
CN116996578B CN116996578B (zh) | 2024-02-06 |
Family
ID=88532562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311254278.7A Active CN116996578B (zh) | 2023-09-27 | 2023-09-27 | 基于内容分发网络的资源处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116996578B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453380A (zh) * | 2023-12-25 | 2024-01-26 | 阿里云计算有限公司 | 集群的容器组调度方法、系统以及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433848A (zh) * | 2020-11-10 | 2021-03-02 | 北京金山云网络技术有限公司 | 资源处理方法、装置、存储介质和缓存服务器 |
WO2021093675A1 (zh) * | 2019-11-12 | 2021-05-20 | 北京金山云网络技术有限公司 | Cdn回源的校验方法和校验服务器、cdn集群 |
CN112995251A (zh) * | 2019-12-13 | 2021-06-18 | 北京金山云网络技术有限公司 | 一种回源方法、装置、电子设备及存储介质 |
CN115145879A (zh) * | 2021-03-30 | 2022-10-04 | 贵州白山云科技股份有限公司 | 一种数据处理方法、装置、介质及设备 |
-
2023
- 2023-09-27 CN CN202311254278.7A patent/CN116996578B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021093675A1 (zh) * | 2019-11-12 | 2021-05-20 | 北京金山云网络技术有限公司 | Cdn回源的校验方法和校验服务器、cdn集群 |
CN112995251A (zh) * | 2019-12-13 | 2021-06-18 | 北京金山云网络技术有限公司 | 一种回源方法、装置、电子设备及存储介质 |
CN112433848A (zh) * | 2020-11-10 | 2021-03-02 | 北京金山云网络技术有限公司 | 资源处理方法、装置、存储介质和缓存服务器 |
CN115145879A (zh) * | 2021-03-30 | 2022-10-04 | 贵州白山云科技股份有限公司 | 一种数据处理方法、装置、介质及设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453380A (zh) * | 2023-12-25 | 2024-01-26 | 阿里云计算有限公司 | 集群的容器组调度方法、系统以及计算机设备 |
CN117453380B (zh) * | 2023-12-25 | 2024-02-23 | 阿里云计算有限公司 | 集群的容器组调度方法、系统以及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116996578B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2266043B1 (en) | Cache optimzation | |
CA2925003C (en) | Key resource prefetching using front-end optimization (feo) configuration | |
EP2791815B1 (en) | Application-driven cdn pre-caching | |
CN106534243B (zh) | 基于http协议的缓存、请求、响应方法及相应装置 | |
US7802014B2 (en) | Method and system for class-based management of dynamic content in a networked environment | |
US10630758B2 (en) | Method and system for fulfilling server push directives on an edge proxy | |
KR20160030381A (ko) | 웹 페이지 액세스 방법, 장치, 라우터, 프로그램 및 기록매체 | |
US8880634B2 (en) | Cache sharing among branch proxy servers via a master proxy server at a data center | |
US20050240574A1 (en) | Pre-fetching resources based on a resource lookup query | |
CN116996578B (zh) | 基于内容分发网络的资源处理方法和装置 | |
WO2012162275A2 (en) | Improved loading of web resources | |
US20180091495A1 (en) | CDN-Based Access Control Method and Related Device | |
WO2017025052A1 (zh) | 资源缓存方法及装置 | |
AU2003267650A1 (en) | Method, system, and program for maintaining data in distributed caches | |
WO2015106692A1 (en) | Webpage pushing method, client, server, and system | |
CN112003945A (zh) | 服务请求响应方法及装置 | |
US7069297B2 (en) | Data transfer scheme using re-direct response message for reducing network load | |
CN106411978B (zh) | 一种资源缓存方法及装置 | |
WO2019196225A1 (zh) | 一种反馈资源文件的方法和装置 | |
WO2019052299A1 (zh) | 一种sdn交换机和sdn交换机的应用管理方法 | |
WO2010031297A1 (zh) | 一种wap网关提取业务的实现方法和系统 | |
CN115297095B (zh) | 回源处理方法、装置、计算设备及存储介质 | |
CN113127923A (zh) | 管理权限的方法和装置 | |
CN115086275B (zh) | 报文处理方法、装置、介质及电子设备 | |
JP2002358229A (ja) | キャッシュ装置及びコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |