一种信息推送方法及缓存服务器与流程

文档序号:11590402阅读:168来源:国知局

本发明涉及通信领域中的网络资源管理技术,尤其涉及一种信息推送方法及缓存服务器。



背景技术:

目前,超文本传输协议(http,hypertexttransferprotocol)是一种为分布式、协作式的超媒体信息系统。针对客户端对网页(web)的访问可以基于缓存服务器中缓存的资源进行响应,所有的能够缓存的资源类型都是基于在http协议头中定义的规则来决定。

但是,上述方案中,缓存服务器无法对web服务器主动推送资源流量进行本地优化,由于网络部署的缓存服务器只能响应客户端请求来触发本地缓存内容检查与返回,因此,对于采用serverpush机制推送的网页资源来说,因为不存在对应的客户端显式请求,即使已经为另一个用户缓存有对应的资源内容,针对当前用户的访问页面中同样嵌入的资源cache代理也无法实现相关流量的本地优化。



技术实现要素:

有鉴于此,本发明的目的在于提供一种信息推送方法及缓存服务器,能至少解决现有技术中存在的上述问题。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例提供了一种信息推送方法,应用于缓存服务器,所述方法包括:

接收到终端设备发来的网页访问请求,所述网页访问请求中至少包括有资源定位标识信息;

基于所述网页访问请求中的资源定位标识信息,查找缓存中是否保存有对应的目标资源;

若所述缓存中未保存有对应的目标资源,则基于所述网页访问请求从网页服务器侧获取到目标资源,以及所述网页服务器推送来的推送内容;

基于所述目标资源以及所述推送内容,对所述终端设备进行响应。

本发明实施例提供了一种缓存服务器,包括:

接收单元,用于接收到终端设备发来的网页访问请求,所述网页访问请求中至少包括有资源定位标识信息;

查找单元,用于基于所述网页访问请求中的资源定位标识信息,查找缓存中是否保存有对应的目标资源;

请求单元,用于若所述缓存中未保存有对应的目标资源,则基于所述网页访问请求从网页服务器侧获取到目标资源,以及所述网页服务器推送来的推送内容;

响应单元,用于基于所述目标资源以及所述推送内容,对所述终端设备进行响应。

本发明实施例提供了信息推送方法及缓存服务器,基于终端设备发来的网页访问请求查找缓存服务器中是否具备缓存的目标资源,以及对应的推送内容,若不具备则从服务器侧获取到对应的目标资源以及推送内容对所述网页访问请求进行响应。如此,避免因为现有网页缓存服务器单纯从访问请求触发资源查找与返回,无法有效提高采用推送等增强功能的网页站点访问会话进行可靠的流量本地化的缺点,实现节约网络运营成本的目的、以及能够提升用户的访问网页的体验。

附图说明

图1为本发明实施例信息推送方法流程示意图一;

图2为本发明实施例信息推送场景示意图一;

图3为本发明实施例信息推送场景示意图二;

图4为本发明实施例信息推送方法流程示意图二;

图5为本发明实施例网页访问流程示意图场景图;

图6为本发明实施例缓存服务器组成结构示意图。

具体实施方式

下面结合附图及具体实施例对本发明再作进一步详细的说明。

实施例一、

本实施例提供了一种信息推送方法,应用于服务器,如图1所示,包括:

步骤101:接收到终端设备发来的网页访问请求,所述网页访问请求中至少包括有资源定位标识信息;

步骤102:基于所述网页访问请求中的资源定位标识信息,查找缓存中是否保存有对应的目标资源;

步骤103:若所述缓存中未保存有对应的目标资源,则基于所述网页访问请求从网页服务器侧获取到目标资源,以及所述网页服务器推送来的推送内容;

步骤104:基于所述目标资源以及所述推送内容,对所述终端设备进行响应。

这里,本实施例所提供的缓存服务器,可以应用于如图2所示的架构,其中,终端设备可以通过缓存服务器经由互联网(internet)向网页服务器发出网页访问请求,进而基于网页服务器通过互联网以及缓存服务器向终端设备返回响应。

其中,所述网页访问请求中的资源定位标识信息可以为统一资源定位器(url,uniformresourcelocator)。

优选地,本实施例提供的方法还包括:若所述缓存中保存有对应的目标资源,则基于所述目标资源对所述终端设备的所述网页访问请求进行响应。

可以参见图3,当缓存服务器缓存的资源中包括有与所述网页访问请求所要求的资源相同的资源时,就直接从缓存服务器中获取到目标资源向终端设备进行响应。

在上述方案的基础上,所述基于所述目标资源对所述终端设备的所述网页访问请求进行响应,还包括:

查找在所述缓存中是否保存有与所述网页访问请求关联的历史关联内容;

若保存有所述历史关联内容,则基于所述目标资源以及所述历史关联内容,对所述终端设备的所述网页访问请求进行响应。

其中,所述历史关联内容可以为在历史网页请求过程中,缓存服务器接收到的由网页服务器主动推送给终端设备的信息。

本实施例提供的场景中,不仅保存从网页服务器获取到的目标资源,还会将网页服务器主动推送给终端设备的内容信息作为历史关联内容进行保存。如此,在终端设备再次发次网页访问请求时,不仅能够直接从缓存服务器的缓存资源中获取到目标资源进行响应,还能够再获取到关联内容直接发送给终端设备,从而进一步的优化了网络资源。

优选地,在获取到缓存服务器中的目标资源之后,还可以进一步的判断缓存的目标资源的保存时长是否不超过门限值,也就是说,进一步的判断保存的目标资源是否已经过期,若已经过期,则不使用该目标资源进行响应,具体的,所述缓存中保存有对应的目标资源,包括:

判断所述目标资源的保存时长是否达到门限值,若是,则基于所述网页访问请求从网页服务器侧获取到目标资源,以及所述网页服务器推送来的推送内容。

进一步需要说明的是,所述缓存服务器还可以:周期性查看保存的资源的保存时长是否达到门限值,若是,则删除所述资源。其中,所述门限值可以为根据实际情况预设的门限值,也可以为指定的门限值。

需要说明的是,每一种资源的保存时长对应的门限值的获取方式可以为以下之一:

统一设置;

也可以为不同的,具体根据资源的类型设置,比如,图片资源门限值可以 较短;

在从服务器侧接收到所述资源时,解析所述资源从中获取到对应的生存时间值,将获取到的生存时间值作为所述门限值。

所述基于所述网页访问请求中的资源定位标识信息,查找缓存中是否保存有对应的目标资源,包括:

基于所述网页访问请求中的资源定位标识信息,确定所述资源定位标识信息对应的内容元素;

判断所述内容元素是否为可缓存资源,若是,则查找缓存中是否保存有对应的目标资源;否则,发送所述网页访问请求至网页服务器,并将所述网页服务器对所述网页访问请求的响应发送至所述终端设备。

这里,所述内容元素是否为可缓存资源可以为预设的,比如,可以预设某一个或者多种类型的内容元素为可缓存资源。

可见,通过采用上述方案,就能够基于终端设备发来的网页访问请求查找缓存服务器中是否具备缓存的目标资源,以及对应的推送内容,若不具备则从服务器侧获取到对应的目标资源以及推送内容对所述网页访问请求进行响应。如此,避免因为现有webcache代理服务器单纯从客户端访问url请求触发资源查找与返回,无法有效提高采用push等增强功能的web站点访问会话进行可靠的流量本地化的缺点。另外,还能够优化webcache能有效减少http/2.0服务端站点采用推送手段引发的大量跨域push流量,节约网络运营成本opex。以及优化webcache识别热点页面推送关系后主动发起本地push操作,有助于在服务端站点优化基础上进一步提升用户体验。

实施例二、

本提案的核心思想是,扩展web缓存实体功能,识别服务端推送的静态网页元素资源、与访问url的对应绑定关系,在针对该url访问时,增加对应元素资源的推送逻辑。从而避免因为现有webcache代理服务器单纯从客户端访问url请求触发资源查找与返回,无法有效提高采用push等增强 功能的web站点访问会话进行可靠的流量本地化的缺点。

具体来说,本提案一方面扩展cache代理设备的资源缓存机制,增加缓存资源的push属性与访问url关联关系记录,一方面扩展cache代理设备的请求应答机制,增加关联push资源的识别与主动推送。

技术方案的描述可以结合图4进行说明:

第一步、cache接收来自浏览器客户端的http内容访问请求。

第二步、cache依据本地配置策略检查该请求对应内容是否是可缓存资源。例如,html一般不可缓存,而图片、文本的元素可缓存。cache系统管理员可以手动配置哪些页面可以缓存,哪些页面不可缓存。若对应的内容是可缓存资源,则继续执行第三步,否则,转发请求给服务器,再转发服务器的响应给客户端。

第三步、如果判定该请求内容可缓存,则检查本地缓存,例如,以请求中的url为标识进行查找,并采用缓存内容的maxage字段验证缓存内容是否仍然新鲜可用。继续执行第四步。否则,从服务器请求对应资源并将其置于缓存服务器上,并识别/记录服务端的push内容,然后向客户端返回服务端返回/推送的请求响应内容,并退出。

第四步、如果本地缓存命中,则从缓存提取请求内容,并检查是否有关联的push内容记录。是则进一步提取并推送缓存push关联内容给客户端。否则直接向客户端返回缓存的请求内容。

超文本传输协议(http)是一种为分布式,协作式的,超媒体信息系统。它是一种通用的,无状态(stateless)的协议,除了应用于超文本传输外,它也可以应用于诸如名称服务器和分布对象管理系统之类的系统,这可以通过扩展它的请求方法,错误代码和消息头来实现。

web缓存是指一个web资源(如html页面,图片,js,数据等)存在于web服务器和客户端(浏览器)之间的副本。缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的url,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发 送请求。比较常见的就是浏览器会缓存访问过网站的网页,当再次访问这个url地址的时候,如果网页没有更新,就不会再次下载网页,而是直接使用本地缓存的网页。只有当网站明确标识资源已经更新,浏览器才会再次下载网页。

在web应用领域,web缓存大致可以分为以下几种类型:

数据库数据缓存:web应用,特别是sns类型的应用,往往关系比较复杂,数据库表繁多,如果频繁进行数据库查询,很容易导致数据库不堪重荷。为了提供查询的性能,会将查询后的数据放到内存中进行缓存,下次查询时,直接从内存缓存直接返回,提供响应效率。

代理服务器缓存:代理服务器是浏览器和源服务器之间的中间服务器,浏览器先向这个中间服务器发起web请求,经过处理后(比如权限验证,缓存匹配等),再将请求转发到源服务器。代理服务器缓存的运作原理跟浏览器的运作原理差不多,只是规模更大。可以把它理解为一个共享缓存,不只为一个用户服务,一般为大量用户提供服务,因此在减少相应时间和带宽使用方面很有效,同一个副本会被重用多次。

cdn缓存:cdn(contentdeliverynetworks)缓存,也叫网关缓存、反向代理缓存。cdn缓存一般是由网站管理员自己部署,为了让他们的网站更容易扩展并获得更好的性能。浏览器先向cdn网关发起web请求,网关服务器后面对应着一台或多台负载均衡源服务器,会根据它们的负载请求,动态将请求转发到合适的源服务器上。虽然这种架构负载均衡源服务器之间的缓存没法共享,但却拥有更好的处扩展性。从浏览器角度来看,整个cdn就是一个源服务器。

浏览器端缓存:浏览器缓存根据一套与服务器约定的规则进行工作,在同一个会话过程中会检查一次并确定缓存的副本足够新。如果用户在浏览过程中,比如前进或后退,访问到同一个图片,这些图片可以从浏览器缓存中调出而即时显现。

web应用层缓存:应用层缓存指的是从代码层面上,通过代码逻辑和缓 存策略,实现对数据,页面,图片等资源的缓存,可以根据实际情况选择将数据存在文件系统或者内存中,减少数据库查询或者读写瓶颈,提高响应效率。

其中,代理服务器缓存是本提案所关注的。

http/2.0的服务端主动推送serverpush:是一种新的网络协议,以最小化网络延迟,提升网络速度,优化用户的网络使用体验。spdy并不是一种用于替代http的协议,而是对http协议的增强。新协议的功能包括数据流的多路复用、请求优先级,以及http包头压缩。

spdy并不是用于替代http。该协议仍使用http的方法和包头,只是对http中负责连接管理和数据传输格式的部分进行了重写。通过引入独立的传输封装层,并对http请求/响应封装成一个独立可标识的子流,实现了单tcp连接中的无限制的并发流。谷歌对全球25大网站的下载测试表明,引入spdy协议后,在实验室测试中页面加载速度比原先快64%。

http作为支撑web的基础协议,已停滞13年没有被更新。而为了完成对web的升级,以便能够更好地适应复杂的和高带宽的应用,ietf已于2012年开始对下一代http的开发工作。根据httpbis工作组主席marknottingham的说法,http/2.0以google的spdy协议为起点进行研究,需要关注包括协商机制、头压缩、服务器推送等关键技术。

如前所述,在现有技术中,客户端主要通过如下两个阶段实现对web页面的访问:首先进行html文件下载,然后客户端解析html文件,逐一发起页面内部元素资源的下载过程。如此,即使是最简单的页面下载也需要两个交互来回才能完成,在端到端时延较大的环境中(比如,移动网络)对于用户感知的页面加载时延有较大的可提升空间。

为了降低高时延网络访问场景中的页面加载时延,有些web服务端采用inline技术,将页面中的不同资源直接嵌入到html文件中,形成一个大包,通过第一次交互来回直接发送给客户端。这种inline技术对于减少交互开销很有效,但对于不同资源的嵌入,不利于充分利用浏览器缓存,实际上对于 被各个页面引用的公共部分,需要对于每个页面进行单独嵌入再分别下载,增加了网站建设复杂度和网络访问流量,是不经济,也不被提倡的。

为此,spdy率先提出serverpush技术,并被http/2.0规范接纳。用于减少页面下载交互时延同时解决inline技术引入的跨页面cache利用效率问题。如图5所示,serverpush本质上是一种服务端直接推送技术,当服务端接收到浏览器/代理服务器发送的页面访问请求时,先于html文件,直接向请求方推送页面中关键资源内容,并利用http/2.0数据帧的帧头数据标识字段指定该资源与对应页面html文件之间的关联关系。浏览器客户端接收到html文件时,相关页面资源已经被存入浏览器本地缓存中。这样一旦浏览器解析到html文件中指定的页面资源时,根据其url标识查找后会发现对应资源已经在缓存中,而直接从本地缓存提取并进行渲染呈现。如此,可以类似inline技术,节省至少一个交互来回,从而提高用户体验。由于serverpush推送的资源仍然是以url为标识,单个资源形式独立被浏览器接收并存储在缓存中的,因此浏览器能够识别对应的推送资源是否已经在本地缓存中存在,从而使用http/2.0的数据传输控制机制拒绝该资源的重复推送(例如,使用rst_stream拒绝建立对应数据传输流)。

本实施例与上述最接近的现有技术相比,具有如下技术优点:

其一、避免因为现有webcache代理服务器单纯从客户端访问url请求触发资源查找与返回,无法有效提高采用push等增强功能的web站点访问会话进行可靠的流量本地化的缺点。

其二、优化webcache能有效减少http/2.0服务端站点采用推送手段引发的大量跨域push流量,节约网络运营成本opex。

其三、优化webcache识别热点页面推送关系后主动发起本地push操作,有助于在服务端站点优化基础上进一步提升用户体验。

实施例三、

本实施例提供了一种缓存服务器,如图6所示,包括:

接收单元61,用于接收到终端设备发来的网页访问请求,所述网页访问请求中至少包括有资源定位标识信息;

查找单元62,用于基于所述网页访问请求中的资源定位标识信息,查找缓存中是否保存有对应的目标资源;

请求单元63,用于若所述缓存中未保存有对应的目标资源,则基于所述网页访问请求从网页服务器侧获取到目标资源,以及所述网页服务器推送来的推送内容;

响应单元64,用于基于所述目标资源以及所述推送内容,对所述终端设备进行响应。

这里,本实施例所提供的缓存服务器,可以应用于如图2所示的架构,其中,终端设备可以通过缓存服务器经由互联网(internet)向网页服务器发出网页访问请求,进而基于网页服务器通过互联网以及缓存服务器向终端设备返回响应。

其中,所述网页访问请求中的资源定位标识信息可以为统一资源定位器(url,uniformresourcelocator)。

优选地,所述响应单元,用于若所述缓存中保存有对应的目标资源,则基于所述目标资源对所述终端设备的所述网页访问请求进行响应。

可以参见图3,当缓存服务器缓存的资源中包括有与所述网页访问请求所要求的资源相同的资源时,就直接从缓存服务器中获取到目标资源向终端设备进行响应。

在上述方案的基础上,所述基于所述目标资源对所述终端设备的所述网页访问请求进行响应,所述查找单元,用于查找在所述缓存中是否保存有与所述网页访问请求关联的历史关联内容;若保存有所述历史关联内容,则基于所述目标资源以及所述历史关联内容,对所述终端设备的所述网页访问请求进行响应。

其中,所述历史关联内容可以为在历史网页请求过程中,缓存服务器接收到的由网页服务器主动推送给终端设备的信息。

本实施例提供的场景中,不仅保存从网页服务器获取到的目标资源,还会将网页服务器主动推送给终端设备的内容信息作为历史关联内容进行保存。如此,在终端设备再次发次网页访问请求时,不仅能够直接从缓存服务器的缓存资源中获取到目标资源进行响应,还能够再获取到关联内容直接发送给终端设备,从而进一步的优化了网络资源。

优选地,在获取到缓存服务器中的目标资源之后,还可以进一步的判断缓存的目标资源的保存时长是否不超过门限值,也就是说,进一步的判断保存的目标资源是否已经过期,若已经过期,则不使用该目标资源进行响应,具体的,所述缓存中保存有对应的目标资源,包括:

所述查找单元,用于判断所述目标资源的保存时长是否达到门限值,若是,则基于所述网页访问请求从网页服务器侧获取到目标资源,以及所述网页服务器推送来的推送内容。

进一步需要说明的是,所述缓存服务器还可以:周期性查看保存的资源的保存时长是否达到门限值,若是,则删除所述资源。可以理解的是,每一中资源的保存时长可以为统一设置的,也可以为不同的,具体的根据资源的类型进行设置,比如,图片资源可以保存时长较短。

所述查找单元,用于基于所述网页访问请求中的资源定位标识信息,确定所述资源定位标识信息对应的内容元素;判断所述内容元素是否为可缓存资源,若是,则查找缓存中是否保存有对应的目标资源;否则,发送所述网页访问请求至网页服务器,并将所述网页服务器对所述网页访问请求的响应发送至所述终端设备。

这里,所述内容元素是否为可缓存资源可以为预设的,比如,可以预设某一个或者多种类型的内容元素为可缓存资源。

可见,通过采用上述方案,就能够基于终端设备发来的网页访问请求查找缓存服务器中是否具备缓存的目标资源,以及对应的推送内容,若不具备则从服务器侧获取到对应的目标资源以及推送内容对所述网页访问请求进行响应。如此,避免因为现有webcache代理服务器单纯从客户端访问url请求触发资 源查找与返回,无法有效提高采用push等增强功能的web站点访问会话进行可靠的流量本地化的缺点。另外,还能够优化webcache能有效减少http/2.0服务端站点采用推送手段引发的大量跨域push流量,节约网络运营成本opex。以及优化webcache识别热点页面推送关系后主动发起本地push操作,有助于在服务端站点优化基础上进一步提升用户体验。

本发明实施例所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、网络设备、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1