发明内容
本发明提供一种统一资源定位符匹配处理方法及装置,用于解决难以按域名级别匹配二级域名下各级域名,以及获取各级域名属性信息。
本发明实施例第一方面提供一种统一资源定位符匹配处理方法,包括:
将接收到的URL按级别进行划分,并获取所述URL中的二级域名,或者所述二级域名和所述二级域名下的信息;
对所述二级域名进行散列处理,获取所述二级域名对应的字符串,并根据所述二级域名对应的字符串,获取键值;
若获取到所述URL中的二级域名,则在所述键值对应的BST中匹配到与所述二级域名对应的节点时,获取第一匹配结果;
若获取到所述URL中的所述二级域名和所述二级域名下的信息,则在所述键值对应的BST中匹配到与所述二级域名对应的节点时,在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,并获取第二匹配结果。
结合第一方面,在第一方面的第一种可能的实施方式中,所述二级域名下的信息包括如下一种或者几种的组合:子域名、目录和页面;
其中,所述子域名的级别大于所述目录的级别;所述目录的级别大于所述页面的级别。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述对所述二级域名进行散列处理,获取所述二级域名对应的字符串,并根据所述二级域名对应的字符串,获取键值之后,所述方法还包括:
若在所述键值对应的BST中,未搜索到与所述二级域名对应的节点,则在所述键值对应的BST中建立与所述二级域名对应的节点,并分别建立所述二级域名下的信息对应的节点;或者,
若在所述键值对应的BST中搜索到所述二级域名对应的节点,则在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次搜索与所述二级域名下的信息对应的节点,若未搜索到所述二级域名下的信息中的一个信息对应的节点,则建立所述一个信息和低于所述一个信息级别的其它信息对应的节点;
其中,所述二级域名对应的节点包括所述二级域名对应的字符串;所述二级域名下的信息对应的节点包括对应的字符串。
结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述方法还包括:
分别在每个节点上添加所述节点对应的属性。
结合第一方面的第一种可能的实施方式,在第一方面的第四种可能的实施方式中,若所述二级域名下的信息包括子域名时,所述方法还包括:
对所述子域名按照分段方式逆序排列;或者,
对所述子域名按照分段方式逆序排列,并对所述子域名的字符串进行逆序排列。
结合第一方面的第一种可能的实施方式,在第一方面的第五种可能的实施方式中,所述在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,并获取第二匹配结果,包括:
在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若完全匹配,则获取的匹配结果为匹配到的最后一个字符对应的属性信息;或者,
在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若部分匹配,则获取的匹配结果为部分匹配的数据;或者,
在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若完全没有匹配,则获取的匹配结果为所述二级域名对应的数据。
结合第一方面,在第一方面的第六种可能的实施方式中,所述根据所述二级域名对应的字符串,获取键值,包括:
从所述二级域名对应的字符串中截取至少一个字节作为散列表的键值。
本发明实施例第二方面提供一种统一资源定位符匹配处理装置,包括:
划分模块,用于将接收到的URL按级别进行划分,并获取所述URL中的二级域名,或者所述二级域名和所述二级域名下的信息;
散列处理模块,用于对所述二级域名进行散列处理,获取所述二级域名对应的字符串,并根据所述二级域名对应的字符串,获取键值;
匹配模块,用于若获取到所述URL中的二级域名,则在所述键值对应的BST中匹配到与所述二级域名对应的节点时,获取第一匹配结果;或者,所述匹配模块,还用于若获取到所述URL中的所述二级域名和所述二级域名下的信息,则在所述键值对应的BST中匹配到与所述二级域名对应的节点时,在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,并获取第二匹配结果。
结合第二方面,在第二方面的第一种可能的实施方式中,所述划分模块获取的二级域名下的信息包括如下一种或者几种的组合:子域名、目录和页面;
其中,所述子域名的级别大于所述目录的级别;所述目录的级别大于所述页面的级别。
结合第二方面的第一种可能的实施方式,在第二方面第三种可能的实施方式中,所述装置还包括:
建立模块,用于若在所述键值对应的BST中,未搜索到与所述二级域名对应的节点,则在所述键值对应的BST中建立与所述二级域名对应的节点,并分别建立所述二级域名下的信息对应的节点;或者,
所述建立模块,用于若在所述键值对应的BST中搜索到所述二级域名对应的节点,则在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次搜索与所述二级域名下的信息对应的节点,若未搜索到所述二级域名下的信息中的一个信息对应的节点,则建立所述一个信息和低于所述一个信息级别的其它信息对应的节点;
其中,所述二级域名对应的节点包括所述二级域名对应的字符串;所述二级域名下的信息对应的节点包括对应的字符串。
结合第二方面第二种可能的实施方式,在第二方面第四种可能的实施方式中,所述装置还包括:
添加模块,用于分别在每个节点上添加所述节点对应的属性。
结合第二方面的第一种可能的实施方式,在第二方面第五种可能的实施方式中,若所述二级域名下的信息包括子域名时,所述装置还包括:
排列模块,用于对所述子域名按照分段方式逆序排列;或者,
对所述子域名按照分段方式逆序排列,并对所述子域名的字符串进行逆序排列。
结合第二方面第一种可能的实施方式,在第二方面第六种可能的实施方式中,所述匹配模块具体用于在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所所述基中对应的字符串进行匹配,若完全匹配,则获取的匹配结果为匹配到的最后一个字符对应的属性信息;或者,
所述匹配模块具体用于在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所所述基中对应的字符串进行匹配,若部分匹配,则获取的匹配结果为部分匹配的数据;或者,
所述匹配模块具体用于在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若完全没有匹配,则获取的匹配结果为所述二级域名对应的数据。
结合第二方面,在第二方面第七种可能的实施方式中,所述散列处理模块具体用于对所述二级域名进行散列处理,获取所述二级域名对应的字符串,并从所述二级域名对应的字符串中截取至少一个字节作为所述键值。
本发明实施例中,通过插入流程提供的BST基础,在匹配过程中,将URL按级别进行划分,并获取URL下的二级域名,或者二级域名和该二级域名下的信息,对该二级域名进行散列处理,获取该二级域名对应的密文形式的字符串,从该字符串中截取至少一个字节作为键值,按照域名级别,依次对上述URL下的二级域名,或者二级域名和该二级域名下的信息与上述键值对应的BST中的字符串进行匹配,以获取匹配结果,从而实现了在匹配到二级域名的情况下,可以一次性线性的对该二级域名下的子域名、目录、页面等进行匹配,且由于在各级域名对应的节点中添加属性信息,可以在匹配的过程中一次性获取到各个级别域名对应的属性,另外,可以对散列处理前的二级域名进行加密,更好的提高了URL的安全性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的统一资源定位符匹配处理方法的一个实施例的流程示意图,如图1所示,该方法包括:
S101、将接收到的URL按级别进行划分,并获取上述URL中的二级域名,或者所述二级域名和所述二级域名下的信息。
优选的,该二级域名下的信息包括如下一种或者几种的组合:子域名、目录和页面;其中,子域名的级别大于目录的级别;目录的级别大于页面的级别。
在本实施例中,举例来说,以上述二级域名下的信息包括子域名、目录和页面为例,对URL按级别进行划分,可以具体划分为二级域名、子域名、目录、页面,例如,接收到给定的URL为“host1.zhidao.baidu.com/quertion/1.html”,其中“baidu.com”为二级域名,“host1.zhidao”为子域名,“quertion”为目录,“1.html”为页面。
更为优选的,上述将接收到的URL进行划分之后,若上述二级域名下的信息包括子域名时,对于子域名的排列可以有如下两种方式,一种方式为:对子域名按照分段方式逆序排列,例如:进行划分后,对二级域名、子域名、目录和页面统一排列时,子域按照分段方式逆序排列的URL可以表示为“baidu.com/zhidao/host1/quertion/1.html”。或者,另一种方式为:对上述子域名按照分段方式逆序排列,并对子域名的字符串进行逆序排列,例如:将URL进行划分后,且对二级域名、子域名、目录和页面统一排列时,子域按照分段方式逆序排列,并对子域名的字符串进行逆序排列的URL可以表示为“baidu.com/oadihz/1tsoh/quertion/1.html”。其中,子域名按分段方式逆序排列,这里采用的分段方式为按“.”分段,即将子域名“host1.zhidao”划分为“host1/zhidao”两部分。
S102、对上述二级域名进行散列处理,获取上述二级域名对应的字符串,并根据上述二级域名对应的字符串,获取键值。
在本实施例中,进行散列(hash)处理的算法很多,优选的,本实施例主要采用消息摘要算法第五版(Message Digest Algorithm5,简称MD5)。具体的,上例中的二级域名经过散列处理后对应的字符串为“60d2f4fe0275d790764f40abc6734499”,因而上述URL的划分结果可表示为“60d2f4fe0275d790764f40abc6734499/zhidao/host1/quertion/1.html”。需要说明的是,散列处理具有一定的加密作用,在进行散列处理之前,还可以对该二级域名进行加密处理,从而更好的保证安全性。
具体实施过程中,根据所述二级域名对应的字符串,获取键值,优选的,可以是从上述二级域名对应的字符串中截取至少一个字节作为该键值,其中,该键值为散列表中的键值。具体地,可以是根据散列表的大小确定截取的字节数,每个字节可以用ascii码的两个字符表示,以截取上述二级域名对应的字符串的前四个字节为例,即截取“60d2f4fe”作为键值。
S103、若获取到上述URL中的二级域名,则在上述键值对应的二叉排序树(Binary Search Tree,简称BST)中匹配到与上述二级域名对应的节点时,获取第一匹配结果。
在本实施例中,由于该URL包括二级域名,不包括二级域名下的信息,因此,进行匹配时只需匹配到二级域名对应的节点。该第一匹配结果具体为匹配到二级域名后返回的该二级域名信息。
S104、若获取到上述URL中的二级域名和该二级域名下的信息,则在上述键值对应的BST中匹配到与上述二级域名对应的节点时,在该二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将上述二级域名下的信息与该基树中对应的字符串进行匹配,并获取第二匹配结果。
在本实施例中,先根据上述键值查找到对应的BST,在BST中先查找到与上述二级域名对应的节点,若在该键值对应的BST中搜索到上述二级域名对应的节点,则在上述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将二级域名下的信息与上述基数中对应的字符串进行匹配,并获取第二匹配结果。例如,如果上述二级域名下的信息包括子域名、目录和页面时,则按照子域名→目录→页面的顺序依次匹配;如果二级域名包括子域名和页面时,则按照子域名→页面的顺序依次匹配,依此类推。需要说明的是,查找到二级域名或子域名、目录和页面中任一个对应的节点时,可以进一步从中获取到对应的属性信息,该属性信息中可以包含该级域名的分类信息。
本实施例中,通过将URL按域名级别进行划分,并获取URL中的二级域名,或者所述二级域名和所述二级域名下的信息,并根据该二级域名对应的字符串,获取键值,按照域名级别,依次对上述URL中的二级域名进行匹配,或者对上述URL中的二级域名和所述二级域名下的信息进行匹配,以获取匹配结果,从而实现了在匹配到二级域名的情况下,可以一次性线性的对该二级域名下的子域名、目录、页面等进行匹配。
进一步地,在本发明另一个实施例中,在上述图1所示实施例的基础上,还提供URL的插入方法,即该方法中,同样执行上述S101~S102,但是在对上述二级域名进行散列处理,获取该二级域名对应的字符串,并根据该二级域名对应的字符串,获取键值之后,上述方法还包括:
若在上述键值对应的BST中,未搜索到与上述二级域名对应的节点,则在上述键值对应的BST中建立与上述二级域名对应的节点,并分别建立该二级域名下的信息对应的节点;上述URL包括二级域名和该二级域名下的信息时,在建立了该二级域名对应的节点之后,还要建立该二级域名下的信息对应的节点,例如子域名、目录、页面对应的节点,以及在对应的节点中添加其它相关信息,例如这些节点下包含的基树、属性信息等。或者,
若在上述键值对应的BST中搜索到上述二级域名对应的节点,则在上述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次搜索与上述二级域名下的信息对应的节点,若未搜索到上述二级域名下的信息中的一个信息对应的节点,则建立上述一个信息和低于上述一个信息级别的其它信息对应的节点;其中,上述二级域名对应的节点包括所述二级域名对应的字符串;二级域名下的信息对应的节点包括对应的字符串;需要说明的是子域名、目录和页面对应的节点的基树包含在上述二级域名节点下的基树中。
举例来说,如果上述二级域名下的信息包括子域名、目录和页面时,在搜索到二级域名对应的节点后,在二级域名对应的节点下的基树中,先搜索子域名对应的节点,若未搜索到子域名对应的节点,则在该二级域名对应的节点下的基树中建立该子域名对应的节点,同时在该子域名对应的节点下的基树中添加子域名对应的字符串,以及建立该子域名下目录、页面等对应的节点;依此类推,再搜索目录,若未搜索到目录对应的节点,则建立该目录对应的节点,同样,也要建立该目录下的页面对应的节点;最后,搜索页面对应的节点,若未搜索到其对应的节点,则建立该页面对应的节点,其中,该页面对应的节点中包含页面对应的字符串。
需要说明的是,在建立各节点后,分别在二级域名、子域名、目录、页面对应的节点上添加对应的属性,该属性可以是分类信息等其它属性信息,例如二级域名“baidu.com”对应的节点对应的属性信息可以是“搜索引擎”。
进一步地,在本发明又一个实施例中,在上述图1所示实施例的基础上,上述在二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将上述二级域名下的信息与上述基树中对应的字符串进行匹配,并获取第二匹配结果的具体实现方式有如下三种:
1)在该二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将上述二级域名下的信息与上述基树中对应的字符串进行匹配,若完全匹配,则获取的匹配结果为匹配到的最后一个字符对应的属性信息。
例如,上述例子中,按照二级域名→子域名→目录→页面的顺序匹配,若完全匹配,即各级域名对应的字符串都匹配到了,则返回匹配到的最后一个字符对应的属性信息,即页面对应的属性信息。当然,这只是一个具体的实例,实际场景中,可能上述URL不包括页面部分,那么最后一个字符可以属于目录对应的字符串;也可能上述URL不包括子域名,那么匹配到二级域名之后,直接对目录进行匹配。
2)在该二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将上述二级域名下的信息与上述基树中对应的字符串进行匹配,若部分匹配,则获取的匹配结果为部分匹配的数据。
在本实施例中,如果只匹配到部分字符串,那么返回匹配到的那部分内容。
3)在该二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将上述二级域名下的信息与上述基树中对应的字符串进行匹配,若完全没有匹配,则获取的匹配结果为上述二级域名对应的数据。
在本实施例中,搜索到二级域名后,依次对该二级域名下的子域名、目录、页面等进行匹配,但是都没有匹配到,则返回该二级域名对应的数据。需要说明的是,此时第一匹配结果和第二匹配结果相同。
图2为本发明基于统一资源定位符匹配处理方法的URL存储结构示意图,如图2所示,本实施例仅为URL存储结构一种类型的示意图,需要说明的是,本实施例中的URL存储结构还可以是其它类型,并不以此为限。上述实施例根据散列表200中的键值找到该对应的BST210,其中,该BST210是经过加密处理,为密文BST,具有很好的安全性。另外,节点(node)201为二级域名对应的节点,三个节点201中对应的字符串的内容都可以与上述键值相匹配,举例说明,例如,键值为截取上述字符串的前四个字节“60d2f4fe”作为键值,搜索后找到的BST210中的三个节点中字符串的前四个字节都是“60d2f4fe”,需要进一步依靠节点中存储的键(key)中的内容进行确认;节点201下的表202存储该二级域名的相关信息,包括:节点头信息(node head);键(key)信息;属性(value)信息;根据具体的场景还可以包括多个基树,例如:目录树、子域名树等。具体的,键信息中存储有二级域名对应的散列处理后的字符串,可以在匹配或插入过程中进一步确定上述节点201中哪一个是要匹配或搜索的二级域名对应的节点;属性信息中存储上述二级域名的属性信息;另外,基树206为二级域名节点下的基树,该基树206中还可以包含多个下级基树,例如子域名节点下的基树和/或目录节点下的基树等;子域名树中,该子域名树为子域名节点下的基树,可以包含多个子域名节点以及子域名的基树,例如上述例子中“baidu.com”下可包括“tieba”、“zhidao”等子域名,每个子域名节点下可以包含多个目录节点,每个目录节点下可以包含多个子目录节点和/或页面节点,其中每个子目录节点下也可以包含多个页面节点;另外二级域名下可以直接包含目录树,该目录树为目录节点下的基树,其中可以包含多个目录节点,每个目录节点下可以包含多个子目录节点和/或页面节点。如图2所示,基树204表示子域名的基树,基树205表示目录的基树。
需要说明的是,子域名的基树还可以由多个级别的子域名组成,以“b.baidu.com”、“a.b.baidu.com”和“c.b.baidu.com”为例,其中“b”为三级子域名,该三级子域名节点下可以有四级子域名“a”和“c”,以构成子域名的基树。当子域名下包括多个级别的子域名时,在进行插入和/或匹配时,同样按照域名级别从大到小进行。
图3为本发明提供的统一资源定位符匹配处理方法再一个实施例的流程示意图,需要说明的是,在对统一资源定位符匹配处理方法之前,需要对统一资源定位符进行插入处理,图4为本实施例中统一资源定位符插入处理方法的流程示意图,如图4所示,该统一资源定位符插入处理方法包括:
S401、将接收到的URL按域名级别分别进行划分,并获取上述URL中的二级域名,或者所述二级域名和所述二级域名下的信息。
其中,该二级域名下的信息包括如下一种或者几种的组合:子域名、目录和页面。
S402、对上述二级域名进行散列处理,获取上述二级域名对应的字符串。
S403、从上述二级域名对应的字符串中截取至少一个字节作为散列表的键值。
S404、在上述键值对应的BST中,搜索与上述二级域名对应的节点,若未搜索到,则执行S405;若搜索到,则执行S406。
S405、建立与上述二级域名对应的节点,并分别建立上述二级域名下的信息对应的节点,同时保存该二级域名对应的密文和/或散列处理后的结果;并执行S408。
S406、在上述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次搜索与上述二级域名下的信息对应的节点,若未搜索到上述所述二级域名下的信息中的一个信息对应的节点,则执行S407,若搜索到所有上述二级域名下的信息对应的节点,则执行S408。
S407、建立上述一个信息和低于该一个信息级别的其它信息对应的节点;并执行S408。
S408、在各节点中添加对应的属性信息。
则在图4所示实施例的基础上,如图3所示,统一资源定位符匹配处理方法包括:
S301、将接收到的URL按域名级别分别进行划分,并获取上述URL中的二级域名,或者所述二级域名和所述二级域名下的信息。
其中,该二级域名下的信息包括如下一种或者几种的组合:子域名、目录和页面。
S302、对上述二级域名进行散列处理,获取上述二级域名对应的字符串。
S303、从上述二级域名对应的字符串中截取至少一个字节作为散列表的键值。
S304、在上述键值对应的BST中,搜索与上述二级域名对应的节点,若未搜索到,则终止流程,若搜索到,则执行S305。
S305、在上述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次搜索与上述二级域名下的信息对应的节点,并与该基树中对应的字符串进行匹配,若未匹配到,则执行S307;若部分匹配到,则执行S306;若完全匹配到,则执行S308。
S306、返回匹配到的那部分内容。结束。
S307、返回上述二级域名对应的数据。结束。
S308、返回匹配到的最后一个字符对应的属性信息。结束。
本发明实施例中,通过插入流程提供的BST基础,在匹配过程中,将URL按级别进行划分,并获取URL下的二级域名,或者二级域名和该二级域名下的信息,对该二级域名进行散列处理,获取该二级域名对应的密文形式的字符串,从该字符串中截取至少一个字节作为键值,按照域名级别,依次对上述URL下的二级域名,或者二级域名和该二级域名下的信息与上述键值对应的BST中的字符串进行匹配,以获取匹配结果,从而实现了在匹配到二级域名的情况下,可以一次性线性的对该二级域名下的子域名、目录、页面等进行匹配,且由于在各级域名对应的节点中添加属性信息,可以在匹配的过程中一次性获取到各个级别域名对应的属性,另外,可以对散列处理前的二级域名进行加密,更好的提高了URL的安全性。
图5为本发明提供的统一资源定位符匹配处理装置一个实施例的结构示意图,如图5所示,该装置包括:划分模块501、散列处理模块502、匹配模块503。其中,划分模块501,用于将接收到的URL按级别进行划分,并获取所述URL中的二级域名,或者所述二级域名和所述二级域名下的信息;散列处理模块502,用于对所述二级域名进行散列处理,获取所述二级域名对应的字符串,并根据所述二级域名对应的字符串,获取键值;匹配模块503,用于若获取到所述URL中的二级域名,则在所述键值对应的BST中匹配到与所述二级域名对应的节点时,获取第一匹配结果;或者,该匹配模块503,用于若获取到所述URL中的所述二级域名和所述二级域名下的信息,则在所述键值对应的BST中匹配到与所述二级域名对应的节点时,在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,并获取第二匹配结果。
需要说明的是,所述二级域名下的信息包括如下一种或者几种的组合:子域名、目录和页面;其中,所述子域名的级别大于所述目录的级别;所述目录的级别大于所述页面的级别。
该装置可用于执行前述方法实施例,具体执行方式可参照图1所示实施例,在此不再赘述。
本实施例中,通过将URL按域名级别进行划分,并获取URL中的二级域名,或者所述二级域名和所述二级域名下的信息,并根据该二级域名对应的字符串,获取键值,按照域名级别,依次对上述URL中的二级域名进行匹配,或者对上述URL中的二级域名和所述二级域名下的信息进行匹配,以获取匹配结果,从而实现了在匹配到二级域名的情况下,可以一次性线性的对该二级域名下的子域名、目录、页面等进行匹配。
图6为本发明提供的统一资源定位符匹配处理装置另一实施例的结构示意图,如图6所示,在图5的基础上,该装置还包括:建立模块504、用于若在所述键值对应的BST中,未搜索到与所述二级域名对应的节点,则在所述键值对应的BST中建立与所述二级域名对应的节点,并分别建立所述二级域名下的信息对应的节点;或者,建立模块504、用于若在所述键值对应的BST中搜索到所述二级域名对应的节点,则在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次搜索与所述二级域名下的信息对应的节点,若未搜索到所述二级域名下的信息中的一个信息对应的节点,则建立所述一个信息和低于所述一个信息级别的其它信息对应的节点;其中,所述二级域名对应的节点包括所述二级域名对应的字符串;所述二级域名下的信息对应的节点包括对应的字符串。
更为优选的,该装置还包括:添加模块505,用于分别在每个节点上添加所述节点对应的属性。
更为优选的,若所述二级域名下的信息包括子域名时,该装置还包括:排列模块506,用于对所述子域名按照分段方式逆序排列;或者,对所述子域名按照分段方式逆序排列,并对所述子域名的字符串进行逆序排列。
另外,上述匹配模块503,具体用于在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若完全匹配,则获取的匹配结果为匹配到的最后一个字符对应的属性信息;或者,
上述匹配模块503,具体用于在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若部分匹配,则获取的匹配结果为部分匹配的数据;或者,
上述匹配模块503,具体用于在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若完全没有匹配,则获取的匹配结果为所述二级域名对应的数据。
散列处理模块502,具体用于对所述二级域名进行散列处理,获取所述二级域名对应的字符串,并从所述二级域名对应的字符串中截取至少一个字节作为所述键值。
该装置可用于执行前述方法实施例,具体执行方式可参照图1~图4所示实施例,在此不再赘述。
本发明实施例中,通过插入流程提供的BST基础,在匹配过程中,将URL按级别进行划分,并获取URL下的二级域名,或者二级域名和该二级域名下的信息,对该二级域名进行散列处理,获取该二级域名对应的密文形式的字符串,从该字符串中截取至少一个字节作为键值,按照域名级别,依次对上述URL下的二级域名,或者二级域名和该二级域名下的信息与上述键值对应的BST中的字符串进行匹配,以获取匹配结果,从而实现了在匹配到二级域名的情况下,可以一次性线性的对该二级域名下的子域名、目录、页面等进行匹配,且由于在各级域名对应的节点中添加属性信息,可以在匹配的过程中一次性获取到各个级别域名对应的属性,另外,可以对散列处理前的二级域名进行加密,更好的提高了URL的安全性。
本发明实施例还提供另一种统一资源定位符匹配处理装置,包括:存储器和处理器,其中:
存储器,用于存储指令;
处理器,与所述存储器耦合,所述处理器被配置为执行存储在所述存储器中的指令,且所述处理器被配置为用于执行上述方法实施例;
具体地,处理器,用于将接收到的URL按级别进行划分,并获取所述URL中的二级域名,或者所述二级域名和所述二级域名下的信息;对所述二级域名进行散列处理,获取所述二级域名对应的字符串,并根据所述二级域名对应的字符串,获取键值;若获取到所述URL中的二级域名,则在所述键值对应的BST中匹配到与所述二级域名对应的节点时,获取第一匹配结果;若获取到所述URL中的所述二级域名和所述二级域名下的信息,则在所述键值对应的BST中匹配到与所述二级域名对应的节点时,在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,并获取第二匹配结果。
需要说明的是,所述二级域名下的信息包括如下一种或者几种的组合:子域名、目录和页面;其中,所述子域名的级别大于所述目录的级别;所述目录的级别大于所述页面的级别。
进一步地,处理器还用于若在所述键值对应的BST中,未搜索到与所述二级域名对应的节点,则在所述键值对应的BST中建立与所述二级域名对应的节点,并分别建立所述二级域名下的信息对应的节点;或者,用于若在所述键值对应的BST中搜索到所述二级域名对应的节点,则在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次搜索与所述二级域名下的信息对应的节点,若未搜索到所述二级域名下的信息中的一个信息对应的节点,则建立所述一个信息和低于所述一个信息级别的其它信息对应的节点;其中,所述二级域名对应的节点包括所述二级域名对应的字符串;所述二级域名下的信息对应的节点包括对应的字符串。
更进一步地,处理器还用于分别在每个节点上添加所述节点对应的属性;
若所述二级域名下的信息包括子域名时,该处理器还用于对所述子域名按照分段方式逆序排列;或者,
对所述子域名按照分段方式逆序排列,并对所述子域名的字符串进行逆序排列。
处理器,还具体用于在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若完全匹配,则获取的匹配结果为匹配到的最后一个字符对应的属性信息;或者,具体用于在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若部分匹配,则获取的匹配结果为部分匹配的数据;或者,具体用于在所述二级域名对应节点下的基树中,按照级别从大到小的顺序,依次将所述二级域名下的信息与所述基树中对应的字符串进行匹配,若完全没有匹配,则获取的匹配结果为所述二级域名对应的数据。
优选地,所述处理器,还具体用于对所述二级域名进行散列处理,获取所述二级域名对应的字符串,并从所述二级域名对应的字符串中截取至少一个字节作为所述键值。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。