识别用户点击行为的方法及网关设备的制作方法
【专利摘要】本发明涉及计算机网络【技术领域】,提供了一种识别用户点击行为的方法及网关设备。该方法包括步骤:获取用户浏览页面的HTML数据;解析所述页面的HTML数据,提取其中的URL并解析各URL的类型,生成链接URL列表和/或资源URL列表;识别对应于所述页面的GET请求中的URL,若所述GET请求中的URL在所述链接URL列表中或者所述GET请求中的URL不在所述资源URL列表中,将所述GET请求识别为一次用户点击行为。本发明的技术方案中,网关设备可自动识别用户点击行为,该识别方式标准统一且区分明确,可作为一种准确识别的方法通用于各类网关设备中。
【专利说明】识别用户点击行为的方法及网关设备
【技术领域】
[0001]本发明涉及计算机网络【技术领域】,特别涉及一种识别用户点击行为的方法及网关设备。
【背景技术】
[0002]网络监控或网络行为分析中最基础的一项任务就是识别/统计用户的主动行为,在互联网应用中,WEB浏览是最常见、用户量最大、应用次数最多的一种网络应用,因而如何识别WEB浏览中的用户点击行为对实现各种网络管理功能至关重要。
[0003]目前,WEB浏览的数据一般是通过 HTTP (hypertext transportprotocol,超文本传输协议)协议承载的,一次数据获取过程的通用模式是浏览器发起GET请求向服务器请求需要的数据,服务器通过Response 2000K返回数据。当用户在浏览器中输入一个URL地址或者点击一个URL链接来访问网页时,浏览器首先通过携带该URL的GET请求,下载该页面HTML文件。而后浏览器解析该HTML文件,每当遇到嵌入在该HTML文件中的资源(例如图片、JavaScript文件、CSS文件等)时,浏览器将自动通过GET请求向该嵌入文件所在的URL请求获取资源并下载解析,生成最终页面。可见在一次浏览中可能会有多次数据获取过程,但其中只有用户输入或者点击的链接的URL是体现用户的点击行为,其他的GET请求都是浏览器加载页面资源自动发起的。但是从PS (Packet Switch,分组交换)域网关的角度来看,其只能看到携带各种URL的GET请求,并不能识别GET请求的两种不同来源。由于目前的HTTP协议没有具体的规范帮助识别GET请求的来源,因而现有技术中不存在直接识别WEB浏览中的用户点击行为的方法。
[0004]现有技术中,常见的间接识别用户点击行为的方案有:通过浏览器增加字段辅助识别,或者通过时间阈值判断。由于浏览器可以天然感知区分用户点击或自动加载的GET请求,通过浏览器在HTTP请求中增加字段标识来辅助识别,例如增加USer_Click_Tag字段,当其值为O时标识本GET请求浏览器自动加载的,值为I时标识本GET请求是用户点击的。PS网关可以通过解析GET请求中的该字段来进行识别。
[0005]另一种方式是通过GET请求中的Referer字段和GET请求时间差来识别。HTTP协议中定义Referer字段用于标识当前GET请求里的URL的来源,例如,浏览器加载www.XXX.com页面时,用于下载该页面所有资源的GET请求中的Referer字段都应该是www.XXX.com ;同时若该页面有链接,则用户点击链接产生的GET请求的Referer也是www.xxx.com。因此,通过Referer字段可以将与页面加载对应的GET请求识别出来,又由于一般认为浏览器加载产生的GET请求的发出速度都很快而点击的GET请求的发出速度很慢,通过计算相邻GET间的时间差,可以简单区分用户点击或浏览器自动加载的GET请求。于是,通过Referer字段和对时间阈值的判断,可以间接地识别用户点击。
[0006]但是,上述现有方案中,通过浏览器辅助字段识别的方式依赖于特定的浏览器,并未形成行业规范,经常因为标准不统一难以相互兼容,不便于方案推广实施;而时间阈值的方式只是对点击行为的粗略判断,阈值的设置常常会与用户的真实行为产生偏差,不可避免地会误判漏判某些行为,识别结果的准确性难以保证。
【发明内容】
[0007]有鉴于此,本发明提供了一种识别用户点击行为的方法及网关设备,以解决现有技术中无法通用准确地识别用户浏览时的点击行为的问题。
[0008]为解决上述技术问题,本发明的第一方面提供了一种识别用户点击行为的方法,所述方法包括步骤:
[0009]获取用户浏览页面的HTML数据;
[0010]解析所述页面的HTML数据,提取其中的URL并解析各URL的类型,生成链接URL列表和/或资源URL列表;
[0011 ] 识别对应于所述页面的GET请求中的URL,若所述GET请求中的URL在所述链接URL列表中或者所述GET请求中的URL不在所述资源URL列表中,将所述GET请求识别为一次用户点击行为。
[0012]在第一种可能的实现方式中,所述获取用户浏览页面的HTML数据包括:通过解析GET请求的响应报文获取所述页面的HTML数据。
[0013]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述解析GET请求的响应报文包括:解析所述响应报文的Content-type字段,若为text/html,则进一步解析所述响应报文的Content-Encoding字段,若所述Content-Encoding字段提供了压缩格式,则依据所述压缩格式对所述响应报文的内容进行解压。
[0014]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述解析GET请求响应报文还包括:解析所述响应报文的Transfer-Encoding字段,若所述Transfer-Encoding字段提供了传输的编码方式,则基于所述编码方式对解压后的所述响应报文的内容进行解码。
[0015]结合第一方面或第一方面的第一种、第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述解析各URL的类型包括:通过所述各URL对应的HTML标记的格式特征解析所述各URL的类型。
[0016]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述通过所述各URL对应的HTML标记的格式特征解析所述各URL的类型包括:通过正则表达式匹配所述HTML标记的格式特征来解析所述各URL的类型。
[0017]结合第一方面或第一方面的第一种、第二种、第三种、第四种或第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:将所述GET请求中的URL转换为ASCII编码的字符串
[0018]此外,本发明的第二方面还同时提供一种网关设备,所述网关设备包括:
[0019]获取单元,用于从WEB服务器发给用户端设备的数据中获取用户浏览页面的HTML数据,并将所述HTML数据传输给解析单元;
[0020]解析单元,用于从所述获取单元接收所述HTML数据,解析所述HTML数据,提取其中的URL并解析各URL的类型,生成链接URL列表和/或资源URL列表传输给识别单元;
[0021]识别单元,用于从所述解析单元接收所述链接URL列表或所述资源URL列表,从用户端设备发给WEB服务器的GET请求中识别对应于所述页面的GET请求中的URL,若所述GET请求中的URL在所述链接URL列表中或者所述GET请求中的URL不在所述资源URL列表中,将所述GET请求识别为一次用户点击行为。
[0022]结合第二方面,在第一种可能的实现方式中,所述获取单元中,通过解析GET请求的响应报文获取所述页面的HTML数据。
[0023]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述解析单元中进一步包括字段解析单元,用于解析所述响应报文的Content-type字段,若为text/html,则进一步解析所述响应报文的Content-Encoding字段,若所述Content-Encoding字段提供了压缩格式,则依据所述压缩格式对所述响应报文的内容进行解压。
[0024]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述字段解析单元还用于解析所述响应报文的Transfer-Encoding字段,若所述Transfer-Encoding字段提供了传输的编码方式,则基于所述编码方式对解压后的所述响应报文的内容进行解码。
[0025]结合第二方面或第二方面的第一种、第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述识别单元中还包括字符转换单元,用于将所述GET请求中的URL转换为ASCII编码的字符串。
[0026]最后,本发明的第三方面还同时提供一种网关设备,所述网关设备包括用户侧接口、网络侧接口、存储器和处理器,其中:
[0027]所述用户侧接口,用于接收用户端设备向WEB服务器发出的请求并将WEB服务器返回的数据转发给用户端设备;
[0028]所述网络侧接口,用于将用户端设备发出的请求转发给WEB服务器并接收WEB服务器返回给用户端设备的数据;
[0029]所述存储器,用于存储转发的请求和数据以及处理器执行过程中使用的数据和指令;
[0030]所述处理器,被配置为读取所述存储器中存储的数据和指令以执行如下过程:
[0031]获取用户浏览页面的HTML数据;
[0032]解析所述页面的HTML数据,提取其中的URL并解析各URL的类型,生成链接URL列表和/或资源URL列表;
[0033]识别对应于所述页面的GET请求中的URL,若所述GET请求中的URL在所述链接URL列表中或者所述GET请求中的URL不在所述资源URL列表中,将所述GET请求识别为一次用户点击行为。
[0034]通过上述方案,本发明中的网关设备可自动识别用户点击行为,该识别方式标准统一且区分明确,可作为一种准确识别的方法通用于各类网关设备中。又由于解析GET请求和响应报文是浏览器中的通用方法,其实现技术较为成熟,将该解析手段移植到网关设备中可明显降低识别方法的实现成本,相较于现有技术,本发明的方法更易于实施且不依赖于其他软硬件环境,有着更广的应用前景。
【专利附图】
【附图说明】
[0035]图1为本发明的一个实施例中识别用户点击行为的方法的流程示意图;[0036]图2为本发明的技术方案的一个典型应用场景;
[0037]图3为本发明的一个实施例中网关设备的结构示意图;
[0038]图4为本发明的另一个实施例中网关设备的结构示意图。
【具体实施方式】
[0039]下面将结合各附图对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0040]由于用户浏览页面时的点击行为都是发生在浏览器端,因此现有技术中绝大多数识别用户点击行为的方案的出发点都是希望通过浏览器反馈信息来进行识别,但由于现存的浏览器种类繁多,实现方式差异较大,很难形成统一的标准。另有部分方案希望通过区分用户行为与机器行为的差异进行近似判断,但这种判断方式多是基于统计规律进行推断,缺少明确的判断标准,容易产生偏差。考虑到无论使用何种浏览器,用户浏览网页的全部数据均需通过网关设备传递,为了使识别方法更具有通用性,本发明的实施例中主要针对网关设备进行改进,使得本发明中的识别方法可以无视浏览器的差异而具有统一明确的判断标准。
[0041]具体地,浏览器是通过解析页面的HTML获知该页面中的URL类型(通常包括页面资源的URL和链接的URL),不同类型的URL的处理方式不同。其中,对于页面资源URL,浏览器会主动发起GET请求,下载该资源,并在页面中呈现出来;对于链接URL,在页面生成超链接,提供给浏览用户点击,响应于用户的点击再发起GET请求下载链接URL对应的资源。基于上述不同类型URL处理方式的差异,本发明的实施例中在网关设备中加入页面解析工具,通过判断URL的类型来识别当前的GET请求是否是由用户点击产生的,从而统一而明确地识别出用户点击行为。
[0042]在本发明的一个实施例中,识别用户点击行为的方法如图1所示,具体包括:
[0043]SI,获取用户浏览页面的HTML数据;
[0044]S2,解析所述页面的HTML数据,提取其中的URL并解析各URL的类型,生成链接URL列表和/或资源URL列表;
[0045]S3,识别对应于所述页面的GET请求中的URL,若所述GET请求中的URL在所述链接URL列表中或者所述GET请求中的URL不在所述资源URL列表中,将所述GET请求识别为一次用户点击行为。
[0046]在更优选的实施例中,本发明的识别用户点击行为的方法各步骤的典型处理过程为:
[0047]首先,步骤SI中,从网关的角度考虑,可以通过解析GET请求的响应(HTTPResponse)报文获取页面描述脚本HTML数据。通常情况下,响应报文会直接以文本形式传输,但也有服务器为了提高页面响应速度,对响应报文的内容压缩或者进行编码传输。因此,在本步骤中,获取HTML数据需要根据响应报文中的字段标记进行相应的处理。
[0048]具体地,解析GET请求的响应报文包括:解析所述响应报文的Content-type字段,若为text/html,则进一步解析所述响应报文的Content-Encoding字段,若所述Content-Encoding字段提供了压缩格式,则依据所述压缩格式对所述响应报文的内容进行解压。对于进行了编码传输的报文,所述解析GET请求响应报文还包括:解析所述响应报文的Transfer-Encoding字段,若所述Transfer-Encoding字段提供了传输的编码方式,则基于所述编码方式对解压后的所述响应报文的内容进行解码。
[0049]例如,google的网站采用Gzip压缩加Chunked编码方式进行传输,则对于这类网站的HTTP Response报文需要首先解析报文头的Content-type字段,当字段为text/html时表明报文内容是HTML数据,此时进一步解析报文头的Content-Encoding字段找到报文内容压缩格式Gzip,依据Gzip对应的算法对报文内容进行解压;此后,进一步解析报文头的Transfer-Encoding字段找到报文传输的编码方式Chunked,按该编码方式对应的算法对解压后的报文内容解码。Chunked编码是将数据利用若干个块(Chunk)串连而成,最后由一个长度为O的块标明数据的终结;其每个块分为头部和正文两部分,在头部指定对应正文的字符总数和数量单位,正文是指定长度的内容,两部分之间用回车换行(CRLF)隔开;最后一个长度为O的块中内容称为footer,是一些附带的Header消息。对于Chunked编码方式,其解码方式为提取长度不为O的块中正文内容拼接成完整数据。
[0050]其次,步骤S2中,对于HTML描述的静态页面,页面中的URL通常都有固定的格式,因而可根据这些固定格式提取和解析URL类型。比如链接URL是直接写入的,其特征可以表述为〈a “xxxxx”href = “http://xxx/xx/xx/” xxxx a/> ;资源加载的 URL 一般通过 src= “http: //xxx/xx,,或者 url (http: //xxx/xx)或者 url (////xxx/xx)的形式保存。只要提取到URL对应的格式特征就可以对其进行区分。对应于链接URL,页面HTML 数据中的 <a 和 href = “http://xxx/xx/xx/”的组合标识了其中的 URL (即“http://xxx/xx/xx/”)是个链接;对应于资源URL,页面HTML数据中的src=“http://xxx/xx/xx/”、url (http://xxx/xx/xx/)或url (xxxx)等特征标识了其中的URL是个资源。考虑到HTML数据中的文本表达形式,为避免不同表达形式对提取特征的影响,在更优选的实施例中,通过正则表达式匹配来提取URL对应的特征以区分URL类型。
[0051]最后,步骤S3中,识别GET请求中对应的URL,将其分别与链接URL列表或资源URL列表中的URL进行匹配,若与链接URL列表中某一 URL相符或不与资源URL列表中任何URL相符,则将该GET请求识别为一次用户点击行为。需要注意的是,如果URL中含有中文,浏览器发出的GET请求是要对其编码的,通常编码格式并没有协议约束,但绝大多数网站都是编码为UTF-8。因此在更优选的实施例中,分析GET请求对应的URL,将其与解析页面HTML数据生成的URL列表中的URL匹配之前,将GET请求中的URL统一转换为ASCII编码的字符串。
[0052]图2进一步例举了本发明的一个典型应用场景:首先,浏览器向WEB服务器发出浏览www.xxx.com页面的GET请求;浏览器返回Response 200 OK并以文本形式(Content-type字段为text/html)返回页面的HTML数据;网关设备接收到服务器返回的信息,解析响应报文中的HTML数据,提取该页面的链接URL和资源URL并生成对应的列表(链接 URL 列表含 news.xxx.com,资源 URL 列表含 www.xxx.com/xxx.css 和 www.xxx.com/xxx.jpg);网关设备将响应报文转发给浏览器;浏览器进一步请求该页面中的资源,请求中包含资源的URL(www.xxx.com/xxx.css和www.xxx.com/xxx.jpg);网关设备收到请求后进行匹配,发现请求中的URL与资源列表中URL相匹配,认为请求是浏览器自动加载资源的请求并将请求转发给服务器;用户点击链接浏览器进一步请求链接内容,请求中包含链接的URL (news.xxx.com);网关设备收到请求后进行匹配,发现请求中的URL与链接列表中URL相匹配,认为请求是用户点击行为产生的,识别为一次点击行为并将请求转发给服务器。
[0053]同时,本发明的实施例中还同时提供了一种网关设备,该网关设备连接多个网络并提供数据转换服务,其可用于识别用户点击行为。优选地,参见图3,该网关设备3用于在至少一个WEB服务器I和至少一个用户终端设备2之间转发数据,该网关设备包括:
[0054]获取单元301,用于从WEB服务器I发给用户端设备2的数据中获取用户浏览页面的HTML数据,并将所述HTML数据传输给解析单元302 ;
[0055]解析单元302,用于从所述获取单元301接收所述HTML数据,解析所述HTML数据,提取其中的URL并解析各URL的类型,生成链接URL列表或资源URL列表传输给识别单元303 ;
[0056]识别单元303,用于从所述解析单元302接收所述链接URL列表或所述资源URL列表,从用户端设备2发给WEB服务器I的GET请求中识别对应于所述页面的GET请求中的URL,若所述GET请求中的URL在所述链接URL列表中或者所述GET请求中的URL不在所述资源URL列表中,将所述GET请求识别为一次用户点击行为。
[0057]更进一步地,本发明的实施例中还提供了一种识别用户点击行为的网关设备,参见图4,该网关设备4包括用户侧接口 401、网络侧接口 402、存储器403和处理器404,其中:
[0058]所述用户侧接口 401,用于接收用户端设备2向WEB服务器I发出的请求并将WEB服务器I返回的数据转发给用户端设备2 ;
[0059]所述网络侧接口 402,用于将用户端设备2发出的请求转发给WEB服务器I并接收WEB服务器I返回给用户端设备2的数据;
[0060]所述存储器403,用于存储转发的请求和数据以及处理器404执行过程中使用的数据和指令;
[0061]所述处理器404,被配置为读取所述存储器403中存储的数据和指令以执行如下过程:
[0062]获取用户浏览页面的HTML数据;
[0063]解析所述页面的HTML数据,提取其中的URL并解析各URL的类型,生成链接URL列表和/或资源URL列表;
[0064]识别对应于所述页面的GET请求中的URL,若所述GET请求中的URL在所述链接URL列表中或者所述GET请求中的URL不在所述资源URL列表中,将所述GET请求识别为一次用户点击行为。
[0065]综上所述,通过上述方式,网关设备可自动识别用户点击行为,该识别方式标准统一且区分明确,可作为一种准确识别的方法通用于各类网关设备中。又由于解析GET请求和响应报文是浏览器中的通用方法,其实现技术较为成熟,将该解析手段移植到网关设备中可明显降低识别方法的实现成本,相较于现有技术,本发明的方法更易于实施且不依赖于其他软硬件环境,有着更广的应用前景。
[0066]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关【技术领域】的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【权利要求】
1.一种识别用户点击行为的方法,其特征在于,所述方法包括步骤: 获取用户浏览页面的HTML数据; 解析所述页面的HTML数据,提取其中的URL并解析各URL的类型,生成链接URL列表和/或资源URL列表; 识别对应于所述页面的GET请求中的URL,若所述GET请求中的URL在所述链接URL列表中或者所述GET请求中的URL不在所述资源URL列表中,将所述GET请求识别为一次用户点击行为。
2.根据权利要求1所述的方法,其特征在于,所述获取用户浏览页面的HTML数据包括: 通过解析GET请求的响应报文获取所述页面的HTML数据。
3.根据权利要求2所述的方法,其特征在于,所述解析GET请求的响应报文包括: 解析所述响应报文的Content-type字段,若为text/html,则进一步解析所述响应报文的Content-Encoding字段,若所述Content-Encoding字段提供了压缩格式,则依据所述压缩格式对所述响应报文的内容进行解压。
4.根据权利要求3所述的方法,其特征在于,所述解析GET请求响应报文还包括: 解析所述响应报文的Tr·ansfer-Encoding字段,若所述Transfer-Encoding字段提供了传输的编码方式,则基于所述编码方式对解压后的所述响应报文的内容进行解码。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述解析各URL的类型包括: 通过所述各URL对应的HTML标记的格式特征解析所述各URL的类型。
6.根据权利要求5所述的方法,其特征在于,所述通过所述各URL对应的HTML标记的格式特征解析所述各URL的类型包括: 通过正则表达式匹配所述HTML标记的格式特征来解析所述各URL的类型。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括: 将所述GET请求中的URL转换为ASCII编码的字符串。
8.—种网关设备,其特征在于,所述网关设备包括: 获取单元,用于从WEB服务器发给用户端设备的数据中获取用户浏览页面的HTML数据,并将所述HTML数据传输给解析单元; 解析单元,用于从所述获取单元接收所述HTML数据,解析所述HTML数据,提取其中的URL并解析各URL的类型,生成链接URL列表和/或资源URL列表传输给识别单元; 识别单元,用于从所述解析单元接收所述链接URL列表或所述资源URL列表,从用户端设备发给WEB服务器的GET请求中识别对应于所述页面的GET请求中的URL,若所述GET请求中的URL在所述链接URL列表中或者所述GET请求中的URL不在所述资源URL列表中,将所述GET请求识别为一次用户点击行为。
9.根据权利要求8中所述的网关设备,其特征在于,所述获取单元中,通过解析GET请求的响应报文获取所述页面的HTML数据。
10.根据权利要求9所述的网关设备,其特征在于,所述解析单元中进一步包括字段解析单元,用于解析所述响应报文的Content-type字段,若为text/html,则进一步解析所述响应报文的Content-Encoding字段,若所述Content-Encoding字段提供了压缩格式,则依据所述压缩格式对所述响应报文的内容进行解压。
11.根据权利要求10所述的网关设备,其特征在于,所述字段解析单元还用于解析所述响应报文的Transfer-Encoding字段,若所述Transfer-Encoding字段提供了传输的编码方式,则基于所述编码方式对解压后的所述响应报文的内容进行解码。
12.根据权利要求8-11中任一项所述的网关设备,其特征在于,所述识别单元中还包括字符转换单元,用于将所述GET请`求中的URL转换为ASCII编码的字符串。
【文档编号】H04L12/66GK103825772SQ201210464845
【公开日】2014年5月28日 申请日期:2012年11月16日 优先权日:2012年11月16日
【发明者】陈潇, 张晋兴, 胡玉胜 申请人:华为技术有限公司