一种能够提高页面推送效率的方法
技术领域
本发明涉及通讯领域的IP网络,尤其涉及一种能够提高页面推送效率的方法。
背景技术
利用业务网关、防火墙、路由器等设备做HTTP重定向进行web页面推送是ISP对用户进行业务控制和广告推送的一种方式,通过终止用户当前访问web页面的连接并将用户重定向至广告、通知页面的地址,以达到提示用户,控制用户访问和推送广告信息的目的。基于网关、防火墙、路由器的http重定向通常由ISP提供,当用户报文通过网关时,网关通过拦截、模仿http服务器的302报文使得用户主动访问推送服务器的地址。为了保证用户感受以及统计信息,推送服务器通常会对每个用户的推送有一个时间间隔,只有满足了时间间隔才会发生下一次推送,并且会记录推送的次数。这样当推送失败时,由于系统无法获知,仍需要等待一个时间间隔才会进行下一次的推送,浪费了一次推送的机会,而且统计的推送次数也会出现错误。由于以下原因的存在,使得网页推送失败经常发生:
首先,在网络质量不是很好的环境中,可能推送的报文在途中被丢弃,而无法到达用户端。
其次,由于目前HTTP不但是web browser的通用协议也是被其他应用程序(VOIP,P2P,IM)广泛使用的承载协议,包括RTSP,MSN,BT等等。如果页面推送报文是针对这类应用发送的,可能不会得到响应,也不会达到页面推送的目的。
最后,目前web网页中大量包含一些图片,txt等显示内容的URL,如果对于这些URL进行页面推送则用户端不会处理响应,推送失败。
目前,并没有一种方法来对这种情况作出处理,从而影响了页面推送的效率。
发明内容
本发明的目的在于提供一种能够对推送成功与否作出判断、从而及时进行下次推送的能够提高页面推送效率的方法。
为了实现上述目的,本发明采用的技术方案如下:
本发明能够提高页面推送效率的方法,需要在网络中连接页面推送服务器,包括:
在所述的页面推送服务器上设置三种用户状态:可推送状态,推送间隔状态,跟踪状态;
所述页面推送服务器收到触发页面推送的Get报文,检查用户状态,如果该用户处于推送间隔状态或者跟踪状态,则直接结束本次推送;如果该用户当前状态为可推送状态,则发起页面推送流程,同时将该用户的状态变迁为跟踪状态,启动跟踪定时器,并检测该用户的每一个报文,如果在跟踪定时器超时之前推送服务器没有检测到用户发往信息服务器的GET报文,用户状态变更为可推送状态;如果在跟踪定时器超时之前检测到用户发往信息服务器的GET报文,则将用户状态变更为推送间隔状态;当用户处于推送间隔状态,并且推送间隔定时器超时,则进入可推送状态;其中,所述的发起页面推送流程包括将页面推送报文200OK或302REDIRECT发往用户端,通知用户端访问信息服务器。
所述的在跟踪定时器超时之前检测到用户发往信息服务器的GET报文,并将用户状态变更为推送间隔状态的同时,将推送计数加1。
有益效果如下:
本发明为传统的页面推送服务器提供了页面推送情况的检测方案。在网络环境较差或者网络协议较复杂的环境中可以反应页面推送的真实情况:准确的推送间隔以及准确的推送次数。给页面推送功能的质量和统计提供了保障。
附图说明
图1为本发明能够提高页面推送效率的方法的原理框图;
图2为本发明能够提高页面推送效率的方法在页面推送过程中应用的流程图。
具体实施方式
本发明所述的页面推送服务器即可以连接在直路中也可以连接在旁路中,参见附图1,为本发明能够提高页面推送效率的方法的原理框图:
1、当用户处于a.可推送状态,并且发生了页面推送的动作时,则用户状态进入c.跟踪状态。
2、当用户处于c.跟踪状态,并且跟踪定时器超时,则用户状态进入a.可推送状态。
3、当用户处于c.跟踪状态,并且检测到用户访问信息服务器的报文,则推送计数加1,同时用户状态进入b.推送间隔状态。
4、当用户处于b.推送间隔状态,并且推送间隔定时器超时,则用户状态进入a.可推送状态。
根据现网测试结果表明,跟踪定时器设置为5秒可以较准确的反应用户是否响应了推送信息。推送间隔时间的配置根据业务的性质决定,一般为几分钟到几个小时。
参见附图2,为发明能够提高页面推送效率的方法在页面推送过程中应用的流程图,具体如下:
S1.用户访问目的网站,用户端发起TCP连接。
S2.TCP建链成功后,用户端会往目的服务器发出GET报文获取网页内容,其中包含了触发页面推送的内容。
S3.所述页面推送服务器收到触发页面推送的GET报文后,进行用户状态判断。
S4.当用户处于推送间隔状态或者跟踪状态时,则进行S6。
S5.当用户处于可推送状态时,则进行S7。
S6.直接结束本次页页面推送。
S7.发起页面推送流程,将页面推送报文200OK或302REDIRECT发往用户端,通知用户端访问信息服务器。同时,将该用户的状态变迁为跟踪状态,启动跟踪定时器,页面推送服务器开始检测该用户的每一个报文,根据页面推送报文是否到达用户端,分别进行S8、S10。
S8.用户端没有收到页面推送服务器发送过来的页面推送报文200OK或302REDIRECT,则不会向信息服务器发出建链报文及获取网页内容的GET报文,在所述页面推送服务器上有S9。
S9.跟踪定时器超时之前页面推送服务器检测不到用户发往信息服务器的GET报文,并据此判断此次推送失败,所述页面推送服务器将用户状态变更为可推送状态,可随时再次进行页面推送。
S10.用户端收到页面推送服务器发送过来的页面推送报文200OK或302REDIRECT,并作出响应,往信息服务器发送了建链请求,且建链成功,则有S11。
S11.用户端继续往信息服务器发出GET报文获取网页内容,所述报文被页面推送服务器检测到,此时,页面推送服务器据此判断用户已经对本次页面推送进行了响应,推送成功,将用户状态变更为推送间隔状态,同时将推送计数加1,这样推送计数可以真实的反映推送页面成功的次数。
S12.信息服务器收到用户端发送过来的获取网页内容的GET报文,给用户端回复报文响应,包含了需要推送的信息,建立链接,从而完成本次页面推送。