一种统计Web应用用户访问时间特性的方法转让专利

申请号 : CN201410795548.X

文献号 : CN104579754B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘勇彬杨松莫展鹏季统凯

申请人 : 国云科技股份有限公司

摘要 :

本发明涉及应用访问量统计技术领域,特别是指一种统计Web应用用户访问时间特性的方法。本发明首先在Web应用程序中增加一个过滤器,拦截所有的请求;然后在每个请求开始时标记开始时间,处理完后标记一个结束时间;其次维护一个请求的Cookie列表,并把Cookie的过期时间设置为当天过期,然后把Cookie加入到响应中返回给Web客户端,接着获取本次请求响应的状态码,并以Cookie为标识,生成本次请求的一条记录;最后计算获得用户单次访问Web应用的时间,通过统计得到用户访问Web应用的频度、总时长。本发明的方法能够对用户行为的时间特性作出更加准确的分析;可用于统计Web应用用户访问时间特性。

权利要求 :

1.一种统计Web应用用户访问时间特性的方法,其特征在于:所述的方法包括如下步骤:步骤1:在Web应用程序中增加一个过滤器,拦截所有的请求;

步骤2:在每个请求开始时标记开始时间;

步骤3:在请求处理完以后,标记一个结束时间;

步骤4:维护一个请求的Cookie列表,如果请求中不包含Cookie的信息,那么执行步骤

5;否则,执行步骤7;

步骤5:在Cookie列表中增加一个Cookie;

步骤6:把Cookie的过期时间设置为当天24点,也就是当天过期,然后把Cookie加入到响应中返回给Web客户端;转到步骤8;

步骤7:在Cookie列表中查询对应的Cookie是否已经过期,如果已经过期,跳转到步骤

6;如果未过期,则进入下一步;

步骤8:获取本次请求响应的状态码,并以Cookie为标识,生成本次请求的一条记录,包括请求的Cookie、请求的开始时间、结束时间、请求的响应状态码;

步骤9:通过计算开始时间到结束时间的时间间隔得到用户单次访问Web应用的时间,通过统计某Cookie的所有响应状态码为成功访问记录的数量得到用户访问Web应用的频度,通过统计某Cookie的所有记录的总访问时间得到某用户某天访问Web应用的总时长。

2.根据权利要求1所述的统计Web应用用户访问时间特性的方法,其特征在于:所述的Web应用程序是一种可以通过Web访问的应用程序;所述的过滤器对Web请求和响应进行拦截。

3.根据权利要求1所述的统计Web应用用户访问时间特性的方法,其特征在于:所述的Cookie,指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据;

所述的Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。

4.根据权利要求2所述的统计Web应用用户访问时间特性的方法,其特征在于:所述的Cookie,指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据;

所述的Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。

5.根据权利要求1至4任一项所述的统计Web应用用户访问时间特性的方法,其特征在于:所述的开始时间,是客户端发送一个请求的开始时间;所述的结束时间,是客户端接收到从服务器返回响应结果的时间。

说明书 :

一种统计Web应用用户访问时间特性的方法

技术领域

[0001] 本发明涉及应用访问量统计技术领域,特别是指一种统计Web应用用户访问时间特性的方法。

背景技术

[0002] 在面向公众的Web应用中,由于用户的来源比较多,组成又比较复杂,因此,一般需要通过事后审计来分析用户的行为,其中,统计一个用户当天访问Web应用的时间特性可以用于分析用户使用应用系统的频度、总时长,从而判定用户的行为,是很重要的一个统计数据。譬如,某用户当天访问Web应用的系统的次数如果明显高于其他用户,并且每次访问的时长较短,那么此用户账户有可能被窃取用于对Web应用系统进行连接型攻击,需要对此用户账户的历史行为进行进一步的分析,并对此用户账户的下一步行为加以防护,防止影响整个系统。又譬如,某用户当天访问某个电商Web应用系统在一天中多次访问,且总的访问时间较长,此用户可能对电商的某产品感兴趣,电商的用户行为分析系统可对用户的行为进行深入分析并向其投放可能感兴趣的商品的信息,成交的成功率可大大提高。
[0003] 目前,统计Web应用用户访问时间特性的方法一般都是通过分析登录用户的日志来实现的,这种方法存在如下的弊端:
[0004] 1、统计不全面,匿名用户和访客的行为无法统计,对于某些类型的网站来说,可能并不需要进行注册,这类型的应用传统的方法无法覆盖;
[0005] 2、统计不准确,部分用户可能因为网络的原因,比如卡顿,导致重试访问的次数较多并且每次访问等待的时间较长,传统的方法无法区分出这部分用户的行为。
[0006] 尽管中国专利申请号为“201310197368”的文件中提到一种社交网络平台系统及互动方法与中国专利申请号为“201410080027”的文件中提到一种网站用户访问路径的分析方法及系统,通过Cookie实现对用户的区分、记录,以对用户的访问特性进行统计。上述两项专利申请侧重于对Cookie本身的特性进行运用,直接把Cookie的记录作为用户的行为进行分析,但并没有提供对Cookie的过期时间等特性进行设计进而用于时间特性方面的统计。因此,目前急需一种使用Cookie进行Web应用用户访问时间特性进行统计的方法。

发明内容

[0007] 本发明解决的技术问题在于提供一种统计Web应用用户访问时间特性的方法,解决传统方法存在的不足,覆盖所有类型用户,排除无效请求,提供一种全面的准确的统计方法。
[0008] 本发明解决上述问题,包括以下步骤:
[0009] 步骤1:在Web应用程序中增加一个过滤器,拦截所有的请求;
[0010] 步骤2:在每个请求开始时标记开始时间;
[0011] 步骤3:在请求处理完以后,标记一个结束时间;
[0012] 步骤4:维护一个请求的Cookie列表,如果请求中不包含Cookie的信息,那么执行步骤5;否则,执行步骤7;
[0013] 步骤5:在Cookie列表中增加一个Cookie;
[0014] 步骤6:把Cookie的过期时间设置为当天24点,也就是当天过期,然后把Cookie加入到响应中返回给Web客户端;转到步骤8;
[0015] 步骤7:在Cookie列表中查询对应的Cookie是否已经过期,如果已经过期,跳转到步骤6;如果未过期,则进入下一步;
[0016] 步骤8:获取本次请求响应的状态码,并以Cookie为标识,生成本次请求的一条记录,包括请求的Cookie、请求的开始时间、结束时间、请求的响应状态码;
[0017] 步骤9:通过计算开始时间到结束时间的时间间隔得到用户单次访问Web应用的时间,通过统计某Cookie的所有响应状态码为成功访问记录的数量得到用户访问Web应用的频度,通过统计某Cookie的所有记录的总访问时间得到某用户某天访问Web应用的总时长。
[0018] 所述的Web应用程序是一种可以通过Web访问的应用程序;所述的过滤器对Web请求和响应进行拦截。
[0019] 所述的Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据;
[0020] 所述的Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。
[0021] 所述的开始时间,是客户端发送一个请求的开始时间;所述的结束时间,是客户端连接到从服务器返回响应结果的时间。
[0022] 本发明提供了一种全面的准确的统计方法,通过为用户设置适当的Cookie能覆盖所有类型的用户;能够识别不同状态的请求并加以区分,排除无效的请求,能够对用户行为的时间特性作出更加准确的分析。

附图说明

[0023] 下面结合附图对本发明进一步说明:
[0024] 图1为本发明的流程图;
[0025] 图2为本发明的过滤器架构图;

具体实施方式

[0026] 本发明的实施方式有多种,这里将统计J2EE应用用户访问时间的方式为例说明其中一种实现方法,请参考图1、2所示,具体实施过程如下:
[0027] 1、在Web应用程序中增加一个过滤器,拦截所有的请求;
[0028] 定义一个PageFilter过滤器,过滤器必须在链头,只需要过滤.jspx和.do则可。在web.xml中过滤器配置
[0029]
[0030] Page Filter
[0031] *.jspx
[0032] *.do
[0033] FORWARD
[0034] REQUEST
[0035]
[0036] 2、在每个请求开始时标记开始时间;
[0037] 当获取请求时,获取当前标记开始时间
[0038] Begin=System.currentTimeMillis();
[0039] crateTime=new Date();
[0040] 3、在请求处理完以后,标记一个结束时间;
[0041] end=System.currentTimeMillis();
[0042] crateTime=new Date();
[0043] 4、维护一个请求的Cookie列表,如果请求中不包含Cookie的信息,增加一个Cookie;否则,在Cookie列表中查询对应的Cookie是否过期;
[0044] 5、在Cookie列表中增加一个Cookie,并把Cookie的过期时间设置为当天24点,也就是当天过期,然后把Cookie加入到响应中返回给Web客户端;获取本次请求的状态码,生成本次请求的一条记录;
[0045]
[0046] 注:若用户浏览器禁用了cookie,那就每一次访问就当一个新的用户。
[0047] 6、在Cookie列表中查询对应的Cookie是否已经过期,如果已经过期,设置Cookie过期时间为当天24点;
[0048] 7、获取本次请求响应的状态码,并以Cookie为标识,生成本次请求的一条记录,包括请求的Cookie、请求的开始时间、结束时间、请求的响应状态码;
[0049] response状态status=reponse.getStatus();//获取状态码
[0050] 将createTime,spend,ip,uv,page,postfix,status插入数据库page_stat[0051] 8、通过记录可以得出单次用户访问Web应用时间,用户访问Web频度,访问Web总时长。
[0052] 统计单次访问Web应用的时间(通过计算开始时间到结束时间的时间间隔可以得到用户单次访问Web应用的时间):
[0053] Spend=Sytem.currentTimeMillis()-begin
[0054] 统计用户访问Web应用的频度(通过统计某Cookie的所有响应状态码为成功访问记录的数量可以得到用户访问Web应用的频度):
[0055] page=request.getRequestURI()注:需要去掉问题后面参数
[0056] postfix=page的后缀。
[0057] 通过统计某Cookie的所有记录的总访问时间可以得到某用户某天访问Web应用的总时长。