数据推送方法及装置与流程

文档序号:11064829阅读:461来源:国知局
数据推送方法及装置与制造工艺

本发明涉及网络通信技术领域,尤其涉及一种数据推送方法及装置。



背景技术:

目前,以CDN(Content Delivery Network,内容分发网络)为主的网络加速技术已应用于国内外各大运营商。以CDN为例,通过在网络各处设置CDN节点以在现有互联网的基础上构成一层智能虚拟网络,CDN节点接收到用户终端的请求后向源站回源,存储用户终端访问的数据,其他用户终端继续访问该数据时,由已经存储数据的CDN节点直接提供服务。然而,源站的响应有很多是重定向URL,CDN节点存储重定向URL后,用户终端需要根据重定向URL继续访问数据内容,有些数据甚至需要多次重定向跳转,导致用户终端需要较长时间才能获取到目标数据内容,现有技术中,存在用户终端获取数据效率较低的问题。



技术实现要素:

本发明的主要目的在于提供一种数据推送方法及装置,旨在提高用户终端获取数据的效率。

为实现上述目的,本发明提供一种数据推送方法,所述数据推送方法包括:

在接收到用户终端发送的业务请求时,内容分发网络CDN节点判断当前是否存储有所述业务请求指向的业务数据;

在当前未存储有所述业务请求指向的业务数据,且所述业务请求指向的业务数据携带有重定向统一数据定位符URL时,所述CDN节点基于所述重定向URL获取未携带重定向URL的业务数据;

所述CDN节点将所述未携带重定向URL的业务数据存储为所述业务请求指向的业务数据,并将所述未携带重定向URL的业务数据发送至所述用户 终端;

在当前存储有所述业务请求指向的业务数据时,所述CDN节点直接将所述业务请求指向的业务数据发送至所述用户终端。

优选地,所述CDN节点直接将所述业务请求指向的业务数据发送至所述用户终端的步骤之前,还包括:

在当前存储有所述业务请求指向的业务数据时,所述CDN节点判断所述业务请求指向的业务数据是否携带有重定向URL;

在所述业务请求指向的业务数据未携带有重定向URL时,执行所述CDN节点直接将所述业务请求指向的业务数据发送至所述用户终端的步骤;

所述判断所述业务请求指向的业务数据是否携带有重定向URL的步骤之后,所述数据推送方法还包括步骤:

在所述业务请求指向的业务数据携带有重定向URL时,所述CDN节点基于所述重定向URL获取未携带重定向URL的业务数据;

所述CDN节点采用未携带重定向URL的业务数据更新所述业务请求指向的业务数据,并将未携带重定向URL的业务数据发送至所述用户终端

优选地,所述业务请求指向的业务数据携带有HTTP状态码,所述CDN节点判断所述业务请求指向的业务数据是否携带有重定向URL的步骤包括:

所述CDN节点判断所述业务请求指向的业务数据所携带的HTTP状态码是否与预设HTTP状态码一致,其中,当所述HTTP状态码与预设HTTP状态码一致时,所述业务请求指向的业务数据携带有重定向URL。

优选地,当所述业务请求指向的业务数据的类型为网页数据时,所述CDN节点发送所述业务请求指向的业务数据的步骤之前,还包括:

所述CDN节点判断所述业务请求指向的业务数据所采用的编码方式是否与所述用户终端采用的编码方式相同;

在所述业务请求指向的业务数据所采用的编码方式与所述用户终端采用的编码方式相同时,执行所述CDN节点发送所述业务请求指向的业务数据的步骤。

优选地,所述CDN节点判断所述业务请求指向的业务数据所采用的编码方式是否与所述用户终端采用的编码方式相同的步骤之后,还包括:

在所述业务请求指向的业务数据所采用的编码方式与所述用户终端采用 的编码方式不同时,所述CDN节点采用所述用户终端的编码方式对所述业务请求指向的业务数据进行重编码,并将重编码后的业务数据发送至所述用户终端。

此外,为实现上述目的,本发明还提供了一种数据推送装置,所述数据推送装置包括:

第一判断模块,用于当其所在内容分发网络CDN节点接收到用户终端发送的业务请求时,判断所述CDN节点当前是否存储有所述业务请求指向的业务数据;

获取模块,用于在所述CDN节点当前未存储有所述业务请求指向的业务数据,且所述业务请求指向的业务数据携带有重定向统一数据定位符URL时,基于所述重定向URL获取未携带重定向URL的业务数据;

发送模块,用于将所述未携带重定向URL的业务数据存储为所述业务请求指向的业务数据,并将所述未携带重定向URL的业务数据发送至所述用户终端;

所述发送模块还用于在所述CDN节点当前存储有所述业务请求指向的业务数据时,直接将所述业务请求指向的业务数据发送至所述用户终端。

优选地,所述数据推送装置还包括第二判断模块,用于在所述CDN节点当前存储有所述业务请求指向的业务数据时,判断所述业务请求指向的业务数据是否携带有重定向URL;

所述发送模块还用于在所述业务请求指向的业务数据未携带有重定向URL时,直接将所述业务请求指向的业务数据发送至所述用户终端;

所述获取模块还用于在所述业务请求指向的业务数据携带有重定向URL时,基于所述重定向URL获取未携带重定向URL的业务数据;

所述发送模块还用于采用未携带重定向URL的业务数据更新所述业务请求指向的业务数据,并将未携带重定向URL的业务数据发送至所述用户终端。

优选地,所述业务请求指向的业务数据携带有HTTP状态码,所述第二判断模块还用于判断所述业务请求指向的业务数据所携带的HTTP状态码是否与预设HTTP状态码一致,其中,当所述HTTP状态码与预设HTTP状态 码一致时,所述业务请求指向的业务数据携带有重定向URL。

优选地,当所述业务请求指向的业务数据的类型为网页数据时,所述数据推送装置还包括第三判断模块,用于判断所述业务请求指向的业务数据所采用的编码方式是否与所述用户终端采用的编码方式相同;

所述发送模块还用于在所述业务请求指向的业务数据所采用的编码方式与所述用户终端采用的编码方式相同时,将所述业务请求指向的业务数据发送至所述用户终端。

优选地,所述发送模块还用于在所述业务请求指向的业务数据所采用的编码方式与所述用户终端采用的编码方式不同时,采用所述用户终端的编码方式对所述业务请求指向的业务数据进行重编码,并将重编码后的业务数据发送至所述用户终端。

本发明通过CDN节点在接收到用户终端的业务请求时,若当前未存储所述业务请求指向的业务数据,且所述业务请求指向的业务数据携带重定向URL,则基于所述重定向URL获取未携带重定向URL的业务数据,并将所述未携带重定向URL的业务数据存储为所述业务请求指向的业务数据,以及将所述未携带重定向URL的业务数据作为所述业务请求指向的业务数据发送至所述用户终端,当再次接收到所述业务请求时,所述CDN节点即可用存储的所述未携带重定向URL的业务数据提供服务,无需用户终端进行重定向跳转,提高用户终端获取数据的效率。

附图说明

图1为本发明数据推送方法第一实施例的流程示意图;

图2为本发明数据推送装置第一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种数据推送方法,参照图1,在本发明数据推送方法的第一实施例中,所述数据推送方法包括:

步骤S10,在接收到用户终端发送的业务请求时,内容分发网络CDN节点判断当前是否存储有所述业务请求指向的业务数据;

本实施例提供的数据推送方法可以应用于互联网访问中,例如,CDN节点在接收到用户终端的网页访问请求,且当前未存储有所述网页访问请求指向的网页数据时,根据所述网页访问请求向源站服务器回源所述网页访问请求指向的网页数据,并在所述源站服务器响应的网页数据携带重定向URL时,基于所述重定向URL获取未携带重定向URL的网页数据;所述CDN节点将所述未携带重定向URL的网页数据作为所述网页访问请求指向的网页数据存储,并将所述未携带重定向URL的网页数据发送至所述用户终端,容易理解的是,当存储的所述未携带重定向URL的网页数据再次被访问时,所述CDN节点即可用存储的所述未携带重定向URL的网页数据提供服务,减小响应时间,提高用户终端获取数据的效率。

具体的,用户终端在接收到用户基于浏览器的地址栏输入的URL,或者基于浏览器显示的超链接地址触发的点击操作,或者基于流媒体播放器触发的播放操作时,生成携带相应URL(或者IP地址)的业务请求发送至所述CDN节点;所述CDN节点在接收到所述用户终端发送的业务请求时,判断当前是否存储有所述业务请求指向的业务数据,以根据判断结果执行相应的操作,例如,在存储有所述业务请求指向的业务数据时,所述CDN节点即可直接将所述业务请求指向的业务数据发送至所述用户终端。

在其他实施例中,上述步骤S10之前,还包括:

CDN路由设备接收所述用户终端发送的原始业务请求,所述原始业务请求携带有所述用户终端请求的原始URL,所述原始URL对应的域名为所述用户终端请求的原始域名;所述CDN路由设备向所述用户终端返回重定向响应消息,所述重定向响应消息携带的URL对应的域名中包括所述CDN路由设备为所述用户终端选择的加速节点(第一实施例中所述的CDN节点)的标识,以供所述用户终端向所述CDN节点发送业务请求,由所述CDN节点提供加速服务。

例如,用户终端向CDN路由设备发送的业务请求中携带的URL为 http://www.ZTE.com/news/a.html,其中,www.ZTE.com对应的内容由CP(Content Provider,内容提供商)提供,并且通过CDN提供内容分发加速服务,CDN路由设备根据预定策略为用户终端选择一个加速节点(加速节点的标识为对应第一实施例中所述CDN节点的标识C1),构造新的URL为http://C1.cdn.net/www.ZTE.com/news/a.html。用户终端向所述新的URL发送业务请求即可获取到所述CDN节点存储的相应页面的页面数据。

步骤S20,在当前未存储有所述业务请求指向的业务数据,且所述业务请求指向的业务数据携带有重定向统一数据定位符URL时,所述CDN节点基于所述重定向URL获取未携带重定向URL的业务数据;

本实施例中,在当前未存储有所述业务请求指向的业务数据时,所述CDN节点根据所述业务请求携带的URL(或者IP地址)向源站服务器转发所述业务请求,以接收所述源站服务器响应的业务数据;在接收到所述源站服务器响应的业务数据时,所述CDN节点判断所述源站服务器响应的业务数据是否携带有重定向URL,本领域技术人员可以理解的是,在所述源站服务器响应的业务数据携带有重定向URL时,若所述CDN节点直接将所述源站服务器响应的业务数据返回至所述用户终端,所述用户终端将根据接收的业务数据中携带的重定向URL重定向后继续访问,以获取目标数据,其中,所述用户终端在继续访问的过程中甚至还可能需要多次重定向。显然,这与CDN的初衷是有悖的,因此,在本实施例中,当所述业务请求指向的业务数据(即源站服务器基于所述业务请求响应的业务数据)携带有重定向URL时,所述CDN节点基于所述重定向URL重定向,在接收到所述重定向URL对应的源站服务器响应的业务数据时,继续判断重定向URL对应的源站服务器所响应的业务数据是否携带有重定向URL,是则继续重定向,否则转入步骤S30。

步骤S30,所述CDN节点将所述未携带重定向URL的业务数据存储为所述业务请求指向的业务数据,并将所述未携带重定向URL的业务数据发送至所述用户终端;

本实施例中,所述CDN节点在获取到未携带重定向URL的业务数据时,将所述未携带重定向URL的业务数据存储为所述业务请求指向的业务数据,以供所述CDN节点再次接收到所述业务请求时,直接使用存储的所述未携 带重定向URL的业务数据提供服务;在存储所述未携带重定向URL的业务数据的同时,所述CDN节点还将所述未携带重定向URL的业务数据作为所述业务请求指向的业务数据发送至所述用户终端,供其呈现给用户。在其他实施例中,所述CDN节点还可以在存储所述未携带重定向URL的业务数据之前或者之后发送所述未携带重定向URL的业务数据至所述用户终端。

步骤S40,在当前存储有所述业务请求指向的业务数据时,所述CDN节点直接将所述业务请求指向的业务数据发送至所述用户终端。

容易理解的是,CDN节点存储业务数据的目的在于再次接收到指向存储的业务数据的业务请求时,直接用存储的所述业务数据提供服务,以达到网络加速的目的,因此,本实施例中,在当前存储有所述业务请求指向的业务数据时,所述CDN节点直接将所述业务请求指向的业务数据发送至所述用户终端,供其呈现给用户。

在其他实施例中,所述CDN节点还可以在预设时间段内未接收到指向存储的业务数据的业务请求时,删除存储的所述业务数据。

其中,所述预设时间段可按实际需要进行设置,例如,本实施例优选将所述预设时间段设置为24小时,本领域技术人员可以理解的是,通过定期删除长时间未被访问的业务数据,能够提升CDN节点存储空间的利用率。

本实施例提出的数据推送方法,CDN节点在接收到用户终端的业务请求时,若当前未存储所述业务请求指向的业务数据,且所述业务请求指向的业务数据携带重定向URL,则基于所述重定向URL获取未携带重定向URL的业务数据,并将所述未携带重定向URL的业务数据存储为所述业务请求指向的业务数据,以及将所述未携带重定向URL的业务数据作为所述业务请求指向的业务数据发送至所述用户终端,当再次接收到所述业务请求时,所述CDN节点即可用存储的所述未携带重定向URL的业务数据提供服务,无需用户终端进行重定向跳转,提高用户终端获取数据的效率。

进一步的,基于第一实施例,提出本发明数据推送方法的第二实施例,在本实施例中,上述步骤S40之前,还包括:

在当前存储有所述业务请求指向的业务数据时,所述CDN节点判断所述业务请求指向的业务数据是否携带有重定向URL;

在所述业务请求指向的业务数据未携带有重定向URL时,执行上述步骤S40;

所述判断所述业务请求指向的业务数据是否携带有重定向URL的步骤之后,所述数据推送方法还包括步骤:

在所述业务请求指向的业务数据携带有重定向URL时,所述CDN节点基于所述重定向URL获取未携带重定向URL的业务数据;

所述CDN节点采用未携带重定向URL的业务数据更新所述业务请求指向的业务数据,并将未携带重定向URL的业务数据发送至所述用户终端。

需要说明的是,在实际应用中,所述CDN节点存储的业务数据可能是历史基于现有技术获取的,可能存在携带重定向URL的情况,因此,在本实施例中,为确保所述CDN节点能够有效的提供加速服务,在当前存储有所述业务请求指向的业务数据时,所述CDN节点首先判断所述业务请求指向的业务数据是否携带有重定向URL;若所述业务请求指向的业务数据未携带有重定向URL时,所述CDN节点直接将所述业务请求指向的业务数据发送至所述用户终端,供用户终端将其呈现给用户;若所述业务请求指向的业务数据携带有重定向URL时,所述CDN节点基于所述重定向URL获取未携带重定向URL的业务数据,其中,所述CDN节点基于所述重定向URL获取未携带重定向URL的业务数据具体可参照第一实施例,此处不再赘述;在获取到未携带重定向URL的业务数据时,所述CDN节点采用未携带重定向URL的业务数据更新所述业务请求指向的业务数据,并将未携带重定向URL的业务数据发送至所述用户终端,供其呈现给用户。

进一步的,基于第二实施例,提出本发明数据推送方法的第三实施例,在本实施例中,所述业务请求指向的业务数据携带有HTTP状态码,所述CDN节点判断所述业务请求指向的业务数据是否携带有重定向URL的步骤包括:

所述CDN节点判断所述业务请求指向的业务数据所携带的HTTP状态码是否与预设HTTP状态码一致,其中,当所述HTTP状态码与预设HTTP状态码一致时,所述业务请求指向的业务数据携带有重定向URL。

需要说明的是,HTTP状态码(HTTP Status Code)是用以表示服务器HTTP响应状态的3位数字代码,它由RFC 2616规范定义,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774以及RFC 4918等规范扩展。具体的,HTTP状态码包括1字头的消息类状态码、2字头的成功类状态码、3字头的重定向类状态码、4字头的请求错误类状态码以及5字头的服务器错误类状态码,例如,常见的HTTP状态码“404”表示请求失败,请求得到的资源未在服务器上发现,“404”被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。

本实施例中,所述CDN节点基于3字头的重定向类状态码判断所述业务请求指向的业务数据是否携带有重定向URL,具体的,所述CDN节点优选通过HTTP状态码“301”或“302”进行判断,即本实施例将所述预设HTTP状态码设为“301”或“302”。其中,301”表示被请求的资源已永久移动到新位置,且新的永久性的URL在响应的Location字段中返回;“302”表示请求的资源临时从不同的URL响应,且临时的URL在响应的Location字段中返回。

例如,当所述CDN节点提取的所述业务请求指向的业务数据携带的HTTP状态码为“301”或“302”时,确定所述业务请求指向的业务数据携带有重定向URL;当所述CDN节点提取的所述业务请求指向的业务数据携带的HTTP状态码不为“301”且不为“302”时,确定所述业务请求指向的业务数据未携带有重定向URL。

进一步的,基于第一实施例,提出本发明数据推送方法的第四实施例,在本实施例中,当所述业务请求指向的业务数据的类型为网页数据时,所述CDN节点发送所述业务请求指向的业务数据的步骤之前,还包括:

所述CDN节点判断所述业务请求指向的业务数据所采用的编码方式是否与所述用户终端采用的编码方式相同;

在所述业务请求指向的业务数据所采用的编码方式与所述用户终端采用的编码方式相同时,执行所述CDN节点发送所述业务请求指向的业务数据的步骤。

需要说明的是,在互联网中,存在多种类型的数据,例如,网页数据、音频数据以及视频数据等。我们在显示器上看见的文字、图片等信息在电脑里面其实并不是我们看见的样子,即使你知道所有信息都存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放 大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方代表数字1,凹的地方代表数字0。硬盘只能用0和1来表示所有文字、图片等信息。那么字母“A”在硬盘上是如何存储的呢?可能小张电脑存储字母“A”是1100001,而小王电脑存储字母“A”是11000010,这样双方交换信息时就会误解。比如小张把1100001发送给小王,小王并不认为1100001是字母”A”,可能认为这是字母”X”,也就是说,小张和小王的电脑使用了不同的编码方式。本领域技术人员可以理解的是,当所述业务请求指向的业务数据的类型为网页数据时,只有所述用户终端采用的编码方式与所述业务请求指向的业务数据采用的编码方式相同时,所述用户终端才能正常的将所述业务请求指向的业务数据呈现给用户,确保显示的网页不出现乱码。

本实施例中,所述用户终端向所述CDN节点发送的所述业务请求包括所述用户终端采用的编码方式,同时,所述CDN节点可以通过解析出所述业务请求指向的业务数据中的“charset=xxx”字段,确定所述业务请求指向的业务数据所采用的编码方式,其中的“xxx”部分就是所述业务请求指向的业务数据采用的编码,常用的编码包括GB2312,GBK,UTF-8,ISO8859-1等。在确定所述用户终端采用的编码方式以及确定所述业务请求指向的业务数据采用的编码方式之后,即可进行判断。

进一步地,为确保网页能够正常显示,所述CDN节点判断所述业务请求指向的业务数据所采用的编码方式是否与所述用户终端采用的编码方式相同的步骤之后,还包括:

在所述业务请求指向的业务数据所采用的编码方式与所述用户终端采用的编码方式不同时,所述CDN节点采用所述用户终端的编码方式对所述业务请求指向的业务数据进行重编码,并将重编码后的业务数据发送至所述用户终端。

容易理解的是,在所述用户终端采用的编码方式与所述业务请求指向的业务数据采用的编码方式不同时,所述CDN节点采用所述用户终端的编码方式对所述业务请求指向的业务数据进行重编码,重编码后的业务数据即可供所述用户终端正常解析,将网页内容呈现给用户。

本领域技术人员可以理解的是,在其他实施例中,所述CDN节点在从源站服务器获取到未携带重定向URL的业务数据之后,还可以分别采用多种 常用的编码方式对所述未携带重定向URL的业务数据进行重编码,并分别存储重编码后的业务数据,以进一步提升用户终端获取数据的效率。

进一步的,本发明还提供一种数据推送装置,参照图2,在本发明数据推送装置的第一实施例中,所述数据推送装置包括:

第一判断模块10,用于当其所在内容分发网络CDN节点接收到用户终端发送的业务请求时,判断所述CDN节点当前是否存储有所述业务请求指向的业务数据;

本实施例提供的数据推送装置可以应用于互联网访问中,例如,本实施例提供的数据推送装置内置于CDN节点运行,所述CDN节点在接收到用户终端的网页访问请求,且当前未存储有所述网页访问请求指向的网页数据时,根据所述网页访问请求向源站服务器回源所述网页访问请求指向的网页数据,并在所述源站服务器响应的网页数据携带重定向URL时,基于所述重定向URL获取未携带重定向URL的网页数据;所述CDN节点将所述未携带重定向URL的网页数据作为所述网页访问请求指向的网页数据存储,并将所述未携带重定向URL的网页数据发送至所述用户终端,容易理解的是,当存储的所述未携带重定向URL的网页数据再次被访问时,所述CDN节点即可用存储的所述未携带重定向URL的网页数据提供服务,减小响应时间,提高用户终端获取数据的效率。

具体的,用户终端在接收到用户基于浏览器的地址栏输入的URL,或者基于浏览器显示的超链接地址触发的点击操作,或者基于流媒体播放器触发的播放操作时,生成携带相应URL(或者IP地址)的业务请求发送至第一判断模块10所在的CDN节点;所述第一判断模块10在基于所述CDN节点在接收到所述用户终端发送的业务请求时,判断所述CDN节点当前是否存储有所述业务请求指向的业务数据,以根据判断结果执行相应的操作,例如,在存储有所述业务请求指向的业务数据时,可直接将所述业务请求指向的业务数据发送至所述用户终端。

在其他实施例中,所述第一判断模块10判断所述CDN节点当前是否存储有所述业务请求指向的业务数据之前,还包括:

CDN路由设备接收所述用户终端发送的原始业务请求,所述原始业务请 求携带有所述用户终端请求的原始URL,所述原始URL对应的域名为所述用户终端请求的原始域名;所述CDN路由设备向所述用户终端返回重定向响应消息,所述重定向响应消息携带的URL对应的域名中包括所述CDN路由设备为所述用户终端选择的加速节点(第一实施例中所述的CDN节点)的标识,以供所述用户终端向所述CDN节点发送业务请求,由所述CDN节点提供加速服务。

例如,用户终端向CDN路由设备发送的业务请求中携带的URL为http://www.ZTE.com/news/a.html,其中,www.ZTE.com对应的内容由CP(Content Provider,内容提供商)提供,并且通过CDN提供内容分发加速服务,CDN路由设备根据预定策略为用户终端选择一个加速节点(加速节点的标识为对应第一实施例中所述CDN节点的标识C1),构造新的URL为http://C1.cdn.net/www.ZTE.com/news/a.html。用户终端向所述新的URL发送业务请求即可获取到所述CDN节点存储的相应页面的页面数据。

获取模块20,用于在所述CDN节点当前未存储有所述业务请求指向的业务数据,且所述业务请求指向的业务数据携带有重定向统一数据定位符URL时,基于所述重定向URL获取未携带重定向URL的业务数据;

本实施例中,在所述CDN节点当前未存储有所述业务请求指向的业务数据时,获取模块20根据所述业务请求携带的URL(或者IP地址)向源站服务器转发所述业务请求,以接收所述源站服务器响应的业务数据;在基于所述CDN节点接收到所述源站服务器响应的业务数据时,所述获取模块20判断所述源站服务器响应的业务数据是否携带有重定向URL,本领域技术人员可以理解的是,在所述源站服务器响应的业务数据携带有重定向URL时,若直接将所述源站服务器响应的业务数据返回至所述用户终端,所述用户终端将根据接收的业务数据中携带的重定向URL重定向后继续访问,以获取目标数据,其中,所述用户终端在继续访问的过程中甚至还可能需要多次重定向。显然,这与CDN的初衷是有悖的,因此,在本实施例中,当所述业务请求指向的业务数据(即源站服务器基于所述业务请求响应的业务数据)携带有重定向URL时,所述获取模块20基于所述重定向URL重定向,在接收到所述重定向URL对应的源站服务器响应的业务数据时,继续判断重定向URL对应的源站服务器所响应的业务数据是否携带有重定向URL,是则继续 重定向,否则将获取的未携带有重定向URL的业务数据推送至发送模块30进行处理。

发送模块30,用于将所述未携带重定向URL的业务数据存储为所述业务请求指向的业务数据,并将所述未携带重定向URL的业务数据发送至所述用户终端;

本实施例中,在获取到未携带重定向URL的业务数据时,发送模块30将所述未携带重定向URL的业务数据存储为所述业务请求指向的业务数据,供再次接收到所述业务请求时,直接使用存储的所述未携带重定向URL的业务数据提供服务;在存储所述未携带重定向URL的业务数据的同时,所述发送模块30还将所述未携带重定向URL的业务数据作为所述业务请求指向的业务数据发送至所述用户终端,供其呈现给用户。在其他实施例中,所述发送模块30还可以在存储所述未携带重定向URL的业务数据之前或者之后发送所述未携带重定向URL的业务数据至所述用户终端。

所述发送模块30还用于在所述CDN节点当前存储有所述业务请求指向的业务数据时,直接将所述业务请求指向的业务数据发送至所述用户终端。

容易理解的是,CDN节点存储业务数据的目的在于再次接收到指向存储的业务数据的业务请求时,直接用存储的所述业务数据提供服务,以达到网络加速的目的,因此,本实施例中,在当前存储有所述业务请求指向的业务数据时,所述发送模块30直接将所述业务请求指向的业务数据发送至所述用户终端,供其呈现给用户。

在其他实施例中,所述数据推送装置还包括删除模块,用于当所述CDN节点在预设时间段内未接收到指向存储的业务数据的业务请求时,删除存储的所述业务数据。

其中,所述预设时间段可按实际需要进行设置,例如,本实施例优选将所述预设时间段设置为24小时,本领域技术人员可以理解的是,通过定期删除长时间未被访问的业务数据,能够提升CDN节点存储空间的利用率。

本实施例提出的数据推送装置,内置于CDN接收到运行,所述CDN节点在接收到用户终端的业务请求时,若当前未存储所述业务请求指向的业务数据,且所述业务请求指向的业务数据携带重定向URL,则基于所述重定向URL获取未携带重定向URL的业务数据,并将所述未携带重定向URL的业 务数据存储为所述业务请求指向的业务数据,以及将所述未携带重定向URL的业务数据作为所述业务请求指向的业务数据发送至所述用户终端,当再次接收到所述业务请求时,所述CDN节点即可用存储的所述未携带重定向URL的业务数据提供服务,无需用户终端进行重定向跳转,提高用户终端获取数据的效率。

进一步的,基于第一实施例,提出本发明数据推送装置的第二实施例,在本实施例中,所述数据推送装置还包括第二判断模块,用于在所述CDN节点当前存储有所述业务请求指向的业务数据时,判断所述业务请求指向的业务数据是否携带有重定向URL;

所述发送模块30还用于在所述业务请求指向的业务数据未携带有重定向URL时,直接将所述业务请求指向的业务数据发送至所述用户终端;

所述获取模块20还用于在所述业务请求指向的业务数据携带有重定向URL时,基于所述重定向URL获取未携带重定向URL的业务数据;

所述发送模块30还用于采用未携带重定向URL的业务数据更新所述业务请求指向的业务数据,并将未携带重定向URL的业务数据发送至所述用户终端。

需要说明的是,在实际应用中,所述CDN节点存储的业务数据可能是历史基于现有技术获取的,可能存在携带重定向URL的情况,因此,在本实施例中,为确保所述CDN节点能够有效的提供加速服务,在当前存储有所述业务请求指向的业务数据时,第二判断模块首先判断所述业务请求指向的业务数据是否携带有重定向URL;若所述业务请求指向的业务数据未携带有重定向URL时,所述发送模块30直接将所述业务请求指向的业务数据发送至所述用户终端,供用户终端将其呈现给用户;若所述业务请求指向的业务数据携带有重定向URL时,所述获取模块20基于所述重定向URL获取未携带重定向URL的业务数据,其中,所述获取模块20基于所述重定向URL获取未携带重定向URL的业务数据具体可参照第一实施例,此处不再赘述;在获取到未携带重定向URL的业务数据时,所述发送模块30采用未携带重定向URL的业务数据更新所述业务请求指向的业务数据,并将未携带重定向URL的业务数据发送至所述用户终端,供其呈现给用户。

此外,在本实施例中,所述获取模块20判断所述源站服务器响应的业务数据是否携带有重定向URL通过调用所述第二判断模块实现。

进一步的,基于第二实施例,提出本发明数据推送装置的第三实施例,在本实施例中,所述业务请求指向的业务数据携带有HTTP状态码,所述第二判断模块还用于判断所述业务请求指向的业务数据所携带的HTTP状态码是否与预设HTTP状态码一致,其中,当所述HTTP状态码与预设HTTP状态码一致时,所述业务请求指向的业务数据携带有重定向URL。

需要说明的是,HTTP状态码(HTTP Status Code)是用以表示服务器HTTP响应状态的3位数字代码,它由RFC 2616规范定义,并得到RFC2518、RFC 2817、RFC 2295、RFC 2774以及RFC 4918等规范扩展。具体的,HTTP状态码包括1字头的消息类状态码、2字头的成功类状态码、3字头的重定向类状态码、4字头的请求错误类状态码以及5字头的服务器错误类状态码,例如,常见的HTTP状态码“404”表示请求失败,请求得到的资源未在服务器上发现,“404”被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。

本实施例中,所述第二判断模块基于3字头的重定向类状态码判断所述业务请求指向的业务数据是否携带有重定向URL,具体的,所述第二判断模块优选通过HTTP状态码“301”或“302”进行判断,即本实施例将所述预设HTTP状态码设为“301”或“302”。其中,301”表示被请求的资源已永久移动到新位置,且新的永久性的URL在响应的Location字段中返回;“302”表示请求的资源临时从不同的URL响应,且临时的URL在响应的Location字段中返回。

例如,当所述第二判断模块提取的所述业务请求指向的业务数据携带的HTTP状态码为“301”或“302”时,确定所述业务请求指向的业务数据携带有重定向URL;当所述CDN节点提取的所述业务请求指向的业务数据携带的HTTP状态码不为“301”且不为“302”时,确定所述业务请求指向的业务数据未携带有重定向URL。

进一步的,基于第一实施例,提出本发明数据推送装装置的第四实施例, 在本实施例中,当所述业务请求指向的业务数据的类型为网页数据时,所述数据推送装置还包括第三判断模块,用于判断所述业务请求指向的业务数据所采用的编码方式是否与所述用户终端采用的编码方式相同;

所述发送模块还用于在所述业务请求指向的业务数据所采用的编码方式与所述用户终端采用的编码方式相同时,将所述业务请求指向的业务数据发送至所述用户终端。

需要说明的是,在互联网中,存在多种类型的数据,例如,网页数据、音频数据以及视频数据等。我们在显示器上看见的文字、图片等信息在电脑里面其实并不是我们看见的样子,即使你知道所有信息都存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方代表数字1,凹的地方代表数字0。硬盘只能用0和1来表示所有文字、图片等信息。那么字母“A”在硬盘上是如何存储的呢?可能小张电脑存储字母“A”是1100001,而小王电脑存储字母“A”是11000010,这样双方交换信息时就会误解。比如小张把1100001发送给小王,小王并不认为1100001是字母”A”,可能认为这是字母”X”,也就是说,小张和小王的电脑使用了不同的编码方式。本领域技术人员可以理解的是,当所述业务请求指向的业务数据的类型为网页数据时,只有所述用户终端采用的编码方式与所述业务请求指向的业务数据采用的编码方式相同时,所述用户终端才能正常的将所述业务请求指向的业务数据呈现给用户,确保显示的网页不出现乱码。

本实施例中,所述用户终端向所述CDN节点发送的所述业务请求包括所述用户终端采用的编码方式,同时,所述第三判断模块可以通过解析出所述业务请求指向的业务数据中的“charset=xxx”字段,确定所述业务请求指向的业务数据所采用的编码方式,其中的“xxx”部分就是所述业务请求指向的业务数据采用的编码,常用的编码包括GB2312,GBK,UTF-8,ISO8859-1等。在确定所述用户终端采用的编码方式以及确定所述业务请求指向的业务数据采用的编码方式之后,所述第三判断模块即可进行判断。

进一步地,为确保网页能够正常显示,所述发送模块30还用于在所述业务请求指向的业务数据所采用的编码方式与所述用户终端采用的编码方式不同时,采用所述用户终端的编码方式对所述业务请求指向的业务数据进行重 编码,并将重编码后的业务数据发送至所述用户终端。

容易理解的是,在所述用户终端采用的编码方式与所述业务请求指向的业务数据采用的编码方式不同时,所述发送模块30采用所述用户终端的编码方式对所述业务请求指向的业务数据进行重编码,重编码后的业务数据即可供所述用户终端正常解析,将网页内容呈现给用户。

本领域技术人员可以理解的是,在其他实施例中,在所述获取模块20从源站服务器获取到未携带重定向URL的业务数据之后,所述发送模块30还可以分别采用多种常用的编码方式对所述未携带重定向URL的业务数据进行重编码,并分别存储重编码后的业务数据,以进一步提升用户终端获取数据的效率。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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