发明内容
基于此,有必要提供一种能降低数据冗余的添加网站访问记录的方法。
一种添加网站访问记录的方法,包括:
获取网站访问请求;
提取所述网站访问请求的REFERER值;
获取网站访问记录,判断所述REFERER值是否属于所述网站访问记录,若是,则获取所述网站访问请求的时间戳,判断所述时间戳是否超时,若超时,则提取所述网站访问请求的url,并将所述url添加到所述网站访问记录中。
在其中一个实施例中,所述提取所述网站访问请求的REFERER值的步骤之前还包括:
获取所述网站访问请求的url;
判断所述url是否为根url,若是,则执行所述将所述url添加到所述网站访问记录中的步骤。
在其中一个实施例中,所述提取所述网站访问请求的REFERER值的步骤之前还包括:
获取所述网站访问请求的访问方法类型;
判断所述访问方法类型是否为GET,若否,则忽略所述网站访问请求。
在其中一个实施例中,所述提取所述网站访问请求的REFERER值的步骤之前还包括:
获取所述网站访问请求的header信息;
判断所述header信息是否对应异步请求,若是,则忽略所述网站访问请求。
在其中一个实施例中,所述提取所述网站访问请求的REFERER值的步骤之前还包括:
获取所述网站访问请求的网页标题信息,若获取失败,则忽略所述网站访问请求。
此外,还有必要提供一种能降低数据冗余的添加网站访问记录的装置。
一种添加网站访问记录的装置,包括:
访问请求获取模块,用于获取网站访问请求;
REFERER值获取模块,用于提取所述网站访问请求的REFERER值;
访问记录添加模块,用于获取网站访问记录,判断所述REFERER值是否属于所述网站访问记录,若是,则获取所述网站访问请求的时间戳,判断所述时间戳是否超时,若超时,则提取所述网站访问请求的url,并将所述url添加到所述网站访问记录中。
在其中一个实施例中,所述装置还包括url筛选模块,用于获取所述网站访问请求的url,判断所述url是否为根url,若是,则调用所述访问记录添加模块将所述url添加到所述网站访问记录中。
在其中一个实施例中,所述装置还包括访问方法类型过滤模块,用于获取所述网站访问请求的访问方法类型;判断所述访问方法类型是否为GET,若否,则忽略所述网站访问请求。
在其中一个实施例中,所述装置还包括header信息过滤模块,用于获取所述网站访问请求的header信息,判断所述header信息是否对应异步请求,若是,则忽略所述网站访问请求。
在其中一个实施例中,所述装置还包括网页标题信息过滤模块,用于获取所述网站访问请求的网页标题信息,若获取失败,则忽略所述网站访问请求。
上述添加网站访问记录的方法及装置,获取网站访问请求的REFERER值,且在REFERER值属于已经生成的网站访问记录时,通过判断网站访问请求的时间戳是否超时对网站访问请求进行过滤。由于浏览器在加载网页中的资源文件时,会在超时时间内发出与资源文件对应的访问请求,而人为的通过点击链接访问网站的行为必然发生在网页加载完成后,即超时时间后,因此,与资源文件对应的访问请求得到了过滤,使得添加到网站访问记录中的url均为用户通过地址栏输入或点击页面上的链接发起的网站访问请求,从而降低了数据的冗余。
同时,由于添加到网站访问记录中的url均为用户通过地址栏输入或点击页面上的链接发起的网站访问请求,使得在根据网站访问记录分析用户的上网习惯时得到分析数据更加准确。
具体实施方式
在一个实施例中,如图1所示,一种添加网站访问记录的方法,包括如下步骤:
步骤S102,获取网站访问请求。
网站访问请求即用户通过浏览器访问网站时发出的HTTP(hypertexttransport protocol)请求。HTTP请求包括请求头部,请求头部中包含有请求的相关信息,例如,访问的url信息等。在企业网应用中,由于企业内部网络均需要通过企业网关访问外部网络,因此可在企业网关处通过拦截数据包的方式获取网站访问请求。
步骤S104,提取网站访问请求的REFERER值。
如前所述,REFERER为HTTP请求的请求头部中的相关信息中的一种属性,用于表示跳转到该url之前对应的链接的地址,用于通知服务器该请求是由哪个页面链接而来,其值也为url。例如,若用户直接在浏览器地址栏输入网站地址,则发起的网络访问请求的请求头部的REFERER值即为空值;若用户在访问页面A时通过点击页面A中的链接跳转到页面B,则跳转到页面B的网络访问请求的请求头部的REFERER值即为页面A的url。
步骤S106,获取网站访问记录,判断REFERER值是否属于网站访问记录,若是,则执行步骤S108:获取网站访问请求的时间戳,判断时间戳是否超时,若超时,则执行步骤S110:提取网站访问请求的url,并将url添加到网站访问记录中。
在本实施例中,网站访问记录即已经记录的网站的url。
在本实施例中,若获取到的网站访问请求的时间戳与网络访问记录中url被添加或更新时的时间戳的差值大于预设的超时时间,则网站访问请求的时间戳超时。
在本实施例中,若网站访问记录中已存在该网站访问请求的url,即可将其访问次数加1,并更新其对应的时间戳。
在本实施例中,若REFERER值不属于网站访问记录,则可执行步骤S110,提取网站访问请求的url,并将url添加到网站访问记录中的步骤。
浏览器在加载网页时,会根据网页中定义的与资源文件对应的链接发起相应的网站访问请求。该网站访问请求的请求头部中的REFERER值为该被加载的网页对应的url。若网站访问记录中不存在该REFERER值对应的url,则该网站访问请求通常为用户手动操作输入的网站地址。
而在网站访问记录中存在该REFERER值对应的url值时,由于用户对页面上的链接的点击跳转操作必然在网页加载完毕后执行,因此,在预设的超时时间以外,浏览器发出的网站访问请求即为用户通过点击页面上的链接发起的网站访问请求。
在一个实施例中,提取网站访问请求的REFERER值的步骤之前还可获取网站访问请求的url,判断url是否为根url,若是,则执行将url添加到网站访问记录中的步骤。
根url即url中的资源地址信息仅为域名的url。例如,http://www.baidu.com,该url的资源地址信息仅为域名http://www.baidu.com,因此该url为根url。
由于资源文件对应的网站访问请求的url通常包括文件名后缀或二级地址信息,根url对应的网页通常为网站的门户网页,因此,通过判断根url对网站访问请求进行过滤可以准确地去掉冗余的网站访问请求。
在一个实施例中,提取网站访问请求的REFERER值的步骤之前还可获取网站访问请求的访问方法类型,判断访问方法类型是否为GET,若否,则忽略网站访问请求。
网站访问请求的访问方法类型即网站访问请求的请求头部中包含的method属性。通常情况下,只有method属性为GET(不区分大小写)时,该网站访问请求才对应用户的网页浏览操作。例如,method属性为POST时为提交表单数据的操作,与浏览行为无关。将method属性不为GET的网站访问请求过滤掉,可减少后期比较的次数,从而提高执行效率。
在一个实施例中,提取网站访问请求的REFERER值的步骤之前还可获取网站访问请求的header信息,判断header信息是否对应异步请求,若是,则忽略网站访问请求。
网站访问请求的header信息即网站访问请求的请求头部信息,异步请求即AJAX(Asynchronous JavaScript and XML,一种基于XML的异步请求调用,XML,Extensible Markup Language,可扩展标记语言)请求。例如,若header信息包含“X-Requested-With”则表示该网站访问请求对应异步请求。
异步请求可实现在不刷新整个网页页面的情况下由服务器加载网页元素或资源文件的作用。由于异步请求不会产生页面跳转,因此,header属性值对应异步请求的网站访问请求通常用于获取服务器上的资源文件,将其过滤可减少后期比较的次数,从而提高执行效率。
在一个实施例中,提取述网站访问请求的REFERER值的步骤之前还可获取网站访问请求的网页标题信息,若获取失败,则忽略网站访问请求。
网页标题信息即网站访问请求的HTTP响应实体内的title标签(一种HTTP标签)中内容信息。通常情况下,若无网页标题信息,则该网站访问请求对应资源文件而不是某个网页(因为资源文件没有网页内容,因此没有网页标题信息)。将请求头部不包含网页标题信息的网站访问请求过滤可减少后期比较的次数,从而提高执行效率。
在一个实施例中,如图2所示,一种添加网站访问记录的装置,包括访问请求获取模块102、REFERER值获取模块104以及访问记录添加模块106,其中:
访问请求获取模块102,用于获取网站访问请求。
网站访问请求即用户通过浏览器访问网站时发出的HTTP(hypertexttransport protocol)请求。HTTP请求包括请求头部,请求头部中包含有请求的相关信息,例如,访问的url信息等。在企业网应用中,由于企业内部网络均需要通过企业网关访问外部网络,因此可在企业网关处通过拦截数据包的方式获取网站访问请求。
REFERER值获取模块104,用于提取网站访问请求的REFERER值。
如前所述,REFERER为HTTP请求的请求头部中的相关信息中的一种属性,用于表示跳转到该url之前对应的链接的地址,用于通知服务器该请求是由哪个页面链接而来,其值也为url。例如,若用户直接在浏览器地址栏输入网站地址,则发起的网络访问请求的请求头部的REFERER值即为空值;若用户在访问页面A时通过点击页面A中的链接跳转到页面B,则跳转到页面B的网络访问请求的请求头部的REFERER值即为页面A的url。
访问记录添加模块106,用于获取网站访问记录,判断REFERER值是否属于网站访问记录,若是,则获取网站访问请求的时间戳,判断时间戳是否超时,若超时,则提取网站访问请求的url,并将url添加到网站访问记录中。
在本实施例中,网站访问记录即已经记录的网站的url。
在本实施例中,若获取到的网站访问请求的时间戳与网络访问记录中url被添加或更新时的时间戳的差值大于预设的超时时间,则网站访问请求的时间戳超时。
在本实施例中,若网站访问记录中已存在该网站访问请求的url,即访问记录添加模块106可用于将其访问次数加1,并更新其对应的时间戳。
在本实施例中,若REFERER值若不属于网站访问记录,则访问记录添加模块106可用于提取网站访问请求的url,并将url添加到网站访问记录中。
浏览器在加载网页时,会根据网页中定义的与资源文件对应的链接发起相应的网站访问请求。该网站访问请求的请求头部中的REFERER值为该被加载的网页对应的url。若网站访问记录中不存在该REFERER值对应的url,则该网站访问请求通常为用户手动操作输入的网站地址。
而在网站访问记录中存在该REFERER值对应的url值时,由于用户对页面上的链接的点击跳转操作必然在网页加载完毕后执行,因此,在预设的超时时间以外,浏览器发出的网站访问请求即为用户通过点击页面上的链接发起的网站访问请求。
在一个实施例中,如图3所示,添加网站访问记录的装置还包括url筛选模块108,用于获取网站访问请求的url,判断url是否为根url,若是,则调用访问记录添加模块106将url添加到网站访问记录中。
根url即url中的资源地址信息仅为域名的url。例如,http://www.baidu.com,该url的资源地址信息仅为域名http://www.baidu.com,因此该url为根url。
由于资源文件对应的网站访问请求的url通常包括文件名后缀或二级地址信息,根url对应的网页通常为网站的门户网页,因此,通过判断根url对网站访问请求进行过滤可以准确地去掉冗余的网站访问请求。
在一个实施例中,如图3所示,添加网站访问记录的装置还包括访问方法类型过滤模块110,用于获取网站访问请求的访问方法类型,判断访问方法类型是否为GET,若否,则忽略网站访问请求。
网站访问请求的访问方法类型即网站访问请求的请求头部中包含的method属性。通常情况下,只有method属性为GET(不区分大小写)时,该网站访问请求才对应用户的网页浏览操作。例如,method属性为POST时为提交表单数据的操作,与浏览行为无关。将method属性不为GET的网站访问请求过滤掉,可减少后期比较的次数,从而提高执行效率。
在一个实施例中,如图3所示,添加网站访问记录的装置还包括header信息过滤模块112,用于获取网站访问请求的header信息,判断header信息是否对应异步请求,若是,则忽略网站访问请求。
网站访问请求的header信息即网站访问请求的请求头部信息,异步请求即AJAX(Asynchronous JavaScript and XML,一种基于XML的异步请求调用,XML,Extensible Markup Language,可扩展标记语言)请求。例如,若header信息包含“X-Requested-With”则表示该网站访问请求对应异步请求。
异步请求可实现在不刷新整个网页页面的情况下由服务器加载网页元素或资源文件的作用。由于异步请求不会产生页面跳转,因此,header属性值对应异步请求的网站访问请求通常用于获取服务器上的资源文件,将其过滤可减少后期比较的次数,从而提高执行效率。
在一个实施例中,如图3所示,添加网站访问记录的装置还包括网页标题信息过滤模块114,用于获取网站访问请求的网页标题信息,若获取失败,则忽略网站访问请求。
网页标题信息即网站访问请求的HTTP响应实体内的title标签(一种HTTP标签)中内容信息。通常情况下,若无网页标题信息,则该网站访问请求对应资源文件而不是某个网页(因为资源文件没有网页内容,因此没有网页标题信息)。将请求头部不包含网页标题信息的网站访问请求过滤可减少后期比较的次数,从而提高执行效率。
上述添加网站访问记录的方法及装置,获取网站访问请求的REFERER值,且在REFERER值属于已经生成的网站访问记录时,通过判断网站访问请求的时间戳是否超时对网站访问请求进行过滤。由于浏览器在加载网页中的资源文件时,会在超时时间内发出与资源文件对应的访问请求,而人为的通过点击链接访问网站的行为必然发生在网页加载完成后,即超时时间后,因此,与资源文件对应的访问请求得到了过滤,使得添加到网站访问记录中的url均为用户通过地址栏输入或点击页面上的链接发起的网站访问请求,从而降低了数据的冗余。
同时,由于添加到网站访问记录中的url均为用户通过地址栏输入或点击页面上的链接发起的网站访问请求,使得在根据网站访问记录分析用户的上网习惯时得到分析数据更加准确。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。