CN102722585B - 浏览器类型识别方法、装置及系统 - Google Patents

浏览器类型识别方法、装置及系统 Download PDF

Info

Publication number
CN102722585B
CN102722585B CN201210189887.4A CN201210189887A CN102722585B CN 102722585 B CN102722585 B CN 102722585B CN 201210189887 A CN201210189887 A CN 201210189887A CN 102722585 B CN102722585 B CN 102722585B
Authority
CN
China
Prior art keywords
user agent
browser type
string
browser
automat
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210189887.4A
Other languages
English (en)
Other versions
CN102722585A (zh
Inventor
郭德良
罗峰
黄苏支
李娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Izp Huangshi science and Technology Co Ltd
Original Assignee
IZP (BEIJING) TECHNOLOGIES Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IZP (BEIJING) TECHNOLOGIES Co Ltd filed Critical IZP (BEIJING) TECHNOLOGIES Co Ltd
Priority to CN201210189887.4A priority Critical patent/CN102722585B/zh
Publication of CN102722585A publication Critical patent/CN102722585A/zh
Application granted granted Critical
Publication of CN102722585B publication Critical patent/CN102722585B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种浏览器类型识别方法、装置及系统。所述浏览器类型识别方法包括:接收步骤,接收浏览器发来的网络访问请求;解析步骤,解析所述请求中的用户代理串;计算步骤,通过哈希算法对所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值;第一确定步骤,若指定表中存在所述哈希值到浏览器类型的映射,则将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;其中,用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射。这样,能够提高浏览器类型辨识效率。

Description

浏览器类型识别方法、装置及系统
技术领域
本发明涉及电子与信息技术科学领域,尤其涉及浏览器类型识别方法、装置及系统。
背景技术
表明用户浏览器身份的就是用户代理(USER AGENT,简称UA)。在超文本传送(以下简称HTTP)协议中用户代理字段用来表明发出请求的是什么样的浏览器。在网站对用户的识别上,用什么样的浏览器是一个很重要的指标。
现有的识别技术主要根据一定的规则解析出UA串中的各字段,然后基于各个字段来确定浏览器的类型。在UA串的构造中,有很多字段的含义是明确的,是浏览器业界的通用规则。在一个UA串中有很多字段。通过分析UA的串分解出对应的字段如操作系统名称,操作系统版本,浏览器内核名称,版本号,插件名称,继承自哪些内核等,利用这些信息来确定浏览器的类型。然而,这种在线的利用规则将UA字段的值解析为各个字段的识别方式效率较低,较难满足在线系统对浏览器类型识别的高实时性要求。
然而,UA字段的值并非固定,会随着浏览器类型、浏览器版本、所运行的系统环境的变化而是新月异。且这种变化取决于浏览器应用的研究开发者,开发者设置UA字段的值时,不会告知从事UA字段分析研发的技术人员,因此,这种变化对于UA字段分析研发的技术人员而言是不可预测的。因此,如何利用不断变化的UA字段的值来确定用户所采用浏览器类型是一个重要的研究课题。
发明内容
本发明所要解决的技术问题之一是需要提供一种能够提高浏览器类型辨识效率的浏览器类型识别方法、装置及系统。
为了解决上述技术问题,本发明提供了一种浏览器类型识别方法。该方法包括:
接收步骤,接收浏览器发来的网络访问请求;
解析步骤,解析所述请求中的用户代理串;
计算步骤,通过哈希算法对所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值;
第一确定步骤,若指定表中存在所述哈希值到浏览器类型的映射,则将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;
其中,用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射。
根据本发明又一方面的方法,还包括:第二确定步骤,若指定表中不存在所述哈希值到浏览器类型的映射,则利用AC自动机来确定所述浏览器的浏览器类型。
根据本发明又一方面的方法,所述第一确定步骤进一步包括:若指定表中不存在所述哈希值到浏览器类型的映射,将所述请求中的用户代理串进行存储;所述第二确定步骤进一步包括:针对在所述第一确定步骤中存储的各用户代理串利用AC自动机来确定其对应的浏览器类型。
根据本发明又一方面的方法,所述第二确定步骤进一步包括针对所存储的各用户代理串执行如下处理:利用AC自动机进行匹配以确定所述AC自动机的单词查找树中是否存在与用户代理串对应的用户代理模式相匹配的路径,若匹配成功,则将AC自动机的单词查找树中所匹配的路径的叶节点对应的浏览器类型确定为与所述请求中的用户代理串对应的浏览器类型;其中,用户代理串对应的用户代理模式为该用户代理串中的一个字段或一个以上字段的任意顺序连接所构成的字符串;所述AC自动机的单词查找树为以浏览器类型已知的用户代理模式作为模式串而构建的单词查找树,每个单词查找树的叶节点对应于一种浏览器类型。
根据本发明又一方面的方法,用户代理串对应的用户代理模式为将该用户代理串中的各字段依据各自在UA串中的出现顺序前后相接所构成的字符串。
根据本发明又一方面的方法,所述第二确定步骤进一步包括:针对所存储的各用户代理串,利用AC自动机进行匹配,若匹配失败,则将用户指定的浏览器类型确定为与所述请求中的用户代理串对应的浏览器类型。
根据本发明又一方面的方法,所述第二确定步骤进一步包括:若匹配失败,还执行以下处理:将与所述请求中的用户代理串对应的用户代理模式作为模式串添加所述AC自动机的单词查找树的模式串,并将所添加的模式串的路径的叶节点对应的浏览器类型设置为所确定的浏览器类型。
根据本发明又一方面的方法,所述第一确定步骤进一步包括:将所述请求中的用户代理串存储在指定文件中;所述第二确定步骤进一步包括:每隔预设时长复制或下载所述指定文件,针对所复制或下载后的文件中的各用户代理串利用AC自动机来确定其对应的浏览器类型。
根据本发明又一方面的方法,若指定表中不存在所述哈希值到浏览器类型的映射,则将从依据所述哈希算法而算得的哈希值到所确定的浏览器类型之间的映射添加至所述指定表中。
根据本发明又一方面,还提供了一种浏览器类型识别系统。该系统包括第一信息处理装置,所述第一信息处理装置包括:
接收模块,接收浏览器发来的网络访问请求;
解析模块,解析所述请求中的用户代理串;
计算模块,通过哈希算法地所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值;
确定模块,若指定表中存在所述哈希值到浏览器类型的映射,则将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;
其中,用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射。
根据本发明又一方面的系统,还包括第二信息处理装置,所述第二信息处理装置包括第二确定模块,其中:
所述第一确定模块进一步在指定表中不存在所述哈希值到浏览器类型的映射的情况下将所述请求中的用户代理串存储在指定文件中;
所述第二确定模块每隔预设时长复制所述指定文件,针对从所述第一信息装置下载或复制的所述指定文件中的各用户代理串利用AC自动机来确定其对应的浏览器类型。
根据本发明又一方面还提供了一种浏览器类型识别装置。所述浏览器类型识别装置包括接收模块、解析模块、计算模块和第一确定模块,其中:
接收模块,其接收浏览器发来的网络访问请求;
解析模块,其解析所述请求中的用户代理串;
计算模块,其通过哈希算法地所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值;
第一确定模块,若指定表中存在所述哈希值到浏览器类型的映射,则第一确定模块将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;
其中,用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射。
根据本发明又一方面的装置,还包括:
第二确定模块,若指定表中不存在所述哈希值到浏览器类型的映射,则利用AC自动机来确定所述浏览器的浏览器类型。
本发明提供的一种浏览器类型识别系统,包括:
接收模块,接收浏览器发来的网络访问请求;
解析模块,解析所述请求中的用户代理串;
计算模块,通过哈希算法对所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值;
第一确定模块,若指定表中存在所述哈希值到浏览器类型的映射,则将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;
第二确定模块,若所述指定表中不存在所述哈希值到浏览器类型的映射,则利用AC自动机(Aho-Corasick automation)来确定所述浏览器的浏览器类型;
其中,用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射;
所述第一确定模块进一步在所述指定表中不存在所述哈希值到浏览器类型的映射,将所述请求中的用户代理串进行存储;
所述第二确定模块进一步针对所述第一确定模块存储的各用户代理串利用AC自动机来确定其对应的浏览器类型;并进一步包括针对所存储的各用户代理串执行如下处理:
利用AC自动机进行匹配以确定所述AC自动机的单词查找树中是否存在与用户代理串对应的用户代理模式相匹配的路径,若匹配成功,则将AC自动机的单词查找树中所匹配的路径的叶节点对应的浏览器类型确定为与所述请求中的用户代理串对应的浏览器类型;
其中,用户代理串对应的用户代理模式为该用户代理串中的一个字段或一个以上字段的任意顺序连接所构成的字符串;所述AC自动机的单词查找树为以浏览器类型已知的用户代理模式作为模式串构建的单词查找树,每个单词查找树的叶节点对应于一种浏览器类型。
本发明提供了一种浏览器类型识别装置,包括:
接收模块,其接收浏览器发来的网络访问请求;
解析模块,其解析所述请求中的用户代理串;
计算模块,其通过哈希算法对所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值;
第一确定模块,若指定表中存在所述哈希值到浏览器类型的映射,则第一确定模块将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;
第二确定模块,若所述指定表中不存在所述哈希值到浏览器类型的映射,则利用AC自动机(Aho-Corasick automation)来确定所述浏览器的浏览器类型;
其中,用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射;
其中:
所述第一确定步骤进一步包括:若所述指定表中不存在所述哈希值到浏览器类型的映射,将所述请求中的用户代理串进行存储;
所述第二确定步骤进一步包括:针对在所述第一确定步骤中存储的各用户代理串利用AC自动机来确定其对应的浏览器类型;
所述第二确定步骤进一步包括针对所存储的各用户代理串执行如下处理:
利用AC自动机进行匹配以确定所述AC自动机的单词查找树中是否存在与用户代理串对应的用户代理模式相匹配的路径,若匹配成功,则将AC自动机的单词查找树中所匹配的路径的叶节点对应的浏览器类型确定为与所述请求中的用户代理串对应的浏览器类型;
其中,用户代理串对应的用户代理模式为该用户代理串中的一个字段或一个以上字段的任意顺序连接所构成的字符串;所述AC自动机的单词查找树为以浏览器类型已知的用户代理模式作为模式串构建的单词查找树,每个单词查找树的叶节点对应于一种浏览器类型。
与现有技术相比,本发明的一个或多个实施例通过利用存储了各个(整串的)用户代理串到浏览器类型的映射的哈希表来确定发来网络访问请求的浏览器的类型,大大提高了浏览器类型辨识效率,从而方便根据在线迅速识别的浏览器类型来进行后续处理。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明一实施例的浏览器类型识别方法的流程图;
图2是根据本发明一实施例的步骤S150的详细处理的流程示意图;
图3示出根据本实施例的浏览器类型识别装置的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
参考图1来说明根据本实施例的浏览器类型识别方法的各步骤:
步骤S110,接收浏览器发来的网络访问请求;
步骤S120,解析所述请求中的用户代理串,用户代理串为用户代理字段的值;
步骤S130,通过哈希算法地所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值,判断指定表中是否存在所述哈希值到浏览器类型的映射,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射,若判断结果为是,则进入步骤S140。优选地,若判断结果为否,则进入步骤S150;
步骤S140将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;
步骤S150,利用AC自动机来确定所述浏览器的浏览器类型。
步骤S110中,网络访问请求也称为Http(超文本传送协议)请求。收浏览器需要通过网络在线地发来Http请求。
步骤S120中,解析Http请求中的用户代理(User Agent,简称UA)字段的值,作为用户代理串(简称UA串)。
在步骤S130中,可对于步骤S120所解析得到的所述请求中的用户代理串进行哈希算法(如MD5算法)进行计算,得到与所述请求中的用户代理串对应的哈希值。
需要说明的是,通过与步骤S130中相同的哈希算法对已知的各UA串分别进行计算,分别得到哈希值。由于已知的各UA串的浏览器类型也是已知的。因此,可以将已知的各UA串及其对应的浏览器类型存储到一个指定表中。
进而,在步骤S140中,基于这个指定表,可以查找该指定表中是否存在步骤S130中算得的哈希值到浏览器类型的映射,若存在,则将与所算得的哈希值对应的浏览器类型确定为所述浏览器的浏览器类型。
区别于现有技术中,由于指定表中存储了从哈希值到浏览器类型的映射。因此在不需要将Http请求中的用户代理串分解为各个字段(例如,操作系统名称、操作系统版本、浏览器内核名称、版本号、插件名称、继承自哪些内核等)的情况下,便能够基于整个未经分解的UA串来通过指定表来确定浏览器的类型。进而,由于是对整个UA串进行哈希计算后,基于算得的哈希值进行匹配,而无需对整个UA串进行匹配,可以快速地确定发来http请求的该浏览器的类型,从而更好地向该浏览器提供后续的在线服务。
由于上述处理均为在与浏览器网络连接的情况下进行的,即,在线地接收浏览器发来的请求后,立即进行后续利用哈希算法来算得哈希值进而基于指定表来确定浏览器的类型,这个过程中并未与浏览器断开连接,因此将上述处理称为在线阶段。
下面对步骤S150进行详细说明本发明如何通过将基于UA字段的值确定浏览器类型的处理分为利用哈希表(在线地)识别和利用AC自动机(离线地)识别两个阶段,来较快地发现新的UA字段的值,从而在保证快速地基于UA字段的值识别浏览器类型的前提下,建立了一种持续发现新的UA字段的值的更新的机制。
步骤S150中,利用AC自动机(Aho-Corasick automation)来确定所述浏览器的浏览器类型。AC自动机在1975年产生于贝尔实验室。本发明的发明人创造性地提出将AC自动机应用于浏览器类型识别。更具体地,参考图2步骤S150可包括如下步骤:
步骤S151,将步骤S130中使得判断结果为否的用户代理串存储到指定文件。更具体地,当步骤S130中判断出某个用户代理串不在指定表中时,表明无法利用当前的指定表来确定其浏览器类型。可将这些无法利用当前的指定表来确定浏览器类型的用户代理串存储到指定文件中,以备后续处理。
当然,也可以不存储在指定文件,在计算系统性能较好的情况下,也可以存储在内存、缓冲等任意存储空间中。
步骤S152,等待预设时长,若到了预设时长,则进入步骤S153,以针对所述指定文件中的各用户代理串利用AC自动机来确定其对应的浏览器类型。这样,可在累积一定数量的无法利用当前的指定表来确定其浏览器类型的用户代理串后,利用AC自动机来确定其浏览器类型,可以减少系统分配及释放物理资源的频繁程度从而提高效率。
优选地,考虑到系统要根据步骤S110至S140的处理结果来对浏览器的网络访问请求尽快作出响应,否则会导致用户感觉浏览网页速度过慢甚至导致网络访问超时错误,因此可以利用第一信息处理装置来执行步骤S110至S140的处理的装置,而利用与第一信息处理装置相连接的第二信息处理装置处理步骤S150的处理。优选地,将所述用户代理串存储在第一信息处理装置中的指定文件中,每隔预设时长将所述指定文件下载或复制到第二信息处理装置,由第二信息处理装置针对所下载后的文件中的各用户代理串利用AC自动机来确定其对应的浏览器类型。这样,可以根据实时性要求的不同将计算机分配到不同的装置,从而进一步提高了系统性能。
步骤S153,解析出UA串中的例如操作系统名称、操作系统版本、浏览器内核名称、版本号、插件名称、继承自哪些内核等各字段。
由于UA串有一定的设置规则,如字段之间具有分割符等,可根据这些设置规则解析出UA串中的各字段的操作为现有技术,在些不再赘述。
步骤S154,将所解析出的各字段依据各自在UA串中的出现顺序前后相接,作为一个UA模式(用户代理模式)。一个浏览器类型可以有多个UA模式,一个UA模式只能有一个浏览器类型,根据UA模式来判断UA属于哪个浏览器。
步骤S155,利用指定AC自动机来中进行匹配,以确定AC自动机的单词查找树中是否存在与上述UA模式相匹配的路径,若匹配成功(存在),则进入步骤S156,反之(不存在),进入步骤S157。
步骤S156,由于AC自动机的单词查找树为以浏览器类型已知的UA模式作为模式串而构建的单词查找树,且每个单词查找树的叶节点对应于一种浏览器类型,可将AC自动机的单词查找树中所匹配的路径的叶节点对应的浏览器类型确定为与所述用户代理串对应的浏览器类型。然后进入步骤S159。
步骤S157,则将用户指定的浏览器类型确定为与用户代理串对应的浏览器类型。进入步骤S158。
步骤S158,更新AC自动机的单词查找树,更具体地,将与用户代理串对应的UA模式作为模式串添加至所述AC自动机的单词查找树,并将所添加的模式串的路径的叶节点对应的浏览器类型设置为步骤S157中确定的浏览器类型。这样,可以不断地更新AC自动机以使得当再次出现相同的UA模式串时无需用户介入便可自动匹配。然后进入步骤S159。
步骤S159,更新用于步骤S130中的指定表,若指定表中不存在所述哈希值到浏览器类型的映射,则将从依据步骤S130中的哈希算法而算得的哈希值到所确定的浏览器类型之间的映射添加至所述指定表中。这样,当在S140发现指定表中不存在步骤S130中算得的哈希值到浏览器类型的映射时(即出现新的不能利用指定表确定浏览器类型的UA串时),可以在根据AC自动机确定或用户指定的浏览器类型来更新指定表,从而建立完善的更新机制。
需要说明的是,上述详细说明了以浏览器类型已知的UA模式作为模式串来构建的用于匹配的AC自动机的单词查找树的方式。然而,并不限于此,例如在又一个实施例中,还可将浏览器类型已知的整个UA串作为模式串来构建该AC自动机。在这种情况下,无需执行步骤S153和步骤S154中的处理,且在步骤S155中的处理变为:利用该AC自动机来中进行匹配以确定AC自动机的单词查找树中是否存在与该整个UA串相匹配的路径,其它处理不变。
甚至,在其它实施例中,还可以在步骤S140中仅将部分步骤S130中解析的一个UA串中的字段或一个以上字段的任意顺序连接所构成的字符串作为UA模式。
第二实施例
图3示出根据本实施例的浏览器类型识别装置。所述浏览器类型识别装置包括接收模块31、解析模块32、计算模块33和第一确定模块34。需要说明的是,图3示出了一种各模块之间的优选连接方式,但它们的连接方式不限于此,甚至可以设置为彼此相互连接。
接收模块接收浏览器发来的网络访问请求。解析模块解析所述请求中的用户代理串。计算模块通过哈希算法地所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值。
若指定表中存在所述哈希值到浏览器类型的映射,第一确定模块将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型。
用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射。
更具体地,上述接收模块31、解析模块32、计算模块33和第一确定模块34执行的处理分别对应于上述实施例的步骤S110、步骤S120、步骤S130和步骤S140,因此不再重复赘述。
所述浏览器类型识别装置还可包括第二确定模块35。若指定表中不存在所述哈希值到浏览器类型的映射,则第二确定模块利用AC自动机来确定所述浏览器的浏览器类型。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (8)

1.一种浏览器类型识别方法,其特征在于,包括:
接收步骤,接收浏览器发来的网络访问请求;
解析步骤,解析所述请求中的用户代理串;
计算步骤,通过哈希算法对所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值;
第一确定步骤,若指定表中存在所述哈希值到浏览器类型的映射,则将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;
第二确定步骤,若所述指定表中不存在所述哈希值到浏览器类型的映射,则利用AC自动机(Aho-Corasick automation)来确定所述浏览器的浏览器类型;
其中,用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射;
其中:
所述第一确定步骤进一步包括:若所述指定表中不存在所述哈希值到浏览器类型的映射,将所述请求中的用户代理串进行存储;
所述第二确定步骤进一步包括:针对在所述第一确定步骤中存储的各用户代理串利用AC自动机来确定其对应的浏览器类型;
所述第二确定步骤进一步包括针对所存储的各用户代理串执行如下处理:
利用AC自动机进行匹配以确定所述AC自动机的单词查找树中是否存在与用户代理串对应的用户代理模式相匹配的路径,若匹配成功,则将AC自动机的单词查找树中所匹配的路径的叶节点对应的浏览器类型确定为与所述请求中的用户代理串对应的浏览器类型;
其中,用户代理串对应的用户代理模式为该用户代理串中的一个字段或一个以上字段的任意顺序连接所构成的字符串;所述AC自动机的单词查找树为以浏览器类型已知的用户代理模式作为模式串构建的单词查找树,每个单词查找树的叶节点对应于一种浏览器类型。
2.根据权利要求1所述的方法,其特征在于,用户代理串对应的用户代理模式为将该用户代理串中的各字段依据各自在用户代理串中的出现顺序前后相接所构成的字符串。
3.根据权利要求1或2所述的方法,其特征在于,所述第二确定步骤进一步包括:
针对所存储的各用户代理串,利用AC自动机进行匹配,若匹配失败,则将用户指定的浏览器类型确定为与所述请求中的用户代理串对应的浏览器类型。
4.根据权利要求3所述的方法,其特征在于,所述第二确定步骤进一步包括:
若匹配失败,还执行以下处理:将与所述请求中的用户代理串对应的用户代理模式作为模式串添加所述AC自动机的单词查找树的模式串,并将所添加的模式串的路径的叶节点对应的浏览器类型设置为所确定的浏览器类型。
5.根据权利要求1所述的方法,其特征在于,
所述第一确定步骤进一步包括:将所述请求中的用户代理串存储在指定文件中;
所述第二确定步骤进一步包括:每隔预设时长复制或下载所述指定文件,针对所复制或下载后的文件中的各用户代理串利用AC自动机来确定其对应的浏览器类型。
6.根据权利要求1所述的方法,其特征在于,若指定表中不存在所述哈希值到浏览器类型的映射,则将从依据所述哈希算法而算得的哈希值到所确定的浏览器类型之间的映射添加至所述指定表中。
7.一种浏览器类型识别系统,其特征在于,包括:
接收模块,接收浏览器发来的网络访问请求;
解析模块,解析所述请求中的用户代理串;
计算模块,通过哈希算法对所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值;
第一确定模块,若指定表中存在所述哈希值到浏览器类型的映射,则将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;
第二确定模块,若所述指定表中不存在所述哈希值到浏览器类型的映射,则利用AC自动机(Aho-Corasick automation)来确定所述浏览器的浏览器类型;
其中,用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射;
所述第一确定模块进一步在所述指定表中不存在所述哈希值到浏览器类型的映射,将所述请求中的用户代理串进行存储;
所述第二确定模块进一步针对所述第一确定模块存储的各用户代理串利用AC自动机来确定其对应的浏览器类型;并进一步包括针对所存储的各用户代理串执行如下处理:
利用AC自动机进行匹配以确定所述AC自动机的单词查找树中是否存在与用户代理串对应的用户代理模式相匹配的路径,若匹配成功,则将AC自动机的单词查找树中所匹配的路径的叶节点对应的浏览器类型确定为与所述请求中的用户代理串对应的浏览器类型;
其中,用户代理串对应的用户代理模式为该用户代理串中的一个字段或一个以上字段的任意顺序连接所构成的字符串;所述AC自动机的单词查找树为以浏览器类型已知的用户代理模式作为模式串构建的单词查找树,每个单词查找树的叶节点对应于一种浏览器类型。
8.一种浏览器类型识别装置,其特征在于,包括:
接收模块,其接收浏览器发来的网络访问请求;
解析模块,其解析所述请求中的用户代理串;
计算模块,其通过哈希算法对所述请求中的用户代理串进行计算,得到与所述请求中的用户代理串对应的哈希值;
第一确定模块,若指定表中存在所述哈希值到浏览器类型的映射,则第一确定模块将与所述哈希值对应的浏览器类型确定为所述浏览器的浏览器类型;
第二确定模块,若所述指定表中不存在所述哈希值到浏览器类型的映射,则利用AC自动机(Aho-Corasick automation)来确定所述浏览器的浏览器类型;
其中,用户代理串为用户代理字段的值,所述指定表用于存储利用所述哈希算法对各个用户代理串分别算得的各哈希值到浏览器类型的映射;
其中:
所述第一确定步骤进一步包括:若所述指定表中不存在所述哈希值到浏览器类型的映射,将所述请求中的用户代理串进行存储;
所述第二确定步骤进一步包括:针对在所述第一确定步骤中存储的各用户代理串利用AC自动机来确定其对应的浏览器类型;
所述第二确定步骤进一步包括针对所存储的各用户代理串执行如下处理:
利用AC自动机进行匹配以确定所述AC自动机的单词查找树中是否存在与用户代理串对应的用户代理模式相匹配的路径,若匹配成功,则将AC自动机的单词查找树中所匹配的路径的叶节点对应的浏览器类型确定为与所述请求中的用户代理串对应的浏览器类型;
其中,用户代理串对应的用户代理模式为该用户代理串中的一个字段或一个以上字段的任意顺序连接所构成的字符串;所述AC自动机的单词查找树为以浏览器类型已知的用户代理模式作为模式串构建的单词查找树,每个单词查找树的叶节点对应于一种浏览器类型。
CN201210189887.4A 2012-06-08 2012-06-08 浏览器类型识别方法、装置及系统 Expired - Fee Related CN102722585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210189887.4A CN102722585B (zh) 2012-06-08 2012-06-08 浏览器类型识别方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210189887.4A CN102722585B (zh) 2012-06-08 2012-06-08 浏览器类型识别方法、装置及系统

Publications (2)

Publication Number Publication Date
CN102722585A CN102722585A (zh) 2012-10-10
CN102722585B true CN102722585B (zh) 2015-01-14

Family

ID=46948346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210189887.4A Expired - Fee Related CN102722585B (zh) 2012-06-08 2012-06-08 浏览器类型识别方法、装置及系统

Country Status (1)

Country Link
CN (1) CN102722585B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103109510A (zh) * 2012-10-16 2013-05-15 华为技术有限公司 一种资源安全访问方法及装置
US10025847B2 (en) 2014-11-25 2018-07-17 Oath Inc. Method and system for providing a user agent string database
WO2016082092A1 (en) 2014-11-25 2016-06-02 Yahoo! Inc. Method and system for analyzing user agent string
CN106330520A (zh) * 2015-07-02 2017-01-11 中兴通讯股份有限公司 一种终端设备的特征信息的提取方法及装置
CN105592105B (zh) * 2016-02-26 2018-12-25 北京奇虎科技有限公司 保证安全的异步式网络访问方法及装置
CN108737328B (zh) * 2017-04-14 2021-08-06 星潮闪耀移动网络科技(中国)有限公司 一种浏览器用户代理识别方法、系统及装置
CN107368532A (zh) * 2017-06-14 2017-11-21 上海斐讯数据通信技术有限公司 一种用户代理字段信息处理方法和系统
CN109246163B (zh) * 2017-07-10 2022-02-08 中国电信股份有限公司 终端信息识别方法及装置
CN108717449A (zh) * 2018-05-18 2018-10-30 国家计算机网络与信息安全管理中心 一种信息处理方法及系统
CN109145581B (zh) * 2018-09-29 2021-08-10 武汉极意网络科技有限公司 基于浏览器渲染性能的防模拟登录方法、装置及服务器
CN109756479B (zh) * 2018-11-29 2021-03-23 武汉极意网络科技有限公司 浏览器中伪造请求检测方法及装置
CN110162729B (zh) * 2019-04-04 2021-09-21 百度在线网络技术(北京)有限公司 建立浏览器指纹以及识别浏览器类型的方法、装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183372A (zh) * 2007-12-21 2008-05-21 腾讯科技(深圳)有限公司 一种样式表处理系统及方法
CN101261643A (zh) * 2008-05-04 2008-09-10 腾讯科技(深圳)有限公司 网站页面信息统计方法及装置
CN101453424A (zh) * 2009-01-06 2009-06-10 中国人民解放军信息工程大学 一种网络信息资源访问控制方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286045B2 (en) * 2008-08-18 2016-03-15 Infosys Limited Method and system for providing applications to various devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183372A (zh) * 2007-12-21 2008-05-21 腾讯科技(深圳)有限公司 一种样式表处理系统及方法
CN101261643A (zh) * 2008-05-04 2008-09-10 腾讯科技(深圳)有限公司 网站页面信息统计方法及装置
CN101453424A (zh) * 2009-01-06 2009-06-10 中国人民解放军信息工程大学 一种网络信息资源访问控制方法和系统

Also Published As

Publication number Publication date
CN102722585A (zh) 2012-10-10

Similar Documents

Publication Publication Date Title
CN102722585B (zh) 浏览器类型识别方法、装置及系统
CN105160252B (zh) 一种结构化查询语言注入攻击的检测方法及装置
CN109951435B (zh) 一种设备标识提供方法及装置和风险控制方法及装置
CN106484453B (zh) 一种实现系统升级的方法及装置
US8825750B2 (en) Application server management system, application server management method, management apparatus, application server and computer program
JP2015011708A (ja) 出力データを生成するためのシステムおよび方法
CN104092555B (zh) 一种更新参数值的方法、装置和系统
CN110276060B (zh) 数据处理的方法以及装置
CN109376534B (zh) 用于检测应用的方法和装置
CN107066303B (zh) 固件比对方法和装置
CN109542926B (zh) 区块处理方法及计算机存储介质
WO2020082763A1 (zh) 基于决策树的钓鱼网站检测方法、装置及计算机设备
CN110909168A (zh) 知识图谱的更新方法和装置、存储介质及电子装置
CN110515631B (zh) 应用安装数据包的生成方法、服务器及计算机存储介质
CN112887451B (zh) 域名解析方法、装置及计算机设备
CN110018835B (zh) Yang模型配置数据处理方法及装置、终端设备及存储介质
CN116150765B (zh) 一种基于api依赖的模糊变异方法及装置
CN111310242B (zh) 设备指纹生成的方法、装置、存储介质及电子设备
CN112269588A (zh) 算法的升级方法、装置、终端和计算机可读存储介质
CN104881308B (zh) 一种应用程序的处理方法及装置
US20220368701A1 (en) Automated clustering of sessions of unstructured traffic
CN112003736B (zh) 一种多节点配置信息确定方法、装置及存储介质
CN114281668A (zh) 异常用例生成方法、装置、电子设备以及存储介质
CN103812908A (zh) 云端文件处理方法以及系统
CN114238131A (zh) 代码检测方法、装置、计算机可读介质及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151106

Address after: 435003 Huangshi City, Hubei province Daye Yihe North Road Development Zone No. 15

Patentee after: Izp Huangshi science and Technology Co Ltd

Address before: 100083, Haidian District, Beijing South Street, northeast flourishing, Beijing Zhongguancun software incubator, building 1, block C, three, 1322-D

Patentee before: IZP (Beijing) Technologies Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150114

Termination date: 20170608

CF01 Termination of patent right due to non-payment of annual fee