[发明专利]一种黑名单URL的哈希表的建立及请求URL的查找方法有效
申请号: | 201610022119.8 | 申请日: | 2016-01-13 |
公开(公告)号: | CN106970917B | 公开(公告)日: | 2019-11-19 |
发明(设计)人: | 陈晓;田娟娟 | 申请(专利权)人: | 中国科学院声学研究所;北京中科智网科技有限公司 |
主分类号: | G06F16/955 | 分类号: | G06F16/955;H04L29/06 |
代理公司: | 11472 北京方安思达知识产权代理有限公司 | 代理人: | 王宇杨;杨青<国际申请>=<国际公布>= |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 黑名单 url 哈希表 建立 请求 查找 方法 | ||
1.一种黑名单URL的哈希表的建立方法,所述方法包括:
步骤S1)遍历黑名单中的URL字符串,按照分隔符的个数将黑名单中的URL分为三类;计算三类URL所占的比例,计算出分配给三类URL的哈希表的“桶”数;
步骤S2)通过哈希函数处理得到每个URL的哈希值h,计算其对应的“桶”的索引值;然后将每个URL插入到哈希表的“桶”上,当所有的URL插入到哈希表的“桶”上时,黑名单URL的哈希表建立完毕;
所述步骤S1)具体包括:
步骤S1-1)将黑名单中的URL分为三类:第一类是URL字符串只包含一个分隔符‘/’,第二类是URL字符串包含两个分隔符‘/’,第三类是包含三个及三个以上分隔符‘/’;
步骤S1-2)通过遍历黑名单中的URL字符串,得到三类URL占总URL的比例;
步骤S1-3)计算哈希表分配给三类URL的“桶”的数目;
分配给第一类URL“桶”的数目为:num1=HASHTABLESIZE*ratio_1,其中,ratio_1为第一类URL所占的比例;
分配给第二类URL“桶”的数目为:num2=HASHTABLESIZE*ratio_2,其中,ratio_2为第二类URL所占的比例;
分配给第三类URL“桶”的数目为:num3=HASHTABLESIZE*ratio_3,其中ratio_3为第三类URL所占的比例。
2.根据权利要求1所述的黑名单URL的哈希表的建立方法,其特征在于,所述步骤S2)具体包括:
步骤S2-1)通过哈希函数处理,得到黑名单中每个URL的哈希值h;
步骤S2-2)根据步骤S1-2)所得到的分配给各类URL的“桶”的数目和每个URL的哈希值h,计算其对应的“桶”的索引值;
根据第一类URL字符串的哈希值h计算其索引值:hash_index=h%num1,将第一类URL字符串的哈希值限定1~num1范围内;
根据第二类URL字符串的哈希值h计算其索引值:hash_index=h%num2+num1,将第二类URL字符串的哈希值限定num1~num1+num2范围内;
根据第三类URL字符串的哈希值h计算其索引值:hash_index=h%num3+num1+num2;将第三类URL字符串的哈希值限定在num1+num2~num1+num2+num3范围内;
步骤S2-3)根据每个URL的“桶”的索引值,将每个URL插入到哈希表的“桶”上,当所有的URL插入到哈希表的“桶”上时,黑名单URL的哈希表建立完毕。
3.根据权利要求2所述的黑名单URL的哈希表的建立方法,其特征在于,所述步骤S2-3)中的将每个URL插入到哈希表的“桶”上的实现过程为:
首先查看URL的索引值对应的“桶”是否为空;如果“桶”为空,计算该URL的前缀哈希值,申请一个节点prefix_node,这个节点的前缀值为这个URL的前缀哈希值,同时这个节点也指向一个链表url_list,将这个URL字符串加入到链表url_list中;如果“桶”不为空,那么首先要遍历这个“桶”所指向的链表prefix_list中的prefix_node节点,检查节点的前缀值是否和这个URL的前缀哈希值相等,如果有一个节点的前缀值和这个URL的前缀哈希值相等,那么将这个URL添加到这个节点所指向的链表url_list中;如果这个链表上所有节点的前缀值都和这个URL字符串的前缀值不相等,那么给这个链表增加一个prefix_node节点,这个节点的前缀值为URL字符串的前缀哈希值,并且再建立一个这个节点指向的url_list链表,将这个URL添加到url_list链表上。
4.一种请求URL的查询方法,基于权利要求1-3之一所述的黑名单URL的哈希表的建立方法建立的哈希表实现,用于在哈希表中查询请求URL;所述方法包括:
步骤T1)逐个处理请求URL中的字符,得到包含的分隔符‘/’数目;根据分隔符的数目计算每个分隔符之前的所有字符的哈希值,计算其对应的“桶”的索引值;
步骤T2)根据请求URL的分隔符的个数和索引值在所述哈希表中查询请求URL,返回查询结果,查询完毕。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所;北京中科智网科技有限公司,未经中国科学院声学研究所;北京中科智网科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610022119.8/1.html,转载请声明来源钻瓜专利网。