一种穿透私网、网关、proxy的页面推送方法
技术领域
本发明涉及一种页面推送方法,尤其涉及一种穿透私网、网关、proxy的页面推送方法。
背景技术
终端web页面推送技术是指当用户端使用浏览器浏览网页时,第三方设备(一般指页面推送服务器)根据用户端浏览网页的上行get报文,向用户端终端推送页面。页面推送服务器一般部署于核心路由器旁路,由路由器将通过该路由器的用户端上行报文分光至推送服务器,页面推送服务器根据用户端访问网页上行报文,向用户端终端推送页面。申请号为200910223404.6的发明专利:实现页面推送和控制的网络、页面推送方法、控制方法中就公开了这样一种页面推送的方法。
现有的推送服务器通常根据用户端终端源IP地址区分用户端,向用户端终端推送页面。为提高用户端感受,防止页面推送泛滥,通常需要对每个用户端设置推送间隔。一般推送间隔较大,如4个小时等。而由于现实网络中存在大量私网,当私网用户端访问网页时,私网内所有用户终端IP地址都相同,此时,由于传统页面推送服务器以IP地址区分用户端,会导致大量用户终端不能推送页面。
发明内容
本发明的目的在于提供一种能够区分私网用户端、单个用户端并且能够穿透私网,为每一个用户端推送页面的穿透私网、网关、proxy的页面推送方法。
本发明的目的还在于提供的穿透私网、网关、proxy的页面推送方法能够统计私网下用户终端的个数。
为了实现上述目的,本发明采用的技术方案如下:
本发明穿透私网、网关、proxy的页面推送方法,运行在包含页面推送服务器和信息服务器的网络中,包含:
在所述的信息服务器上设置透明页面A和推送页面B,在所述的页面推送服务器上设置两种用户端状态:私网用户和单个用户,并分别为不同用户状态的用户端设置不同的推送时间间隔:私网用户推送间隔和单个用户推送间隔;
所述的页面推送服务器获得用户端发送的触发页面推送的GET报文后,检查用户端的设置状态,如果用户端为单个用户,则判断距上次推送的时间有没有超过所述单个用户推送间隔,没有超过则直接结束本次推送,超过则重定向用户端报文,使用户端访问信息服务器上的透明页面A;如果用户端为私网用户,则判断所述用户端距上次推送的时间有没有超过所述私网用户推送间隔,如果没有超过则直接结束本次推送,如果超过则重定向用户端报文,使用户端访问信息服务器上的透明页面A;如果用户端没有记录,则将用户端状态设置为私网用户,并重定向用户端报文,使用户端访问信息服务器上的透明页面A;
所述信息服务器接收到用户端请求访问透明页面A的请求后,检查报文中是否携带了cookie,如果携带有cookie则返回透明页面A;如果没有则在报文中植入cookie,并将所述cookie的生存周期设置为单个用户推送间隔,同时加入推送页面B的地址返回给用户端;
所述的页面推送服务器接收到的用户端发送过来的访问推送页面B的报文,检查报文中是否携带了cookie,如果没有携带所述cookie,则将所述的用户端设置为单个用户状态;如果携带有所述的cookie,则继续保持用户端的私网用户状态;
所述的信息服务器接收到用户端发送过来的访问推送页面B的报文,返回推送页面B给用户端,从而结束本次推送;
所述的页面推送服务器再次接收所述用户端发送过来的触发页面推送的GET报文后,继续按照上述步骤向所述用户端推送页面,并监视用户端发往信息服务器的报文,检查是否携带cookie并记录,如果在一个计数周期内接收到的所述用户端发送的请求访问透明页面A的报文中都携带了cookie,则将该用户端状态设置为单个用户状态,否则,继续保持用户端的私网用户状态。
所述的计数周期是一个时间间隔或者访问次数。
所述的页面推送服务器在cookie的生存周期的时间范围内监测状态为私网用户的用户端发送过来的请求访问透明页面A的报文,并检测报文中是否携带cookie,如果没有携带cookie,则将该用户端对应的用户终端数加1。
所述的页面推送服务器在cookie的生存周期的时间范围内监测状态为私网用户的用户端发送过来的请求访问推送页面B的报文,每监测到一段同一用户端发送过来的请求访问推送页面B的报文,就将该用户端对应的用户终端数加1。
本发明的有益效果如下:
使用本发明的穿透私网、网关、proxy的页面推送方法,可以检测每一个独立IP是否含有多个用户终端,并且可以统计该独立IP下的用户终端数量。解决了第三方网络侧设备无法识别和统计私网用户端的难题;同时,本发明的页面推送方法能够为每一用户终端(包括私网)推送页面,对于私网下的用户端也能保持较高的到达率并且没有对单个用户重复推送的情况。
附图说明
图1为本发明的穿透私网、网关、proxy的页面推送方法的流程图。
具体实施方式
参见附图1,本发明的穿透私网、网关、proxy的页面推送方法首先在信息服务器上设置透明页面A和推送页面B,同时在页面推送服务器上设置两种用户状态:私网用户和单个用户,并分别为不同用户状态的用户端设置不同的推送时间间隔:私网用户推送间隔和单个用户推送间隔;其中私网用户推送间隔较短,比如可以是1分钟,单个用户推送间隔较长,比如可以是4小时。
这样,当页面推送服务器接收到用户端发送过来的触发页面推送的报文后会先核对用户端的IP地址,检查用户端状态,如果该用户端为单个用户状态,则判断距上次向该用户端推送页面的时间间隔是否超过单个用户推送间隔,如果没有超过,则直接结束本次推送,如果超过则重定向用户端报文,使用户端访问信息服务器上的透明页面A;同样,如果所述用户端为私网用户状态,则判断距上次向该用户端推送页面的时间间隔是否超过私网用户推送间隔,如果没有超过,则直接结束本次推送,如果超过,则重定向用户端报文,使用户端访问信息服务器上的透明页面A;还有就是该用户端在页面推送服务器上没有记录,则直接将该用户设为私网用户状态,并在以后的推送中对其真实的用户状态作出判断。
用户端接收到页面推送服务器发送的重定向报文后,会向信息服务器发送要求访问透明页面A的报文,当信息服务器接受到所述用户端的报文后,先检查报文中有没有携带cookie,如果没有携带cookie,则植入cookie,并将所述cookie的生存周期设置为单个用户推送间隔,并同时加入推送页面B的地址返回给用户端;如果携带cookie,则直接返回透明页面A。这样在完成一次推送之后,在cookie的生存周期内,同一用户端或者出于私网下的同一用户终端发送过来的要求访问透明页面A的报文中都会携带cookie,该cookie在信息服务器接到报文时会被检测到,从而只返回透明页面,不对同一用户进行连续推送,提升用户感受;同时,在私网用户端下的不同用户终端发送的请求由于不包含cookie,信息服务器会返回植入cookie且加入推送页面B的报文,从而完成向不同用户端的页面推送。
如果用户端实际上为单个用户,则在cookie的生命周期内,页面推送服务器监视用户端发往信息服务器的请求访问透明页面A的报文中都会携带cookie,这样页面推送服务器以此为判断依据,将用户状态设置为单个用户状态。
如果用户端是禁用cookie,则用户端在接收到信息服务器返回的植入cookie,并加入推送页面B的报文后,向信息服务器发送的请求访问推送页面B的报文中将不会携带cookie,此时,页面推送服务器监测会到没有包含cookie的请求访问推送页面B的报文,从而感知此用户端是禁用cookie的,为了避免向该用户的连续大量推送,直接将该用户端设置为单个用户状态,按照单个用户推送间隔推送页面。
本发明的穿透私网、网关、proxy的页面推送方法还可以统计同一IP地址下用户终端的个数,具体的,在页面推送服务器上监视状态为私网用户的用户端发往信息服务器的要求访问推送页面B的报文,每监测到同一终端发送过来的请求访问推送页面B的报文,就将该用户端包含的用户终端数加1,这是因为在本方法中,私网下的同一用户终端在cookie的生存周期内只发送一次访问推送页面B的报文,如果在cookie的生存周期内监测到同一用户端的多个访问推送页面B的报文说明有多个用户终端。
本发明的穿透私网、网关、proxy的页面推送方法还可以通过另一种方法统计同一IP地址下用户终端的个数,即在页面推送服务器上监视状态为私网用户的用户端发往信息服务器的要求访问透明页面A的报文,并检查报文中是否携带了cookie,如果没有携带cookie,则将用户端对应的用户终端数加1,这是因为私网用户端下的某一用户终端第一次访问信息服务器后就会被植入cookie,这样在cookie的生存周期内用户端发往信息服务器的报文中都会携带cookie,如果页面推送服务器监测到不含cookie的报文,则说明该报文是私网用户端下的另一个用户终端发送的,页面推送服务器依此为依据将用户终端数加1。