背景技术
在局域网或互联网中,往往有向用户发送信息或投放广告的需要。比如:在网吧这样的局域网中,网吧管理***可以提示用户上网剩余时间;在咖啡馆中,管理***的服务器可以向用户提示友好信息;在政府机构***中,可通过服务器向某区域上网用户通报政府公告;电信级运营商可通过服务器向特定用户投放广告,从而加快网络铺设成本的回收。
现有网络管理***一般采用C/S结构,即客户端/服务器模式的设计。然而,众所周知,C/S结构的***存在一些不可避免的弊端。其中最重要的一点是,C/S结构的***必须要在用户的计算机上安装特定的客户端软件,因此必须要所有用户均在可控制的范围内,从而限制了信息推送的广度,同时也约束了使用的网络类型。
以图1所示的网吧管理***为例具体说明该***在向用户客户机103推送信息的时序:
(1)***管理员使用管理员客户机101上的客户端软件,向***服务器102提交需要推送的信息;
(2)管理员客户机101上的客户端软件通过网络把信息提交给集中部署的服务器102上的管理***。
(3)服务器102上的管理***通过网络把信息推送到特定的用户客户机103上。
(4)用户客户机103的客户端软件把相应的信息呈现给用户。
如上所述,在C/S结构中,客户端程序的任务是将用户的要求提交给服务器程序,再将服务器程序返回的结果以特定的形式显示给用户;服务器程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。一旦C/S结构的***的各部分模块中有一部分改变,就要关联到其它模块的变动,因此使***升级以及维护成本比较大。
浏览器/服务器结构简称为B/S(Browser/Server)结构,是随着因特网技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过Web浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。它主要利用了不断成熟的Web浏览器技术,结合浏览器的多种Script语言(VBScript、javascript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件***构造技术。
B/S结构的***与C/S结构的相比,大大简化了客户端,只要客户端设备能上网就可以。对于B/S而言,开发、维护等几乎所有工作也都集中在服务器端,当对网络应用进行升级时,只需更新服务器端的软件就可以,这降低了***维护与升级的成本。如果在原来的C/S结构***中,客户端的软件***升级比较频繁,那么B/S结构的网络管理***的优势就更加明显——无论用户规模有多大,所有的升级操作只需要针对服务器进行,这对人力、时间、费用的节省是相当惊人的。
因此,迫切需要一种解决方案,其能够将B/S结构的设计应用到向用户推送各类信息的网络管理***中。
发明内容
为克服现有技术中的上述不足,本发明的目的在于提供一种基于浏览器/服务器结构的、便于***升级的向客户端推送信息的方法,其包括以下步骤:拦截步骤,拦截客户端发出的用于获取网络内容的请求信息,所述请求信息包括目标访问网址;生成步骤,基于所述请求信息生成中间网页内容;以及发送步骤,将所述中间网页内容作为对所述请求信息的响应发送给所述客户端;其中,所述中间网页内容包括用于引导所述客户端访问目标访问网址的内容和要向所述客户端推送信息的功能脚本。
在本发明的一个实施例中,所述拦截步骤中,由第一数据处理装置拦截所述客户端发出的用于获取网络内容的所述请求信息,并将所述请求信息转发给第二数据处理装置;所述生成步骤中,由所述第二数据处理装置基于所述请求信息生成中间网页内容;以及所述发送步骤中,由所述第二数据处理装置将所述中间网页内容作为对所述请求信息的响应发送给所述客户端。
在本发明的另一个实施例中,所述拦截步骤中,由第一数据处理装置拦截所述客户端发出的用于获取网络内容的所述请求信息,并将所接收到请求信息转发给第二数据处理装置;所述生成步骤中,由所述第二数据处理装置基于所述请求信息生成中间网页内容,并将所生成的中间网页内容发送给所述第一处理装置;以及所述发送步骤中,由所述第一处理装置将从所述第二数据处理装置发来的所述中间网页内容作为对所述请求信息的响应发送给所述客户端。
在另一个实施例中,所述请求信息还包括所述客户端的标识信息,所述方法还包括在所述生成步骤之前执行判断步骤,其中:所述判断步骤中,基于所述客户端的标识信息,判断是否满足预设条件;若判断结果为是,进入所述生成步骤,反之,结束处理。
其中,所述预设条件包括以下至少之一:自上次向所述客户端发送所述中间网页内容起,经过了预设时间段;存在未向所述客户端发送过的所述要向所述客户端推送的信息的功能脚本;向所述客户端发送所述要向所述客户端推送的信息的次数小于预设阈值;所述客户端的连续上网时长超过第一指定时长;所述客户端的连续上网时长小于第二指定时长。
根据本发明的一个实施例,所述中间网页内容为超文本标记语言文件,利用所述超文本标记语言文件中的IFRAME或FRAME标签来描述用于引导所述客户端访问目标访问网址的内容,利用所述超文本标记语言文件中的SCRIPT标签来表示要向所述客户端推送信息的功能脚本。
本发明还提供了一种向客户端推送信息的装置,其包括:拦截模块,拦截所述客户端发出的用于获取网络内容的所述请求信息,所述请求信息包括目标访问网址;生成模块,基于所述请求信息生成中间网页内容;以及发送模块,将所述中间网页内容作为对所述请求信息的响应发送给所述客户端;其中,所述中间网页内容包括用于引导所述客户端访问目标访问网址的内容和要向所述客户端推送的信息的功能脚本。
根据本发明的一个实施例,所述装置还包括判断模块,其用于基于所述请求信息中的客户端的标识信息,判断是否满足预设条件;若判断结果为是,则调用所述生成模块,反之,结束处理。
根据本发明的一个实施例,所述预设条件包括以下至少之一:自上次向所述客户端发送所述中间网页内容起,经过了预设时间段;存在未向所述客户端发送过的所述要向所述客户端推送的信息;向所述客户端发送所述要向所述客户端推送的信息的次数小于预设阈值;所述客户端的连续上网时长超过第一指定时长;所述客户端的连续上网时长小于第二指定时长。
根据本发明的一个实施例,所述中间网页内容为超文本标记语言文件,利用所述超文本标记文件中的IFRAME或FRAME标签来描述用于引导所述客户端访问目标访问网址的内容,利用所述超文本标记语言文件中的SCRIPT标签来表示要向所述客户端推送信息的功能脚本。
本发明还提供了一种用于向客户端推送信息的***,其包括:第一数据处理装置,其用于拦截并转发所述客户端通过浏览器发出的对网络内容的请求信息,所述请求信息包括目标访问网址;以及第二数据处理装置,其用于接收所述请求信息、根据所述请求信息产生中间网页内容并返回给所述客户端,其中,所述中间网页内容包括用于引导所述客户端访问所述目标访问网址的内容和要向所述客户端推送的信息的功能脚本。
此外,本发明还提供了一种用于向客户端推送信息的***,包括:第一数据处理装置,其用于拦截并转发所述客户端通过浏览器发出的对网络内容的请求信息,所述请求信息包括目标访问网址;以及第二数据处理装置,其用于接收所述请求信息、根据所述请求信息产生中间网页内容并返回给所述第一数据处理装置,由所述第一数据处理装置再将生成的所述中间网页内容转发给所述客户端,其中,所述中间网页内容包括用于引导所述客户端访问目标访问网址的内容和要向所述客户端推送的信息的功能脚本。
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:(1)由于基于浏览器/服务器结构,用户设备只要能够上网就可以对其实现信息的推送,当对网络应用进行升级时,只需更新服务器端的软件,这降低了***维护与升级的成本;(2)流量处理设备产生特定的中间网页内容,以满足不同的需求,如针对运营商可实现广告投放,针对网吧可实现上网剩余时间的提示,针对政府机关可以发布一些公告。因此,根据本发明的向用户设备推送信息的***,灵活性高,而且便于用户操作管理。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
以下将结合附图详细描述本发明的各个实施例。
图2是根据本实施例向客户端203推送信息的网络拓扑结构图。在该图中,安装了Web浏览器的各个客户端203均通过第一数据处理装置201连接到互联网204上。
在本实施例中,第一数据处理装置201例如可以是路由器、网关等网络接入设备,其用于将本地网络中的各个终端设备进行互连,并可截获它们向互联网发送的请求信息。如图2所示,第二数据处理装置202可作为客户端的对等设备如流量处理设备,通过路由器等连接到互联网204上,也可以作为各个客户端203的服务器连接到互联网204上。
例如,在咖啡馆的网吧管理***中,第二数据处理装置202可以是各个客户端203的服务器,客户端需要通过服务器和路由器才能接入到互联网204中,从而访问网络内容。而针对电信运营商组建的***中,客户端以及作为流量处理设备的第二数据处理装置202均通过骨干网路由器互连到互联网204。
作为第二数据处理装置202的流量处理设备可包括用于实现网络协议如超文本传输协议(Hypertext Tansmit Protocal,HTTP)GET流量的接入的流量接入模块、用于实现网络协议如HTTP进行解析的流量解析模块、用以过滤特定用户标识的用户代理标识(User Agent,简称UA)过滤模块、用户识别模块、从例如GET报文中提取数据进行分析的报文分析模块、信息推送控制模块、信息推送模块,以及优选地,还可包括***日志模块、用户信息数据存储模块以及***配置模块。
图3显示了根据本实施例如何基于浏览器/服务器结构实现向用户推送信息的时序图。在第①步中,网络用户在客户端浏览器303中输入目标访问网址。在第②步中,向路由交换设备301发送要获取某网络内容的请求信息,该请求信息中已包含有目标访问网址,或者UA标识以及客户端IP地址等信息。其中,目标访问网址可以为目标站点的IP地址或域名等。
在第③步中,路由交换设备301将用户的该访问请求信息拦截下来,并转发给流量处理设备/服务器302。其中,路由交换设备301将输入流量通过旁路的方式分发到流量处理设备/服务器302。
拦截的用户请求信息报文的具体格式和内容示例如下(以标准的HTTPGET报文为例,以下是HTTP报文头的文本信息):
Accepttext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip,deflate
Accept-Languagezh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Connection keep-alive
Cookie
CNZZDATA2533379=cnzz_eid=28492230-1339039770-http%253A%252F%252Fimos.example.com%252Findex.dev.html&ntime=1339054267&cnzz_a=17&retime=1339055464546&sin=none<ime=1339055464546&rtime=0;
CNZZDATA2533386=cnzz_eid=44744182-1339041086-http%253A%252F%252Fimos.example.com%252Findex.dev.html&ntime=1339054267&cnzz_a=4&retime=1339055467500&sin=none<ime=1339055467500&rtime=0
Hostimos.example.com
User-AgentMozilla/5.0(Windows NT 5.1;rv:12.0)Gecko/20100101Firefox/12.0
接下来,由流量处理设备/服务器302根据请求信息生成中间网页内容,该中间网页内容中包含了用于引导客户端访问目标访问网址的内容和要向客户端推送的信息的功能脚本。本实施例中,该中间网页内容为超文本标记语言(Hypertext Markup Language,HTML)文件。此外,根据不同的应用,流量处理设备/服务器302可以将生成的中间网页内容作为请求信息的响应通过路由交换设备301发送给客户端(如虚线箭头所指示的第④和⑤步所示),或者直接发送给客户端(如实线箭头所指示的第⑥步所示)。
在第⑦步中,在客户端的浏览器303上显示该中间网页内容,并引导用户继续访问之前输入的目标网址的网络内容。在第⑧步中,客户端浏览器303本地运行中间网页内容中的脚本任务,以向用户显示提示信息,如提示上网时长、发布公告、投放广告等。
如图4所示,其中显示了根据本实施例如何向用户推送信息的方法的流程图。该方法从步骤S401开始,用户通过其客户端浏览器输入目标访问网址以访问需要的网络内容,该目标网址包含在网络请求信息中。
在步骤S402中,拦截客户端发出的用于获取网络内容的请求信息。该请求信息包括目标访问网址。更具体地,该请求用于获取来自目标访问网址的网络内容。
此外,该请求信息还可包括用户代理(User Agent,UA)信息、用户IP地址等。UA是一个特殊字符串头,通过UA信息可以识别出客户端使用的操作***及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
在步骤S403中,基于所截获的请求信息生成中间网页内容。在本实施例中,中间网页内容以超文本标记文件的形式体现,其中包含了引导用户继续访问原来输入的目标访问网址的内容和要向客户端推送的信息。在本实施例中,要推送的信息设置在超文本标记语言文件的脚本标签中。
在步骤S404中,将该中间网页内容发送给客户端,作为对该请求信息的响应。该中间网页内容包括用于引导客户端访问目标访问网址的内容和要向客户端推送的信息的功能脚本。这样,用户可以基于用于引导客户端访问目标访问网址的内容、进一步通过客户端从目标访问网址获取所要访问的网络内容,还可以在浏览器中看到所推送的信息。从而可以在不需要安装专用软件的情况下、方便地浏览推送的信息。
图5显示了根据本实施例的另一个方法实施例的流程图。
如图所示,该方法从步骤S501开始,用户输入要访问某网络内容的请求信息。步骤S502中,第一数据处理装置201,例如路由交换设备等拦截通过客户端发出的用于获取网络内容的请求信息,并将该信息转发给第二数据处理装置202。步骤S503中,第二数据处理装置202例如流量处理设备或者服务器提取请求信息中的客户标识,例如UA、IP地址,从而获取用户使用的操作***、CPU类型、浏览器类型及版本等信息。根据流量处理设备或服务器中包含的数据库中的记录,判断该标识是否满足以下预设条件(步骤S504)。若判断结果为是,进入下一步骤处理。否则,结束处理。
上述预设条件包括,但不限于:(a)自上次向客户端发送中间网页内容起,经过了一预设的时间段;(b)存在未向客户端发送过的要向客户端推送的信息;(c)向客户端发送要推送的信息的次数小于预设阈值;(d)客户端的连续上网时长超过第一指定时长;(e)客户端的连续上网时长小于第二指定时长。其中,条件(a)-(c)可以是针对投放广告,发布信息等情况的。例如,在一段时间里已通过本实施例的方法向客户端推送过一条广告或公告信息时,为不对用户产生干扰,这时可以不必再产生中间网页内容,以免在较短的时间里重复推送信息。还可以通过设定推送相同信息的次数来避免过多地发送同样的信息的情况出现。
为了提示用户上网的时间,还可以记录下用户第一次发送访问请求信息的时间,当用户连续上网的时间超过预设的第一指定时间但小于第二指定时长时,可向用户推送提示信息,以免用户上网超时,而产生不必要的额外的费用。
以上要推送的提示信息由第二数据处理装置202通过生成中间网页内容而产生。在步骤S505中,第二数据处理装置202例如流量处理设备或服务器对用户的请求信息进行处理,生成一个特定的超文本标记语言HTML文件来表示中间网页。
图6显示了构成中间网页内容的HTML文件的整体架构图。其中,一个网页对应于一个HTML文件,HTML文件以.htm或.html为扩展名。可以使用任何能够生成TXT类型源文件的文本编辑来产生HTML文件。
如图6所示,标准的HTML文件都具有一个基本的整体结构,即HTML文件的开头与结尾标志和HTML的头部(HEAD)与实体(BODY)两大部分。HEAD部分嵌入了TITLE标签。在BODY部分嵌入了IFRAME标签和SCRIPT标签。在本实施例中,IFRAME标签内容用来实现引导用户到原来输入的网址以访问之前所想要的网络内容,而SCRIPT标签内容用来执行各种脚本任务。
本实施例在产生特定的中间网页过程中,第二数据处理设备202如流量处理设备可在HTML文件的BODY标签中构造一个IFRAME(或FRAME)标签,用来引导用户访问原来意图访问的网络内容。
在HTML文件的BODY、HEAD或其他位置标签中构造一个到多个的SCRIPT标签或其他可以在浏览器上执行任务的标签,如applet等。这个或这些可执行任务的标签用来执行设计意图的任务。针对运营商,这种任务一般为广告投放等,对于网吧应用而言,这种任务一般为提示上网剩余时间等。针对政府机关的应用而言,这种推送信息的任务可以是发布公告,如紧急事件的通知、政府要闻等。
以下是中间网页的HTML代码:
以上HTML文件的代码仅是示例性的,用于说明本发明。在实际应用中,可以根据情况而进行更改。
这个中间网页的HTML代码是在浏览器上最终生成的,至于是由流量处理设备完成生成,还是由流量处理设备生成中间状态的脚本,由脚本最终生成HTML代码,对于本发明而言没有什么本质上的区别,均不影响发明目的的实现。
随后,在步骤S506中,根据不同的应用场合,由第二数据处理装置202将包含了引导访问网络内容和要推送的信息的中间网页直接发送给客户端,或者通过第一数据处理装置201将其转发给客户端。然后,在客户端处,运行中间网页中的脚本任务,从而完成本实施例的信息推送。这样,用户可以在不需要安装专用软件的情况下、方便地浏览推送的信息。
此外,以上用于向客户端推送信息的方法可在装置700中实现。该装置700如图7所示,其包括拦截模块701、生成模块702以及发送模块703。拦截模块701用于将客户端发出的用于获取网络内容的请求信息拦截下来,该请求信息中包括了用户之前在客户端浏览器上输入的目标访问网址。生成模块702基于所拦截的请求信息而生成中间网页内容。这里,中间网页内容包括用于引导客户端访问目标访问网址的内容和要向客户端推送的信息的功能脚本。之后,发送模块703将上述中间网页内容作为对请求信息的响应而发送给客户端。
在一个实施例中,为了合理地控制在一个时间段里向客户端推送同一条信息的次数,从而避免在较短的时间里重复推送信息,该装置还可包括设在生成模块702之前的判断模块704。判断模块704基于请求信息中的客户端标识信息如UA,在之前存储在数据库的信息表中查找,判断对应于该标识信息的记录是否满足预设条件。如果满足预设条件的话,才会调用生成模块702,从而生成中间网页内容。否则,不产生中间网页,此时,用户按照原来的方式继续访问网络内容,而不会有提示信息产生。
以上预设条件包括,但不限于:(a)自上次向客户端发送中间网页内容起,经过了一预设的时间段;(b)存在未向客户端发送过的要向客户端推送的信息;(c)向客户端发送要推送的信息的次数小于预设阈值;(d)客户端的连续上网时长超过第一指定时长;(e)客户端的连续上网时长小于第二指定时长。
其中,条件(a)-(c)可以是针对投放广告,发布信息等情况的。例如,在一段时间里已通过本实施例的方法向客户端推送过一条广告或公告信息时,为不对用户产生干扰,这时可以不必再产生中间网页内容,以免在较短的时间里重复推送信息。还可以通过设定推送相同信息的次数来避免过多地发送同样的信息的情况出现。
为了提示用户上网的时间,还可以记录下用户第一次发送访问网络内容的请求信息的时间,当用户连续上网的时间超过预设的第一指定时间但小于第二指定时长时,可向用户推送提示信息,以免用户上网超时,而产生不必要的额外的费用。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。