CN105978865B - 应用包名验证方法及装置 - Google Patents
应用包名验证方法及装置 Download PDFInfo
- Publication number
- CN105978865B CN105978865B CN201610280906.2A CN201610280906A CN105978865B CN 105978865 B CN105978865 B CN 105978865B CN 201610280906 A CN201610280906 A CN 201610280906A CN 105978865 B CN105978865 B CN 105978865B
- Authority
- CN
- China
- Prior art keywords
- target
- application
- sub
- name
- stored
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1073—Registration or de-registration
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种应用包名验证方法及装置,属于互联网技术领域。所述方法包括:接收包名验证请求,所述包名验证请求中携带待注册的应用包名;基于域名结构顺序,对所述应用包名进行处理,得到目标查询词,所述目标查询词符合所述域名结构顺序;基于所述目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,所述目标数据库中存储有与所述目标查询词的最后一个分隔符之后的内容相同的查询词;基于所述目标查询词和所述目标数据库,对所述应用包名进行验证。本公开中应用发布平台基于目标数据库就可以实现对应用包名的验证,提高了应用包名的验证效率。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种应用包名验证方法及装置。
背景技术
在移动互联网盛行的今天,应用开发方在开发出某一应用时,往往会将该应用上传到相关的应用发布平台,以对该应用进行发布。应用开发方在将该应用上传到应用发布平台时,需要对该应用的应用包名进行注册,在该注册过程中,应用发布平台会对该应用的应用包名进行验证,以确保应用发布平台中发布的所有应用的应用包名都是唯一的。
目前,提供的应用包名验证方法为:应用发布平台接收包名验证请求,该包名验证请求中携带待注册的应用包名;应用发布平台判断数据库中是否已存储该应用包名;当该数据库中已存储该应用包名时,确定该应用包名验证失败;当该数据库中未存储该应用包名时,确定该应用包名验证通过。
发明内容
为克服相关技术中存在的问题,本公开提供一种应用包名验证方法及装置。
根据本公开实施例的第一方面,提供一种应用包名验证方法,所述方法包括:
接收包名验证请求,所述包名验证请求中携带待注册的应用包名;
基于域名结构顺序,对所述应用包名进行处理,得到目标查询词,所述目标查询词符合所述域名结构顺序;
基于所述目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,所述目标数据库中存储有与所述目标查询词的最后一个分隔符之后的内容相同的查询词;
基于所述目标查询词和所述目标数据库,对所述应用包名进行验证。
结合第一方面,在上述第一方面的第一种可能的实现方式中,所述基于域名结构顺序,对所述应用包名进行处理,得到目标查询词,包括:
对所述应用包名中包括的多个子包名的排列顺序进行反转,所述多个子包名被所述应用包名中的分隔符所分隔;
基于反转后的应用包名,确定所述目标查询词。
结合第一方面的第一种可能的实现方式,在上述第一方面的第二种可能的实现方式中,所述对所述应用包名中包括的多个子包名的排列顺序进行反转之前,所述方法还包括:
确定所述应用包名的结构顺序;
当所述应用包名的结构顺序与所述域名结构顺序相反时,执行对所述应用包名中包括的多个子包名的排列顺序进行反转的步骤。
结合第一方面的第二种可能的实现方式,在上述第一方面的第三种可能的实现方式中,所述确定所述应用包名的结构顺序之后,所述方法还包括:
当所述应用包名的结构顺序与所述域名结构顺序相同时,基于所述应用包名,确定所述目标查询词。
结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在上述第一方面的第四种可能的实现方式中,所述基于反转后的应用包名,确定所述目标查询词,包括:
将反转后的应用包名确定为所述目标查询词;或者,
确定所述应用包名对应的应用类型常量,将所述应用类型常量以指定规则添加到反转后的应用包名的末尾,得到所述目标查询词。
结合第一方面,在上述第一方面的第五种可能的实现方式中,所述基于所述目标查询词和所述目标数据库,对所述应用包名进行验证,包括:
判断所述目标数据库中是否已存储所述目标查询词;
当所述目标数据库中已存储所述目标查询词时,确定所述应用包名验证失败;
当所述目标数据库中未存储所述目标查询词时,确定所述应用包名验证通过。
结合第一方面的第五种可能的实现方式,在上述第一方面的第六种可能的实现方式中,所述判断所述目标数据库中是否已存储所述目标查询词,包括:
从所述目标查询词中获取N个子查询词,所述N为所述目标查询词的域名级别且所述N为大于或等于1的正整数;
按照所述N个子查询词的域名级别由高到低的顺序,判断所述目标数据库中是否已存储i级子查询词,所述i级子查询词为所述N个子查询词中域名级别为i的子查询词,所述i大于或等于1且小于或等于N;
当所述目标数据库中未存储所述i级子查询词时,确定所述目标数据库中未存储所述目标查询词;
当所述目标数据库中已存储所述N个子查询词时,确定所述目标数据库中已存储所述目标查询词。
结合第一方面的第五种可能的实现方式或第一方面的第六种可能的实现方式,在上述第一方面的第七种可能的实现方式中,所述当所述目标数据库中未存储所述目标查询词时,确定所述应用包名验证通过之后,所述方法还包括:
将所述目标查询词存储到所述目标数据库中。
结合第一方面的第七种可能的实现方式,在上述第一方面的第八种可能的实现方式中,所述将所述目标查询词存储到所述目标数据库中之后,所述方法还包括:
接收应用删除请求,所述应用删除请求中携带所述应用包名;
基于所述域名结构顺序,对所述应用包名进行处理,得到所述目标查询词;
对存储的所述目标查询词进行删除。
根据本公开实施例的第二方面,提供一种应用包名验证装置,所述装置包括:
第一接收模块,用于接收包名验证请求,所述包名验证请求中携带待注册的应用包名;
处理模块,用于基于域名结构顺序,对所述应用包名进行处理,得到目标查询词,所述目标查询词符合所述域名结构顺序;
确定模块,用于基于所述目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,所述目标数据库中存储有与所述目标查询词的最后一个分隔符之后的内容相同的查询词;
验证模块,用于基于所述目标查询词和所述目标数据库,对所述应用包名进行验证。
结合第二方面,在上述第二方面的第一种可能的实现方式中,所述处理模块包括:
反转子模块,用于对所述应用包名中包括的多个子包名的排列顺序进行反转,所述多个子包名被所述应用包名中的分隔符所分隔;
第一确定子模块,用于基于反转后的应用包名,确定所述目标查询词。
结合第二方面的第一种可能的实现方式,在上述第二方面的第二种可能的实现方式中,所述处理模块还包括:
第二确定子模块,用于确定所述应用包名的结构顺序;
所述反转子模块,用于当所述应用包名的结构顺序与所述域名结构顺序相反时,执行对所述应用包名中包括的多个子包名的排列顺序进行反转的步骤。
结合第二方面的第二种可能的实现方式,在上述第二方面的第三种可能的实现方式中,所述处理模块还包括:
第三确定子模块,用于当所述应用包名的结构顺序与所述域名结构顺序相同时,基于所述应用包名,确定所述目标查询词。
结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在上述第二方面的第四种可能的实现方式中,所述第一确定子模块用于:
将反转后的应用包名确定为所述目标查询词;或者,
确定所述应用包名对应的应用类型常量,将所述应用类型常量以指定规则添加到反转后的应用包名的末尾,得到所述目标查询词。
结合第二方面,在上述第二方面的第五种可能的实现方式中,所述验证模块包括:
判断子模块,用于判断所述目标数据库中是否已存储所述目标查询词;
第四确定子模块,用于当所述目标数据库中已存储所述目标查询词时,确定所述应用包名验证失败;
第五确定子模块,用于当所述目标数据库中未存储所述目标查询词时,确定所述应用包名验证通过。
结合第二方面的第五种可能的实现方式,在上述第二方面的第六种可能的实现方式中,所述判断子模块用于:
从所述目标查询词中获取N个子查询词,所述N为所述目标查询词的域名级别且所述N为大于或等于1的正整数;
按照所述N个子查询词的域名级别由高到低的顺序,判断所述目标数据库中是否已存储i级子查询词,所述i级子查询词为所述N个子查询词中域名级别为i的子查询词,所述i大于或等于1且小于或等于N;
当所述目标数据库中未存储所述i级子查询词时,确定所述目标数据库中未存储所述目标查询词;
当所述目标数据库中已存储所述N个子查询词时,确定所述目标数据库中已存储所述目标查询词。
结合第二方面的第五种可能的实现方式或第二方面的第六种可能的实现方式,在上述第二方面的第七种可能的实现方式中,所述验证模块还包括:
存储子模块,用于将所述目标查询词存储到所述目标数据库中。
结合第二方面的第七种可能的实现方式,在上述第二方面的第八种可能的实现方式中,所述装置还包括:
第二接收模块,用于接收应用删除请求,所述应用删除请求中携带所述应用包名;
所述处理模块,用于基于所述域名结构顺序,对所述应用包名进行处理,得到所述目标查询词;
删除模块,用于对存储的所述目标查询词进行删除。
根据本公开实施例的第三方面,提供一种应用包名验证装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收包名验证请求,所述包名验证请求中携带待注册的应用包名;
基于域名结构顺序,对所述应用包名进行处理,得到目标查询词,所述目标查询词符合所述域名结构顺序;
基于所述目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,所述目标数据库中存储有与所述目标查询词的最后一个分隔符之后的内容相同的查询词;
基于所述目标查询词和所述目标数据库,对所述应用包名进行验证。
本公开的实施例提供的技术方案可以包括以下有益效果:在本公开实施例中,应用发布平台接收包名验证请求,该包名验证请求中携带待注册的应用包名,基于域名结构顺序,对该应用包名进行处理,得到目标查询词,并基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,之后,基于目标查询词和目标数据库,对该应用包名进行验证。由于目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,应用发布平台只需在目标数据库中对目标查询词进行查找,而无需在应用发布平台中的所有数据库中对目标查询词进行查找,从而提高了目标查询词的查找效率,且此时应用发布平台仅基于目标数据库就可以实现对该应用包名的验证,从而提高了该应用包名的验证效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1(a)是根据一示例性实施例示出的一种应用包名验证方法所涉及的实施环境的示意图。
图1(b)是根据一示例性实施例示出的另一种应用包名验证方法所涉及的实施环境的示意图。
图2是根据一示例性实施例示出的一种应用包名验证方法的流程图。
图3是根据一示例性实施例示出的另一种应用包名验证方法的流程图。
图4是根据一示例性实施例示出的再一种应用包名验证方法的流程图。
图5是根据一示例性实施例示出的第一种应用包名验证装置的框图。
图6是根据一示例性实施例示出的一种处理模块的框图。
图7是根据一示例性实施例示出的另一种处理模块的框图。
图8是根据一示例性实施例示出的再一种处理模块的框图。
图9是根据一示例性实施例示出的一种验证模块的框图。
图10是根据一示例性实施例示出的另一种验证模块的框图。
图11是根据一示例性实施例示出的第二种应用包名验证装置的框图。
图12是根据一示例性实施例示出的第三种应用包名验证装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1(a)和图1(b)是分别根据一示例性实施例示出的一种应用包名验证方法所涉及的实施环境的示意图,该实施环境可以包括:终端101和应用发布平台102。终端101和应用发布平台102可以通过有线网络或者无线网络进行通信,其中,终端101用于向应用发布平台102发送包名验证请求,以使应用发布平台102对待注册的应用包名进行验证;应用发布平台102用于在接收到包名验证请求时,对该包名验证请求中携带的待注册的应用包名进行验证。
其中,当应用发布平台102为一台服务器时,如图1(a)所示,该服务器中可以包括多个数据库,每个数据库中存储有多个查询词,该多个查询词的最后一个分隔符之后的内容相同,且每个数据库中可以包括多个子数据库,该多个子数据库用于对查询词进行分层树状存储,每个子数据库中可以存储多个子查询词,且每个子数据库中存储的子查询词的域名级别相同。
其中,当应用发布平台102为由多台服务器组成的服务器集群时,如图1(b)所示,该服务器集群中可以包括递归服务器和多个权威服务器,递归服务器和该多个权威服务器可以通过有线网络或者无线网络进行通信。其中,递归服务器用于从该多个权威服务器中查找查询词;该多个权威服务器中的每个权威服务器中可以包括一个或者多个子数据库,该多个子数据库用于对查询词进行分层树状存储,每个子数据库中可以存储多个子查询词,且每个子数据库中存储的子查询词的域名级别相同。
图2是根据一示例性实施例示出的一种应用包名验证方法的流程图,该方法用于应用发布平台中。如图2所示,该方法包括以下步骤。
在步骤201中,接收包名验证请求,包名验证请求中携带待注册的应用包名。
在步骤202中,基于域名结构顺序,对应用包名进行处理,得到目标查询词,目标查询词符合域名结构顺序。
在步骤203中,基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词。
在步骤204中,基于目标查询词和目标数据库,对应用包名进行验证。
在本公开实施例中,应用发布平台接收包名验证请求,该包名验证请求中携带待注册的应用包名,基于域名结构顺序,对该应用包名进行处理,得到目标查询词,并基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,之后,基于目标查询词和目标数据库,对该应用包名进行验证。由于目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,应用发布平台只需在目标数据库中对目标查询词进行查找,而无需在应用发布平台中的所有数据库中对目标查询词进行查找,从而提高了目标查询词的查找效率,且此时应用发布平台仅基于目标数据库就可以实现对该应用包名的验证,从而提高了该应用包名的验证效率。
在本公开的另一实施例中,基于域名结构顺序,对应用包名进行处理,得到目标查询词,包括:
对应用包名中包括的多个子包名的排列顺序进行反转,多个子包名被应用包名中的分隔符所分隔;
基于反转后的应用包名,确定目标查询词。
在本公开实施例中,可以无需确定该应用包名的结构顺序,直接将该应用包名中包括的多个子包名的排列顺序进行反转,反转后的应用包名符合域名结构顺序,之后,基于反转后的应用包名,确定目标查询词,从而可以节省应用发布平台的处理资源,提高目标查询词的确定效率。
在本公开的另一实施例中,对应用包名中包括的多个子包名的排列顺序进行反转之前,该方法还包括:
确定应用包名的结构顺序;
当应用包名的结构顺序与域名结构顺序相反时,执行对应用包名中包括的多个子包名的排列顺序进行反转的步骤。
在本公开实施例中,可以先确定该应用包名的结构顺序,进而当该应用包名的结构顺序与该域名结构顺序相反时,对该应用包名中包括的多个子包名的排列顺序进行反转,从而可以保证反转后的应用包名符合该域名结构顺序,进而保证基于反转后的应用包名确定的目标查询词符合该域名结构顺序。
在本公开的另一实施例中,确定应用包名的结构顺序之后,该方法还包括:
当应用包名的结构顺序与域名结构顺序相同时,基于应用包名,确定目标查询词。
在本公开实施例中,当该应用包名的结构顺序与该域名结构顺序相同时,可以直接基于该应用包名确定目标查询词,此时无需对该应用包名进行反转,从而不仅可以节省应用发布平台的处理资源,提高目标查询词的确定效率,还可以避免将已符合该域名结构顺序的应用包名进行误反转,提高了确定的目标查询词的准确度。
在本公开的另一实施例中,基于反转后的应用包名,确定目标查询词,包括:
将反转后的应用包名确定为目标查询词;或者,
确定应用包名对应的应用类型常量,将应用类型常量以指定规则添加到反转后的应用包名的末尾,得到目标查询词。
在本公开实施例中,可以将反转后的应用包名直接确定为目标查询词,此时应用发布平台无需再进行其它操作,从而可以节省应用发布平台的处理资源,并提高目标查询词的确定效率。且本公开实施例中,也可以基于该应用包名对应的应用类型常量,确定目标查询词,此时目标查询词的最后一个分隔符之后的内容为该应用类型常量,由于该应用类型常量与该应用包名的应用类型唯一对应,且由于后续确定的目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,此时目标数据库中仅存储属于该应用包名的应用类型的查询词,从而进一步缩小了目标数据库中存储的查询词的范围,提高了目标数据库的针对性。
在本公开的另一实施例中,基于目标查询词和目标数据库,对应用包名进行验证,包括:
判断目标数据库中是否已存储目标查询词;
当目标数据库中已存储目标查询词时,确定应用包名验证失败;
当目标数据库中未存储目标查询词时,确定应用包名验证通过。
在本公开实施例中,由于目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,应用发布平台只需在目标数据库中对目标查询词进行查找,而无需在应用发布平台中的所有数据库中对目标查询词进行查找,从而提高了目标查询词的查找效率,且此时应用发布平台仅通过判断目标数据库中是否已存储目标查询词就可以实现对该应用包名的验证,从而提高了该应用包名的验证效率。
在本公开的另一实施例中,判断目标数据库中是否已存储目标查询词,包括:
从目标查询词中获取N个子查询词,N为目标查询词的域名级别且N为大于或等于1的正整数;
按照N个子查询词的域名级别由高到低的顺序,判断目标数据库中是否已存储i级子查询词,i级子查询词为N个子查询词中域名级别为i的子查询词,i大于或等于1且小于或等于N;
当目标数据库中未存储i级子查询词时,确定目标数据库中未存储目标查询词;
当目标数据库中已存储N个子查询词时,确定目标数据库中已存储目标查询词。
在本公开实施例中,可以按照该N个子查询词的域名级别由高到低的顺序,判断目标数据库中是否已存储该N个子查询词,进而判断目标数据库中是否已存储目标查询词,从而实现了对目标查询词的分级查找,该分级查找的操作简单,且当确定目标数据库中未存储该N个子查询词中的某个子查询词时,即可确定目标数据库中未存储目标查询词,而无需再对低于该子查询词的域名级别的子查询词的存储与否进行判断,从而提高了目标查询词的查找效率。
在本公开的另一实施例中,当目标数据库中未存储目标查询词时,确定应用包名验证通过之后,该方法还包括:
将目标查询词存储到目标数据库中。
在本公开实施例中,可以当该应用包名验证通过之后,将目标查询词存储到目标数据库中,从而可以保证当后续接收到的包名验证请求中携带的该应用包名时,应用发布平台可以基于存储的目标查询词,对该应用包名进行准确验证。
在本公开的另一实施例中,将目标查询词存储到目标数据库中之后,该方法还包括:
接收应用删除请求,应用删除请求中携带应用包名;
基于域名结构顺序,对应用包名进行处理,得到目标查询词;
对存储的目标查询词进行删除。
在本公开实施例中,可以避免该应用包名被删除后,应用发布平台对后续接收到的包名验证请求中携带的该应用包名进行误验证,提高了该应用包名的验证准确度。
上述所有可选技术方案,均可按照任意结合形成本公开的可选实施例,本公开实施例对此不再一一赘述。
图3是根据一示例性实施例示出的一种应用包名验证方法的流程图,该方法用于应用发布平台中,且应用发布平台为一台服务器,也即是,该方法可以应用于图1(a)所示的实施环境中。如图3所示,该方法包括以下步骤。
在步骤301中,接收包名验证请求,该包名验证请求中携带待注册的应用包名。
需要说明的是,包名验证请求用于请求对应用包名进行验证,该包名验证请求可以由终端发送,且为了保证应用发布平台中注册的所有应用包名都是唯一的,该终端可以在对该应用包名进行注册时向应用发布平台发送该包名验证请求,以判断应用发布平台中是否已注册过该应用包名。
另外,应用包名用于唯一标识应用,且该应用包名可以由分隔符、字母和数字等等组成,该分隔符可以为“.”、“,”、“、”等等,本公开实施例对此不做具体限定。例如,该应用包名可以为com.xiaomi.miliao、com.tencent.mm等等。其中,分隔符可以将该应用包名分隔为多个子包名,该多个子包名分属于不同等级。例如,当该应用包名为com.xiaomi.miliao时,该应用包名中的分隔符“.”可以将该应用包名分隔为多个子包名com、xiaomi、miliao,该多个子包名com、xiaomi、miliao分属于不同等级。
在步骤302中,基于域名结构顺序,对该应用包名进行处理,得到目标查询词,目标查询词符合该域名结构顺序。
由于域名可以由分隔符、字母、数字等等组成,且该分隔符可以将该域名分隔为多个子域名,该多个子域名分属于不同等级,因此,域名结构与应用包名结构相似,所以应用发布平台可以基于域名结构顺序,对该应用包名进行处理,得到目标查询词。且应用发布平台基于域名结构顺序,对该应用包名进行处理,得到目标查询词的操作可以为:对该应用包名中包括的多个子包名的排列顺序进行反转,该多个子包名被该应用包名中的分隔符所分隔;基于反转后的应用包名,确定目标查询词。
需要说明的是,域名结构顺序用于指示该域名中被分隔符分隔出的多个子域名的排列顺序,该多个子域名中的每个子域名在该域名中存在等级,且一般情况下该域名结构顺序为从低等级到高等级的排列顺序。
另外,该应用包名的结构顺序用于指示该应用包名中被分隔符分隔出的多个子包名的排列顺序,该多个子包名中的每个子包名在该应用包名中存在等级,且一般情况下该应用包名的结构顺序为从高等级到低等级的排列顺序。
由于一般情况下该应用包名的结构顺序与该域名结构顺序相反,因此,本公开实施例在确定目标查询词时,可以无需确定该应用包名的结构顺序,直接将该应用包名中包括的多个子包名的排列顺序进行反转,反转后的应用包名符合域名结构顺序,之后,基于反转后的应用包名,确定目标查询词,从而可以节省应用发布平台的处理资源,提高目标查询词的确定效率。
例如,该应用包名为com.xiaomi.miliao,则可以将该应用包名中包括的多个子包名com、xiaomi、miliao的排列顺序进行反转,反转后的应用包名为miliao.xiaomi.com,之后,可以基于反转后的应用包名miliao.xiaomi.com,确定目标查询词。
其中,基于反转后的应用包名,确定目标查询词时,可以将反转后的应用包名确定为目标查询词;或者,可以确定该应用包名对应的应用类型常量,将该应用类型常量以指定规则添加到反转后的应用包名的末尾,得到目标查询词。
需要说明的是,该应用类型常量与该应用包名的应用类型唯一对应,且该应用类型常量可以由字母、数字等等组成,本公开实施例对此不做具体限定。例如,该应用类型常量可以为im、game等等。其中,该应用包名的应用类型可以为即时通讯、游戏等等,本公开实施例对此不做具体限定。
另外,指定规则可以预先设置,且该指定规则用于指示以符合域名结构的格式对该应用类型常量进行添加,例如,该指定规则可以为以“.应用类型常量”的格式对该应用类型常量进行添加等等,本公开实施例对此不做具体限定。
需要说明的是,本公开实施例中,可以将反转后的应用包名直接确定为目标查询词,此时应用发布平台无需再进行其它操作,从而可以节省应用发布平台的处理资源,并提高目标查询词的确定效率。且本公开实施例中,也可以基于该应用包名对应的应用类型常量,确定目标查询词,此时目标查询词的最后一个分隔符之后的内容为该应用类型常量,由于该应用类型常量与该应用包名的应用类型唯一对应,且由于后续确定的目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,此时目标数据库中仅存储属于该应用包名的应用类型的查询词,从而进一步缩小了目标数据库中存储的查询词的范围,提高了目标数据库的针对性。
例如,反转后的应用包名为miliao.xiaomi.com,则可以将反转后的应用包名miliao.xiaomi.com确定为目标查询词;或者,可以确定该应用包名对应的应用类型常量,假设该应用包名对应的应用类型常量为im,指定规则为以“.应用类型常量”的格式对该应用类型常量进行添加,则可以将该应用类型常量im以“.im”的格式添加到反转后的应用包名miliao.xiaomi.com的末尾,得到目标查询词miliao.xiaomi.com.im。
其中,确定该应用包名对应的应用类型常量时,可以确定该应用包名对应的应用类型,再基于该应用类型,从存储的应用类型与应用类型常量之间的对应关系中,获取该应用类型对应的应用类型常量,将获取的应用类型常量确定为该应用包名对应的应用类型常量。
例如,该应用包名对应的应用类型为即时通讯,则应用发布平台可以从如下表1所示的应用类型与应用类型常量之间的对应关系中,获取即时通讯对应的应用类型常量为im,应用发布平台可以将该获取的应用类型常量im确定为该应用包名对应的应用类型常量。
表1
应用类型 | 应用类型常量 |
即时通讯 | im |
游戏 | game |
…… | …… |
需要说明的是,本公开实施例中,仅以上述表1所示的应用类型与应用类型常量之间的对应关系为例进行说明,上述表1并不对本公开实施例构成限定。
其中,确定该应用包名对应的应用类型的操作可以参考相关技术,本公开实施例对此不进行详细阐述。
进一步地,为了避免将已符合该域名结构顺序的应用包名进行误反转,在对该应用包名中包括的多个子包名的排列顺序进行反转之前,还可以确定该应用包名的结构顺序;当该应用包名的结构顺序与该域名结构顺序相反时,执行对该应用包名中包括的多个子包名的排列顺序进行反转的步骤;当该应用包名的结构顺序与该域名结构顺序相同时,基于该应用包名,确定目标查询词。
需要说明的是,本公开实施例中,当该应用包名的结构顺序与该域名结构顺序相反时,可以对该应用包名中包括的多个子包名的排列顺序进行反转,从而可以保证反转后的应用包名符合该域名结构顺序,进而保证基于反转后的应用包名确定的目标查询词符合该域名结构顺序。而当该应用包名的结构顺序与该域名结构顺序相同时,可以直接基于该应用包名确定目标查询词,此时无需对该应用包名进行反转,从而不仅可以节省应用发布平台的处理资源,提高目标查询词的确定效率,还可以避免将已符合该域名结构顺序的应用包名进行误反转,提高了确定的目标查询词的准确度。
例如,该域名结构顺序为从低等级到高等级的排列顺序,该应用包名为com.xiaomi.miliao,且该应用包名的结构顺序为从高等级到低等级的排列顺序,则可以确定该应用包名的结构顺序与该域名结构顺序相反,此时可以将该应用包名中包括的多个子包名com、xiaomi、miliao的排列顺序进行反转,反转后的应用包名为miliao.xiaomi.com,反转后的应用包名符合该域名结构顺序,之后,应用发布平台可以基于反转后的应用包名miliao.xiaomi.com,确定目标查询词。
再例如,该域名结构顺序为从低等级到高等级的排列顺序,该应用包名为miliao.xiaomi.com,且该应用包名的结构顺序为从低等级到高等级的排列顺序,则可以确定该应用包名的结构顺序与该域名结构顺序相同,也即是,该应用包名miliao.xiaomi.com符合该域名结构顺序,之后,应用发布平台可以基于该应用包名miliao.xiaomi.com,确定目标查询词。
其中,确定该应用包名的结构顺序的操作可以参考相关技术,本公开实施例对此不进行详细阐述。
其中,基于该应用包名,确定目标查询词时,可以将该应用包名确定为目标查询词;或者,可以确定该应用包名对应的应用类型常量,将该应用类型常量以指定规则添加到该应用包名的末尾,得到目标查询词。另外,基于该应用包名,确定目标查询词的操作与上述步骤302中基于反转后的应用包名,确定目标查询词的操作类似,本公开实施例对此不再赘述。
在步骤303中,基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词。
需要说明的是,本公开实施例中应用发布平台可以按照查询词的最后一个分隔符之后的内容,对该查询词进行分类存储,也即是,可以将不同类别的查询词存储到不同的数据库中,该查询词的类别体现为该查询词的最后一个分隔符之后的内容,从而可以保证该应用发布平台中存储的多个数据库中的每个数据库中存储同一类别的查询词,提高了查询词的存储灵活性。
另外,本公开实施例中应用发布平台对查询词进行分类存储的操作可以基于DNS(Domain Name System,域名系统)实现,本公开实施例对此不做具体限定。
再者,本公开实施例中应用发布平台对查询词进行分类存储之后,如果后续需要对某一查询词进行查找,则可以仅在该查询词的类别对应的数据库中对该查询词进行查找,而无需在该应用发布平台中的所有数据库中对该查询词进行查找,从而可以提高查询词的查找效率。
由于该多个数据库中的每个数据库中存储有同一类别的查询词,因此,基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库时,可以将目标查询词的最后一个分隔符之后的内容确定为目标查询词的类别,之后,基于目标查询词的类别,从存储的类别与数据库标识之间的对应关系中,获取目标数据库标识,将目标数据库标识对应的数据库确定为目标数据库。当然,实际应用中,也可以通过其它方式基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,本公开实施例对此不做具体限定。
需要说明的是,数据库标识用于唯一标识数据库,且该数据库标识可以为该数据库的存储位置等,本公开实施例对此不做具体限定。
例如,目标查询词为miliao.xiaomi.com.im,则可以将目标查询词的最后一个分隔符之后的内容im确定为目标查询词的类别,之后,可以从如下表2所示的类别与数据库标识之间的对应关系中,获取目标数据库标识为数据库标识1,将该数据库标识1对应的数据库确定为目标数据库。
表2
类型 | 数据库标识 |
im | 数据库标识1 |
game | 数据库标识2 |
…… | …… |
需要说明的是,本公开实施例中,仅以上述表2所示的类别与数据库标识之间的对应关系为例进行说明,上述表2并不对本公开实施例构成限定。
在步骤304中,基于目标查询词和目标数据库,对该应用包名进行验证。
由于目标数据库一般存储于硬盘中,临时数据一般存储于本地缓存中,且本地缓存的存取速度高于硬盘的存取速度,因此,为了提高该应用包名的验证效率,在基于目标查询词和目标数据库,对该应用包名进行验证之前,还可以判断本地缓存中是否已存储目标查询词;当本地缓存中已存储目标查询词时,确定该应用包名验证失败;当本地缓存中未存储目标查询词时,执行基于目标查询词和目标数据库,对该应用包名进行验证的步骤。
需要说明的是,本公开实施例中,可以先判断本地缓存中是否已存储目标查询词,当本地缓存中已存储目标查询词时,可以直接确定该应用包名验证失败,而无需再基于目标查询词和目标数据库,对该应用包名进行验证,提高了该应用包名的验证效率。而当本地缓存中未存储目标查询词时,继续基于目标查询词和目标数据库,对该应用包名进行验证,保证了该应用包名的验证准确度。
为了保证应用发布平台中注册的所有应用包名都是唯一的,终端可以在对该应用包名进行注册时向应用发布平台发送该包名验证请求,以判断应用发布平台中是否已注册过该应用包名,而当应用发布平台中已注册过该应用包名时,应用发布平台中应该已存储该应用包名对应的目标查询词,当应用发布平台中未注册过该应用包名时,应用发布平台中应该未存储该应用包名对应的目标查询词,因此,应用发布平台基于目标查询词和目标数据库,对该应用包名进行验证时,可以判断目标数据库中是否已存储目标查询词;当目标数据库中已存储目标查询词时,确定该应用包名验证失败;当目标数据库中未存储目标查询词时,确定该应用包名验证通过,从而保证应用发布平台中注册的所有应用包名都是唯一的。
由于当目标数据库中已存储目标查询词时,表明应用发布平台中已注册过该应用包名,因此,此时该应用包名不能在应用发布平台中再次进行注册,应用发布平台可以确定该应用包名验证失败。而当目标数据库中未存储目标查询词时,表明应用发布平台中未注册过该应用包名,因此,此时该应用包名可以在应用发布平台中进行注册,应用发布平台可以确定该应用包名验证通过。
需要说明的是,由于目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,本公开实施例中应用发布平台只需在目标数据库中对目标查询词进行查找,而无需在应用发布平台中的所有数据库中对目标查询词进行查找,从而提高了目标查询词的查找效率,且此时应用发布平台仅通过判断目标数据库中是否已存储目标查询词就可以实现对该应用包名的验证,从而提高了该应用包名的验证效率。
其中,判断目标数据库中是否已存储目标查询词的操作可以为:从目标查询词中获取N个子查询词,该N为目标查询词的域名级别且该N为大于或等于1的正整数;按照该N个子查询词的域名级别由高到低的顺序,判断目标数据库中是否已存储i级子查询词,该i级子查询词为该N个子查询词中域名级别为i的子查询词,该i大于或等于1且小于或等于N;当目标数据库中未存储该i级子查询词时,确定目标数据库中未存储目标查询词;当目标数据库中已存储该N个子查询词时,确定目标数据库中已存储目标查询词。
需要说明的是,域名级别可以为1、2、3等,且域名级别由高到低的顺序可以为1、2、3……,本公开实施例对此不做具体限定。
另外,查询词的域名级别可以由该查询词中被分隔符分隔出的多个子域名的个数确定,子查询词的域名级别可以由该子查询词中被分隔符分隔出的多个子域名的个数确定,例如,查询词mm.cctv.com中,分隔符“.”将mm.cctv.com分隔为3个子域名mm、cctv、com,则查询词mm.cctv.com的域名级别为3;子查询词.cctv.com中,分隔符“.”将.cctv.com分隔为2个子域名cctv、com,则子查询词.cctv.com的域名级别为2。
再者,本公开实施例中,可以按照该N个子查询词的域名级别由高到低的顺序,判断目标数据库中是否已存储该N个子查询词,进而判断目标数据库中是否已存储目标查询词,从而实现了对目标查询词的分级查找,该分级查找的操作简单,且当确定目标数据库中未存储该N个子查询词中的某个子查询词时,即可确定目标数据库中未存储目标查询词,而无需再对低于该子查询词的域名级别的子查询词的存储与否进行判断,从而提高了目标查询词的查找效率。
其中,应用发布平台从目标查询词中获取N个子查询词时,可以基于目标查询词的等级顺序,将目标查询词确定为第一个子查询词;将目标查询词中第一个分隔符以及第一个分隔符右边的内容确定为第二个子查询词;将目标查询词中第二个分隔符以及第二个分隔符右边的内容确定为第三个子查询词,如此,直至将目标查询词中第N-1个分隔符,也即是最后一个分隔符以及该最后一个分隔符右边的内容确定为第N个子查询词,其中,分隔符左边的内容比该分隔符右边的内容的等级低。
例如,目标查询词为miliao.xiaomi.com.im,目标查询词的域名级别为4,则应用发布平台可以按照目标查询词的等级顺序,将目标查询词miliao.xiaomi.com.im确定为第一个子查询词;将目标查询词miliao.xiaomi.com.im中第一个分隔符“.”以及第一个分隔符“.”右边的内容xiaomi.com.im确定为第二个子查询词,第二个子查询词为.xiaomi.com.im;将目标查询词miliao.xiaomi.com.im中第二个分隔符“.”以及第二个分隔符“.”右边的内容com.im确定为第三个子查询词,第三个子查询词为.com.im;将目标查询词miliao.xiaomi.com.im中第三个分隔符“.”以及第三个分隔符“.”右边的内容im确定为第四个子查询词,第四个子查询词为.im。
其中,按照该N个子查询词的域名级别由高到低的顺序,判断目标数据库中是否已存储i级子查询词,进而判断目标数据库中是否已存储目标查询词的操作可以包括如下步骤(1)-(4):
(1)、从该N个子查询词中,获取i级子查询词。
例如,目标查询词为miliao.xiaomi.com.im,目标查询词的域名级别为4,从目标查询词中获取的4个子查询词为.im、.com.im、.xiaomi.com.im、miliao.xiaomi.com.im,且子查询词.im的域名级别为1,子查询词.com.im的域名级别为2,子查询词.xiaomi.com.im的域名级别为3,子查询词miliao.xiaomi.com.im的域名级别为4。假设i等于1,则应用发布平台可以从该4个子查询词中获取1级子查询词.im。
(2)、判断i级子数据库中是否已存储该i级子查询词,该i级子数据库中存储有与该i级子查询词的域名级别相同的子查询词,该i级子数据库为目标数据库包括的子数据库。
例如,i等于1,1级子查询词为.im,1级子数据库中存储有多个子查询词.im、.game、.music、.video、.map,则应用发布平台可以确定该1级子数据库中已存储该1级子查询词.im。
再例如,i等于1,1级子查询词为.im,1级子数据库中存储有多个子查询词.read、.game、.music、.video、.map,则应用发布平台可以确定该1级子数据库中未存储该1级子查询词.im。
需要说明的是,当确定i级子数据库中已存储该i级子查询词时,应用发布平台可以继续执行如下步骤(3)来判断目标数据库中是否已存储目标查询词;而当确定i级子数据库中未存储该i级子查询词时,应用发布平台可以继续执行如下步骤(4)来判断目标数据库中是否已存储目标查询词。
(3)、当该i级子数据库中已存储该i级子查询词时,判断该i是否与该N相等;当该i与该N不相等时,令该i=i+1,返回步骤(1),直至该i与该N相等,并确定目标数据库中已存储该N个子查询词,确定目标数据库中已存储目标查询词。
由于该i级子数据库为目标数据库包括的子数据库,因此,当该i级子数据库中已存储该i级子查询词,且当i等于N时,可以确定目标数据库中已存储N级子查询词,又由于本公开实施例中是按照该N个子查询词的域名级别由高到低的顺序来判断目标数据库是否已存储该i级子查询词的,因此,当目标数据库中已存储该N级子查询词时,可以确定目标数据库中已存储该N个子查询词,进而确定目标数据中已存储目标查询词。
例如,i等于1,当1级子数据库中已存储1级子查询词时,应用发布平台可以判断1是否与N相等。假设N为4,由于1不等于4,则可以令i=1+1=2,返回步骤(1);假设N为1,由于1等于1,则可以确定目标数据库中已存储该N个子查询词,进而确定目标数据库中已存储目标查询词。
需要说明的是,本公开实施例中,可以当该i与该N不相等时,令该i=i+1,返回步骤(1),通过该循环操作,可以使应用发布平台准确按照该N个子查询词的域名级别由高到低的顺序,依次判断目标数据库是否已存储该N个子查询词,进而判断目标数据库中是否已存储目标查询词,从而实现了对目标查询词的分级查找,提高了目标查询词的查找效率。
(4)、当该i级子数据库中未存储该i级子查询词时,确定目标数据库中未存储该i级子查询词,并确定目标数据库中未存储目标查询词。
由于该i级子数据库是目标数据库包括的子数据库,因此,当该i级子数据库中未存储该i级子查询词时,可以确定目标数据库中未存储该i级子查询词,又由于该i级子查询词是从目标查询词中获取得到,因此,可以确定目标数据库中未存储目标查询词。
需要说明的是,本公开实施例中,当目标数据库中未存储该i级子查询词时,即可确定目标数据库中未存储目标查询词,而无需继续对下一级子查询词的存储与否进行判断,从而节省了应用发布平台的处理资源,提高了目标查询词的查找效率,且提高了目标查询词的查找灵活度。
需要说明的是,本公开实施例中,应用发布平台是按照查询词的最后一个分隔符之后的内容,对查询词进行分类存储的,且每个查询词是以多个子查询词的形式灵活地进行分层存储的,从而使得应用发布平台中存储的查询词表现为一种分层树状存储结构,这种分层树状存储结构便于应用发布平台对某个查询词进行查找,且便于应用发布平台对某些具有相同子查询词的查询词进行管理和迁移。
另外,本公开实施例中,应用发布平台按照该N个子查询词的域名级别由高到低的顺序,判断目标数据库中是否已存储i级子查询词,进而判断目标数据库中是否已存储目标查询词的操作可以基于DNS实现。由于DNS中的数据按照分层树状存储结构进行存储,因此,实际应用中,可以基于DNS对目标查询词进行查找。且由于DNS经过大规模使用,可靠性较高,因此,本公开实施例中基于DNS对目标查询词进行查找时,不仅可以提高目标查询词的查找效率,还可以提高目标查询词的查找准确度。另外,本公开实施例中DNS只供应用发布平台内部对目标查询词进行查找时使用,因此,可以有效避免该DNS被缓存污染、中间人攻击等,从而保证了该应用发布平台中存储的查询词的安全性。
进一步地,当目标数据库中已存储目标查询词时,确定该应用包名验证失败之后,还可以将目标查询词存储到本地缓存中,并设置目标查询词的失效时长,该失效时长为从第一时间到第二时间的时长,该第一时间为将目标查询词存储到本地缓存中的时间,该第二时间为目标查询词在本地缓存中失效的时间。
需要说明的是,本公开实施例中,可以将目标查询词存储到本地缓存中,从而当应用发布平台下一次对目标查询词进行查找时,可以直接从该本地缓存中查找到目标查询词,而无需再在目标数据库中对目标查询词进行查找,进一步提高了目标查询词的查找效率。
更进一步地,设置目标查询词的失效时长之后,还可以统计目标查询词在本地缓存中的存储时长,当该存储时长等于该失效时长时,对本地缓存中存储的目标查询词进行删除,从而保证应用发布平台可以定时从该多个数据库中获取最新的查询词信息,且可以避免本地缓存中存储的查询词过多时,降低查询词的查找效率。
需要说明的是,本公开实施例中将目标查询词存储到本地缓存中,并当目标查询词在本地缓存中的存储时长等于目标查询词的失效时长时,对本地缓存中存储的目标查询词进行删除的操作可以基于DNS实现。由于DNS天然支持缓存和失效机制,因此,该存储和删除操作不用额外增加其它处理程序,节省了应用发布平台的处理资源。
进一步地,当目标数据库中未存储目标查询词时,确定该应用包名验证通过之后,还可以将目标查询词存储到目标数据库中,从而可以保证当后续接收到的包名验证请求中携带的该应用包名时,应用发布平台可以基于存储的目标查询词,对该应用包名进行准确验证。
需要说明的是,本公开实施例中将目标查询词存储到目标数据库中时,可以基于DNS协议将目标查询词存储到目标数据库中,当然,也可以通过其它方式将目标查询词存储到目标数据库中,只需保证存储的目标查询词符合分层树状存储结构即可,本公开实施例对此不做具体限定。
另外,本公开实施例中的查询词可以以文本文件格式进行存储,该文本文件格式结构简单,可以节省应用发布平台的存储资源,当然,查询词也可以以其它格式进行存储,本公开实施例对此不做具体限定。另外,本公开实施例中查询词的分层树状存储结构,可以有效减小存储的查询词的冗余度,进一步节省应用发布平台的存储资源。
进一步地,将目标查询词存储到目标数据库中之后,还可以接收应用删除请求,该应用删除请求中携带该应用包名,基于该域名结构顺序,对该应用包名进行处理,得到目标查询词,对存储的目标查询词进行删除,从而避免该应用包名被删除后,应用发布平台对后续接收到的包名验证请求中携带的该应用包名进行误验证,提高了该应用包名的验证准确度。
其中,基于该域名结构顺序,对该应用包名进行处理,得到目标查询词的操作与上述步骤302中的操作相同,本公开实施例对此不再赘述。
例如,应用发布平台接收应用删除请求,且该应用删除请求中携带的应用包名为com.xiaomi.miliao,则该应用发布平台可以对该应用包名com.xiaomi.miliao进行处理,得到目标查询词。假设得到的目标查询词为miliao.xiaomi.com.im,则可以对存储的目标查询词miliao.xiaomi.com.im进行删除。
在本公开实施例中,应用发布平台接收包名验证请求,该包名验证请求中携带待注册的应用包名,基于域名结构顺序,对该应用包名进行处理,得到目标查询词,并基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,之后,基于目标查询词和存储的目标数据库,对该应用包名进行验证。由于目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,应用发布平台只需在目标数据库中对目标查询词进行查找,而无需在应用发布平台中的所有数据库中对目标查询词进行查找,从而提高了目标查询词的查找效率,且此时应用发布平台仅基于目标数据库就可以实现对该应用包名的验证,从而提高了该应用包名的验证效率。
图4是根据一示例性实施例示出的一种应用包名验证方法的流程图,该方法用于应用发布平台中,且应用发布平台为由多台服务器组成的服务器集群,也即是,该方法可以应用于图1(b)所示的实施环境中。如图4所示,该方法包括以下步骤。
在步骤401中,接收包名验证请求,该包名验证请求中携带待注册的应用包名。
需要说明的是,接收包名验证请求的操作与上述步骤301中的操作相同,本公开实施例对此不再赘述。且接收包名验证请求的操作可以由递归服务器执行。
在步骤402中,基于域名结构顺序,对该应用包名进行处理,得到目标查询词,目标查询词符合该域名结构顺序。
需要说明的是,基于域名结构顺序,对该应用包名进行处理,得到目标查询词的操作与上述步骤302中的操作相同,本公开实施例对此不再赘述。且基于域名结构顺序,对该应用包名进行处理,得到目标查询词的操作可以由递归服务器执行。
在步骤403中,基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词。
需要说明的是,基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库的操作与上述步骤303中的操作相同,本公开实施例对此不再赘述。且基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库的操作可以由递归服务器执行。
在步骤404中,基于目标查询词和目标数据库,对该应用包名进行验证。
在本公开实施例中,目标数据库中存储的查询词可以为权威服务器中存储的查询词,本地缓存中存储的查询词可以为递归服务器中存储的查询词,由于递归服务器的存取速度高于权威服务器的存取速度,因此,为了提高该应用包名的验证效率,在基于目标查询词和目标数据库,对该应用包名进行验证之前,递归服务器还可以判断递归服务器的本地缓存中是否已存储目标查询词;当该本地缓存中已存储目标查询词时,递归服务器确定该应用包名验证失败;当该本地缓存中未存储目标查询词时,递归服务器执行基于目标查询词和目标数据库,对该应用包名进行验证的步骤。
为了保证应用发布平台中注册的所有应用包名都是唯一的,终端可以在对该应用包名进行注册时向应用发布平台发送包名验证请求,以判断应用发布平台中是否已注册过该应用包名,而当应用发布平台中已注册过该应用包名时,应用发布平台中应该已存储该应用包名对应的目标查询词,当应用发布平台中未注册过该应用包名时,应用发布平台中应该未存储该应用包名对应的目标查询词,因此,递归服务器基于目标查询词和权威服务器中存储的目标数据库,对该应用包名进行验证时,递归服务器可以判断权威服务器中存储的目标数据库中是否已存储目标查询词;当目标数据库中已存储目标查询词时,递归服务器确定该应用包名验证失败;当目标数据库中未存储目标查询词时,递归服务器确定该应用包名验证通过,从而保证应用发布平台中注册的所有应用包名都是唯一的。
由于当目标数据库中已存储目标查询词时,表明应用发布平台中已注册过该应用包名,因此,此时该应用包名不能在应用发布平台中再次进行注册,递归服务器可以确定该应用包名验证失败。而当目标数据库中未存储目标查询词时,表明应用发布平台中未注册过该应用包名,因此,此时该应用包名可以在应用发布平台中进行注册,递归服务器可以确定该应用包名验证通过。
需要说明的是,由于目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,本公开实施例中递归服务器只需在目标数据库中对目标查询词进行查找,而无需在应用发布平台中的所有数据库中对目标查询词进行查找,从而提高了目标查询词的查找效率,且此时递归服务器仅通过判断目标数据库中是否已存储目标查询词就可以实现对该应用包名的验证,从而提高了该应用包名的验证效率。
其中,递归服务器判断权威服务器中存储的目标数据库中是否已存储目标查询词的操作可以为:递归服务器从目标查询词中获取N个子查询词,该N为目标查询词的域名级别且该N为大于或等于1的正整数;递归服务器按照该N个子查询词的域名级别由高到低的顺序,判断权威服务器中存储的目标数据库中是否已存储i级子查询词,该i级子查询词为该N个子查询词中域名级别为i的子查询词,该i大于或等于1且小于或等于N;当目标数据库中未存储该i级子查询词时,递归服务器确定目标数据库中未存储目标查询词;当目标数据库中已存储该N个子查询词时,递归服务器确定目标数据库中已存储目标查询词。
需要说明的是,本公开实施例中,递归服务器可以按照该N个子查询词的域名级别由高到低的顺序,判断权威服务器中存储的目标数据库中是否已存储该N个子查询词,进而判断目标数据库中是否已存储目标查询词,实现了对目标查询词的分级查找,该分级查找的操作简单,且当确定目标数据库中未存储该N个子查询词中的某个子查询词时,递归服务器即可确定目标数据库中未存储目标查询词,而无需再对低于该子查询词的域名级别的子查询词的存储与否进行判断,从而提高了目标查询词的查找效率。
其中,递归服务器从目标查询词中获取N个子查询词的操作与上述步骤303中从目标查询词中获取N个子查询词的操作相同,本公开实施例对此不再赘述。
其中,递归服务器按照该N个子查询词的域名级别由高到低的顺序,判断权威服务器中存储的目标数据库中是否已存储i级子查询词,进而判断目标数据库中是否已存储目标查询词的操作可以包括如下步骤(1)-(4):
(1)、递归服务器从该N个子查询词中,获取i级子查询词。
例如,目标查询词为miliao.xiaomi.com.im,目标查询词的域名级别为4,从目标查询词中获取的4个子查询词为.im、.com.im、.xiaomi.com.im、miliao.xiaomi.com.im,且子查询词.im的域名级别为1,子查询词.com.im的域名级别为2,子查询词.xiaomi.com.im的域名级别为3,子查询词miliao.xiaomi.com.im的域名级别为4。假设i等于1,则递归服务器可以从该4个子查询词中获取1级子查询词.im。
(2)、递归服务器判断i级子数据库中是否已存储该i级子查询词,该i级子数据库中存储有与该i级子查询词的域名级别相同的子查询词,该i级子数据库为目标数据库包括的子数据库。
需要说明的是,权威服务器中可以包括一个或多个子数据库。递归服务器可以基于i级权威服务器地址,查找i级权威服务器,进而判断i级权威服务器包括的i级子数据库中是否已存储该i级子查询词。其中,i级权威服务器为i级子数据库所在的权威服务器。另外,递归服务器中可以预先存储有1级权威服务器地址。
需要说明的是,i级权威服务器地址可以为i级权威服务器的IP(InternetProtocol,网络互连协议)地址等等,本公开实施例对此不做具体限定。
例如,i等于1,1级子查询词为.im,1级权威服务器地址为1级权威服务器的IP地址,且该1级权威服务器地址为123.139.24.177,则递归服务器可以基于该IP地址123.139.24.177,查找1级权威服务器,假设该1级权威服务器包括的1级子数据库中存储有多个子查询词.im、.game、.music、.video、.map,则递归服务器可以确定该1级子数据库中已存储该1级子查询词.im。
再例如,i等于1,1级子查询词为.im,1级权威服务器地址为1级权威服务器的IP地址,且该1级权威服务器地址为123.139.24.177,则递归服务器可以基于该IP地址123.139.24.177,查找1级权威服务器,假设该1级权威服务器包括的1级子数据库中存储有多个子查询词.read、.game、.music、.video、.map,则递归服务器可以确定该1级子数据库中未存储该1级子查询词.im。
需要说明的是,当确定i级子数据库中已存储该i级子查询词时,递归服务器可以继续执行如下步骤(3)来判断目标数据库中是否已存储目标查询词;而当确定i级子数据库中未存储该i级子查询词时,递归服务器可以继续执行如下步骤(4)来判断目标数据库中是否已存储目标查询词。
(3)、当该i级子数据库中已存储该i级子查询词时,递归服务器判断该i是否与该N相等;当该i与该N不相等时,令该i=i+1,返回步骤(1),直至该i与该N相等,并确定目标数据库中已存储该N个子查询词,确定目标数据库中已存储目标查询词。
由于该i级子数据库为目标数据库包括的子数据库,因此,当该i级子数据库中已存储该i级子查询词,且当i等于N时,递归服务器可以确定目标数据库中已存储该N级子查询词,又由于本公开实施例中递归服务器是按照该N个子查询词的域名级别由高到低的顺序来判断目标数据库是否已存储该i级子查询词的,因此,当目标数据库中已存储该N级子查询词时,递归服务器可以确定目标数据库中已存储该N个子查询词,进而可以确定目标域名数据中已存储目标查询词。
需要说明的是,当该i与该N不相等时,递归服务器可以从该i级子数据库所在的i级权威服务器中获取i+1级权威服务器地址,之后,令该i=i+1,返回步骤(1)。
例如,i等于1,当1级子数据库中已存储1级子查询词时,递归服务器可以判断1是否与N相等。假设N为4,由于1不等于4,则递归服务器可以从该1级子数据库所在的1级权威服务器中获取2级权威服务器地址,之后,令i=1+1=2,返回步骤(1);假设N为1,由于1等于1,则递归服务器可以确定目标数据库中已存储该N个子查询词,进而确定目标数据库中已存储目标查询词。
需要说明的是,本公开实施例中,递归服务器可以当该i与该N不相等时,令该i=i+1,返回步骤(1),通过该循环操作,可以使递归服务器准确按照该N个子查询词的域名级别由高到低的顺序,依次判断权威服务器中存储的目标数据库是否已存储该N个子查询词,进而判断目标数据库中是否已存储目标查询词,从而实现了对目标查询词的分级查找,提高了目标查询词的查找效率。
(4)、当该i级子数据库中未存储该i级子查询词时,递归服务器确定目标数据库中未存储该i级子查询词,并确定目标数据库中未存储目标查询词。
由于该i级子数据库是目标数据库包括的子数据库,因此,当该i级子数据库中未存储该i级子查询词时,递归服务器可以确定目标数据库中未存储该i级子查询词,又由于i级子查询词是从目标查询词中获取得到,因此,此时递归服务器可以确定目标数据库中未存储目标查询词。
需要说明的是,本公开实施例中,当该i级子数据库中未存储该i级子查询词时,递归服务器即可确定目标数据库中未存储目标查询词,而无需继续对下一级子查询词的存储与否进行判断,从而节省了递归服务器的处理资源,提高了目标查询词的查找效率,且提高了目标查询词的查找灵活度。
需要说明的是,本公开实施例中,权威服务器是按照该查询词的最后一个分隔符之后的内容,对查询词进行分类存储的,且每个查询词是以多个子查询词的形式灵活地进行分层存储的,从而使得权威服务器中存储的查询词表现为一种分层树状存储结构,这种分层树状存储结构便于递归服务器对某个查询词进行查找,且便于对某些具有相同子查询词的查询词进行管理和迁移。
另外,本公开实施例中,递归服务器按照该N个子查询词的域名级别由高到低的顺序,判断权威服务器中存储的目标数据库中是否已存储i级子查询词,进而判断目标数据库中是否已存储目标查询词的操作可以基于DNS实现。由于DNS中的数据按照分层树状存储结构进行存储,因此,实际应用中,可以基于DNS对目标查询词进行查找。且由于DNS经过大规模使用,可靠性较高,因此,本公开实施例中基于DNS对目标查询词进行查找时,不仅可以提高目标查询词的查找效率,还可以提高目标查询词的查找准确度。另外,由于DNS支持分布式部署,也即是应用发布平台中包括的多个子数据库可以部署在一台权威服务器上,也可以分别部署在几台廉价的权威服务器上,因此,DNS搭建成本低、消耗资源少,从而可以节省应用发布平台的资源。再者,本公开实施例中DNS只供应用发布平台内部对目标查询词进行查找时使用,因此,可以有效避免该DNS被缓存污染、被中间人攻击等,从而保证了存储的查询词的安全性。
进一步地,当目标数据库中已存储目标查询词时,递归服务器确定应用包名验证失败之后,递归服务器还可以将目标查询词存储到本地缓存中,并设置目标查询词的失效时长,该失效时长为从第一时间到第二时间的时长,该第一时间为将目标查询词存储到本地缓存中的时间,该第二时间为目标查询词在本地缓存中失效的时间。
需要说明的是,本公开实施例中,递归服务器可以将目标查询词存储到本地缓存中,从而当递归服务器下一次对目标查询词进行查找时,可以直接从该本地缓存中查询到目标查询词,而无需再从权威服务器中对目标查询词进行查找,进一步提高了目标查询词的查找效率。
更进一步地,递归服务器设置目标查询词的失效时长之后,还可以统计目标查询词在本地缓存中的存储时长,当该存储时长等于该失效时长时,递归服务器可以对本地缓存中存储的目标查询词进行删除,从而保证递归服务器可以定时从权威服务器中获取最新的查询词信息,且可以避免本地缓存中存储的查询词过多时,降低查询词的查找效率。
需要说明的是,递归服务器将目标查询词存储到本地缓存中,并当目标查询词在本地缓存中的存储时长等于目标查询词的失效时长时,对本地缓存中存储的目标查询词进行删除的操作可以基于DNS实现。由于DNS天然支持缓存和失效机制,因此,该存储和删除操作不用额外增加其它处理程序,节省了递归服务器的处理资源。
进一步地,当目标数据库中未存储目标查询词时,递归服务器确定应用包名验证通过之后,递归服务器还可以将目标查询词存储到目标数据库中,从而可以保证当后续接收到的包名验证请求中携带的该应用包名时,递归服务器可以基于存储的目标查询词,对该应用包名进行准确验证。
需要说明的是,递归服务器将目标查询词存储到目标数据库中的操作与上述步骤304中将目标查询词存储到目标数据库中的操作相同,本公开实施例对此不再赘述。
另外,本公开实施例中的查询词可以以文本文件格式进行存储,该文本文件格式结构简单,可以节省权威服务器的存储资源,当然,查询词也可以以其它格式进行存储,本公开实施例对此不做具体限定。另外,本公开实施例中查询词的分层树状存储结构,可以有效减小存储的查询词的冗余度,进一步节省权威服务器的存储资源
进一步地,递归服务器将目标查询词存储到目标数据库中之后,还可以接收应用删除请求,该应用删除请求中携带该应用包名,递归服务器基于该域名结构顺序,对该应用包名进行处理,得到目标查询词,之后,递归服务器对本地缓存中存储的目标查询词进行删除,且向权威服务器发送查询词删除请求,该查询词删除请求中携带目标查询词,当权威服务器接收到该查询词删除请求时,对目标数据库中存储的目标查询词进行删除,从而避免该应用包名被删除后,递归服务器对后续接收到的包名验证请求中携带的该应用包名进行误验证,提高了该应用包名的验证准确度。
在本公开实施例中,应用发布平台接收包名验证请求,该包名验证请求中携带待注册的应用包名,基于域名结构顺序,对该应用包名进行处理,得到目标查询词,并基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,之后,基于目标查询词和存储的目标数据库,对该应用包名进行验证。由于目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,应用发布平台只需在目标数据库中对目标查询词进行查找,而无需在应用发布平台中的所有数据库中对目标查询词进行查找,从而提高了目标查询词的查找效率,且此时应用发布平台仅基于目标数据库就可以实现对该应用包名的验证,从而提高了该应用包名的验证效率。
图5是根据一示例性实施例示出的一种应用包名验证装置的框图。参照图5,该装置包括第一接收模块501,处理模块502,确定模块503和验证模块504。
第一接收模块501,用于接收包名验证请求,包名验证请求中携带待注册的应用包名;
处理模块502,用于基于域名结构顺序,对应用包名进行处理,得到目标查询词,目标查询词符合域名结构顺序;
确定模块503,用于基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词;
验证模块504,用于基于目标查询词和目标数据库,对应用包名进行验证。
在本公开的另一实施例中,参照图6,该处理模块502包括反转子模块5021和第一确定子模块5022。
反转子模块5021,用于对应用包名中包括的多个子包名的排列顺序进行反转,多个子包名被应用包名中的分隔符所分隔;
第一确定子模块5022,用于基于反转后的应用包名,确定目标查询词。
在本公开的另一实施例中,参照图7,处理模块502还包括第二确定子模块5023和反转子模块5021。
第二确定子模块5023,用于确定应用包名的结构顺序;
反转子模块5021,用于当应用包名的结构顺序与域名结构顺序相反时,执行对应用包名中包括的多个子包名的排列顺序进行反转的步骤。
在本公开的另一实施例中,参照图8,处理模块502还包括第三确定子模块5024。
第三确定子模块5024,用于当应用包名的结构顺序与域名结构顺序相同时,基于应用包名,确定目标查询词。
在本公开的另一实施例中,第一确定子模块5022用于:
将反转后的应用包名确定为目标查询词;或者,
确定应用包名对应的应用类型常量,将应用类型常量以指定规则添加到反转后的应用包名的末尾,得到目标查询词。
在本公开的另一实施例中,参照图9,该验证模块504包括判断子模块5041,第四确定子模块5042和第五确定子模块5043。
判断子模块5041,用于判断目标数据库中是否已存储目标查询词;
第四确定子模块5042,用于当目标数据库中已存储目标查询词时,确定应用包名验证失败;
第五确定子模块5043,用于当目标数据库中未存储目标查询词时,确定应用包名验证通过。
在本公开的另一实施例中,该判断子模块5041用于:
从目标查询词中获取N个子查询词,N为目标查询词的域名级别且N为大于或等于1的正整数;
按照N个子查询词的域名级别由高到低的顺序,判断目标数据库中是否已存储i级子查询词,i级子查询词为N个子查询词中域名级别为i的子查询词,i大于或等于1且小于或等于N;
当目标数据库中未存储i级子查询词时,确定目标数据库中未存储目标查询词;
当目标数据库中已存储N个子查询词时,确定目标数据库中已存储目标查询词。
在本公开的另一实施例中,参照图10,该验证模块504还包括存储子模块5044。
存储子模块5044,用于将目标查询词存储到目标数据库中。
在本公开的另一实施例中,参照图11,该装置还包括第二接收模块505,处理模块502和删除模块506。
第二接收模块505,用于接收应用删除请求,应用删除请求中携带应用包名;
处理模块502,用于基于域名结构顺序,对应用包名进行处理,得到目标查询词;
删除模块506,用于对存储的目标查询词进行删除。
在本公开实施例中,应用发布平台接收包名验证请求,该包名验证请求中携带待注册的应用包名,基于域名结构顺序,对该应用包名进行处理,得到目标查询词,并基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,之后,基于目标查询词和存储的目标数据库,对该应用包名进行验证。由于目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,应用发布平台只需在目标数据库中对目标查询词进行查找,而无需在应用发布平台中的所有数据库中对目标查询词进行查找,从而提高了目标查询词的查找效率,且此时应用发布平台仅基于目标数据库就可以实现对该应用包名的验证,从而提高了该应用包名的验证效率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图12是根据一示例性实施例示出的一种用于应用包名验证的装置1200的框图。例如,装置1200可以被提供为一服务器。参照图12,装置1200包括处理组件1222,其进一步包括一个或N个处理器,以及由存储器1232所代表的存储器资源,用于存储可由处理组件1222的执行的指令,例如应用程序。存储器1232中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。
装置1200还可以包括一个电源组件1226被配置为执行装置1200的电源管理,一个有线或无线网络接口1250被配置为将装置1200连接到网络,和一个输入输出(I/O)接口1258。装置1200可以操作基于存储在存储器1232的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
此外,处理组件1222被配置为执行指令,以执行一种应用包名验证方法,该方法包括:
接收包名验证请求,包名验证请求中携带待注册的应用包名;
基于域名结构顺序,对应用包名进行处理,得到目标查询词,目标查询词符合域名结构顺序;
基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词;
基于目标查询词和目标数据库,对应用包名进行验证。
在本公开的另一实施例中,基于域名结构顺序,对应用包名进行处理,得到目标查询词,包括:
对应用包名中包括的多个子包名的排列顺序进行反转,多个子包名被应用包名中的分隔符所分隔;
基于反转后的应用包名,确定目标查询词。
在本公开的另一实施例中,对应用包名中包括的多个子包名的排列顺序进行反转之前,该方法还包括:
确定应用包名的结构顺序;
当应用包名的结构顺序与域名结构顺序相反时,执行对应用包名中包括的多个子包名的排列顺序进行反转的步骤。
在本公开的另一实施例中,确定应用包名的结构顺序之后,该方法还包括:
当应用包名的结构顺序与域名结构顺序相同时,基于应用包名,确定目标查询词。
在本公开的另一实施例中,基于反转后的应用包名,确定目标查询词,包括:
将反转后的应用包名确定为目标查询词;或者,
确定应用包名对应的应用类型常量,将应用类型常量以指定规则添加到反转后的应用包名的末尾,得到目标查询词。
在本公开的另一实施例中,基于目标查询词和目标数据库,对应用包名进行验证,包括:
判断目标数据库中是否已存储目标查询词;
当目标数据库中已存储目标查询词时,确定应用包名验证失败;
当目标数据库中未存储目标查询词时,确定应用包名验证通过。
在本公开的另一实施例中,判断目标数据库中是否已存储目标查询词,包括:
从目标查询词中获取N个子查询词,N为目标查询词的域名级别且N为大于或等于1的正整数;
按照N个子查询词的域名级别由高到低的顺序,判断目标数据库中是否已存储i级子查询词,i级子查询词为N个子查询词中域名级别为i的子查询词,i大于或等于1且小于或等于N;
当目标数据库中未存储i级子查询词时,确定目标数据库中未存储目标查询词;
当目标数据库中已存储N个子查询词时,确定目标数据库中已存储目标查询词。
在本公开的另一实施例中,当目标数据库中未存储目标查询词时,确定应用包名验证通过之后,该方法还包括:
将目标查询词存储到目标数据库中。
在本公开的另一实施例中,将目标查询词存储到目标数据库中之后,该方法还包括:
接收应用删除请求,应用删除请求中携带应用包名;
基于域名结构顺序,对应用包名进行处理,得到目标查询词;
对存储的目标查询词进行删除。
在本公开实施例中,应用发布平台接收包名验证请求,该包名验证请求中携带待注册的应用包名,基于域名结构顺序,对该应用包名进行处理,得到目标查询词,并基于目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,之后,基于目标查询词和目标数据库,对该应用包名进行验证。由于目标数据库中存储有与目标查询词的最后一个分隔符之后的内容相同的查询词,因此,应用发布平台只需在目标数据库中对目标查询词进行查找,而无需在应用发布平台中的所有数据库中对目标查询词进行查找,从而提高了目标查询词的查找效率,且此时应用发布平台仅基于目标数据库就可以实现对该应用包名的验证,从而提高了该应用包名的验证效率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (15)
1.一种应用包名验证方法,其特征在于,应用于应用发布平台中,所述方法包括:
接收包名验证请求,所述包名验证请求中携带待注册的应用包名,所述应用包名用于唯一标识应用,且所述应用包名被分隔符分隔为多个子包名,所述多个子包名分属于不同等级;
基于域名结构顺序,对所述应用包名进行处理,得到目标查询词,所述目标查询词符合所述域名结构顺序;
基于所述目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,所述目标数据库中存储有与所述目标查询词的最后一个分隔符之后的内容相同的查询词;
判断本地缓存中是否已存储所述目标查询词;
当确定所述本地缓存中已存储所述目标查询词时,确定所述应用包名验证失败;
当确定所述本地缓存中未存储所述目标查询词时,从所述目标查询词中获取N个子查询词,所述N为所述目标查询词的域名级别且所述N为大于或等于1的正整数;
按照所述N个子查询词的域名级别由高到低的顺序,判断所述目标数据库中是否已存储i级子查询词,所述i级子查询词为所述N个子查询词中域名级别为i的子查询词,所述i大于或等于1且小于或等于N;
当所述目标数据库中未存储所述i级子查询词时,确定所述目标数据库中未存储所述目标查询词,并确定所述应用包名验证通过;
当所述目标数据库中已存储所述N个子查询词时,确定所述目标数据库中已存储所述目标查询词,并确定所述应用包名验证失败。
2.如权利要求1所述的方法,其特征在于,所述基于域名结构顺序,对所述应用包名进行处理,得到目标查询词,包括:
对所述应用包名中包括的多个子包名的排列顺序进行反转,所述多个子包名被所述应用包名中的分隔符所分隔;
基于反转后的应用包名,确定所述目标查询词。
3.如权利要求2所述的方法,其特征在于,所述对所述应用包名中包括的多个子包名的排列顺序进行反转之前,所述方法还包括:
确定所述应用包名的结构顺序;
当所述应用包名的结构顺序与所述域名结构顺序相反时,执行对所述应用包名中包括的多个子包名的排列顺序进行反转的步骤。
4.如权利要求3所述的方法,其特征在于,所述确定所述应用包名的结构顺序之后,所述方法还包括:
当所述应用包名的结构顺序与所述域名结构顺序相同时,基于所述应用包名,确定所述目标查询词。
5.如权利要求2或3所述的方法,其特征在于,所述基于反转后的应用包名,确定所述目标查询词,包括:
将反转后的应用包名确定为所述目标查询词;或者,
确定所述应用包名对应的应用类型常量,将所述应用类型常量以指定规则添加到反转后的应用包名的末尾,得到所述目标查询词。
6.如权利要求1所述的方法,其特征在于,所述当所述目标数据库中未存储所述目标查询词时,确定所述应用包名验证通过之后,所述方法还包括:
将所述目标查询词存储到所述目标数据库中。
7.如权利要求6所述的方法,其特征在于,所述将所述目标查询词存储到所述目标数据库中之后,所述方法还包括:
接收应用删除请求,所述应用删除请求中携带所述应用包名;
基于所述域名结构顺序,对所述应用包名进行处理,得到所述目标查询词;
对存储的所述目标查询词进行删除。
8.一种应用包名验证装置,其特征在于,应用于应用发布平台中,所述装置包括:
第一接收模块,用于接收包名验证请求,所述包名验证请求中携带待注册的应用包名,所述应用包名用于唯一标识应用,所述应用包名被分隔符分隔为多个子包名,所述多个子包名分属于不同等级;
处理模块,用于基于域名结构顺序,对所述应用包名进行处理,得到目标查询词,所述目标查询词符合所述域名结构顺序;
确定模块,用于基于所述目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,所述目标数据库中存储有与所述目标查询词的最后一个分隔符之后的内容相同的查询词;
用于判断本地缓存中是否已存储所述目标查询词,当确定所述本地缓存中已存储所述目标查询词时,确定所述应用包名验证失败的模块;
验证模块,用于当确定所述本地缓存中未存储所述目标查询词时,从所述目标查询词中获取N个子查询词,所述N为所述目标查询词的域名级别且所述N为大于或等于1的正整数;按照所述N个子查询词的域名级别由高到低的顺序,判断所述目标数据库中是否已存储i级子查询词,所述i级子查询词为所述N个子查询词中域名级别为i的子查询词,所述i大于或等于1且小于或等于N;当所述目标数据库中未存储所述i级子查询词时,确定所述目标数据库中未存储所述目标查询词,并确定所述应用包名验证通过;当所述目标数据库中已存储所述N个子查询词时,确定所述目标数据库中已存储所述目标查询词,并确定所述应用包名验证失败。
9.如权利要求8所述的装置,其特征在于,所述处理模块包括:
反转子模块,用于对所述应用包名中包括的多个子包名的排列顺序进行反转,所述多个子包名被所述应用包名中的分隔符所分隔;
第一确定子模块,用于基于反转后的应用包名,确定所述目标查询词。
10.如权利要求9所述的装置,其特征在于,所述处理模块还包括:
第二确定子模块,用于确定所述应用包名的结构顺序;
所述反转子模块,用于当所述应用包名的结构顺序与所述域名结构顺序相反时,执行对所述应用包名中包括的多个子包名的排列顺序进行反转的步骤。
11.如权利要求10所述的装置,其特征在于,所述处理模块还包括:
第三确定子模块,用于当所述应用包名的结构顺序与所述域名结构顺序相同时,基于所述应用包名,确定所述目标查询词。
12.如权利要求10或11所述的装置,其特征在于,所述第一确定子模块用于:
将反转后的应用包名确定为所述目标查询词;或者,
确定所述应用包名对应的应用类型常量,将所述应用类型常量以指定规则添加到反转后的应用包名的末尾,得到所述目标查询词。
13.如权利要求8所述的装置,其特征在于,所述验证模块还包括:
存储子模块,用于将所述目标查询词存储到所述目标数据库中。
14.如权利要求13所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收应用删除请求,所述应用删除请求中携带所述应用包名;
所述处理模块,用于基于所述域名结构顺序,对所述应用包名进行处理,得到所述目标查询词;
删除模块,用于对存储的所述目标查询词进行删除。
15.一种应用包名验证装置,其特征在于,应用于应用发布平台中,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收包名验证请求,所述包名验证请求中携带待注册的应用包名,所述应用包名用于唯一标识应用,所述应用包名被分隔符分隔为多个子包名,所述多个子包名分属于不同等级;
基于域名结构顺序,对所述应用包名进行处理,得到目标查询词,所述目标查询词符合所述域名结构顺序;
基于所述目标查询词的最后一个分隔符之后的内容,从存储的多个数据库中,确定目标数据库,所述目标数据库中存储有与所述目标查询词的最后一个分隔符之后的内容相同的查询词;
判断本地缓存中是否已存储所述目标查询词;
当确定所述本地缓存中已存储所述目标查询词时,确定所述应用包名验证失败;
当确定所述本地缓存中未存储所述目标查询词时,从所述目标查询词中获取N个子查询词,所述N为所述目标查询词的域名级别且所述N为大于或等于1的正整数;
按照所述N个子查询词的域名级别由高到低的顺序,判断所述目标数据库中是否已存储i级子查询词,所述i级子查询词为所述N个子查询词中域名级别为i的子查询词,所述i大于或等于1且小于或等于N;
当所述目标数据库中未存储所述i级子查询词时,确定所述目标数据库中未存储所述目标查询词,并确定所述应用包名验证通过;
当所述目标数据库中已存储所述N个子查询词时,确定所述目标数据库中已存储所述目标查询词,并确定所述应用包名验证失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610280906.2A CN105978865B (zh) | 2016-04-29 | 2016-04-29 | 应用包名验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610280906.2A CN105978865B (zh) | 2016-04-29 | 2016-04-29 | 应用包名验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105978865A CN105978865A (zh) | 2016-09-28 |
CN105978865B true CN105978865B (zh) | 2019-12-13 |
Family
ID=56994895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610280906.2A Active CN105978865B (zh) | 2016-04-29 | 2016-04-29 | 应用包名验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105978865B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153830B (zh) * | 2021-12-01 | 2023-03-28 | 北京金堤科技有限公司 | 数据验证方法及其装置、计算机存储介质、电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170566A (zh) * | 2007-11-20 | 2008-04-30 | 中兴通讯股份有限公司 | 一种多域认证方法及系统 |
CN101404053A (zh) * | 2008-05-04 | 2009-04-08 | 北京深思洛克软件技术股份有限公司 | 一种防止重复发放软件许可的方法 |
CN103222252A (zh) * | 2010-12-02 | 2013-07-24 | 瑞典爱立信有限公司 | 用于选择性启动通信的服务访问设备、方法、计算机程序及计算机程序产品 |
CN104199704A (zh) * | 2014-09-10 | 2014-12-10 | 北京金山安全软件有限公司 | 一种应用程序安装包清除方法及装置 |
CN104537107A (zh) * | 2015-01-15 | 2015-04-22 | 中国联合网络通信集团有限公司 | 一种网址存储匹配方法及装置 |
US9203623B1 (en) * | 2009-12-18 | 2015-12-01 | Trend Micro Incorporated | Apparatus and methods for keyword proximity matching |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077208B (zh) * | 2012-12-28 | 2016-01-27 | 华为技术有限公司 | 统一资源定位符匹配处理方法及装置 |
-
2016
- 2016-04-29 CN CN201610280906.2A patent/CN105978865B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170566A (zh) * | 2007-11-20 | 2008-04-30 | 中兴通讯股份有限公司 | 一种多域认证方法及系统 |
CN101404053A (zh) * | 2008-05-04 | 2009-04-08 | 北京深思洛克软件技术股份有限公司 | 一种防止重复发放软件许可的方法 |
US9203623B1 (en) * | 2009-12-18 | 2015-12-01 | Trend Micro Incorporated | Apparatus and methods for keyword proximity matching |
CN103222252A (zh) * | 2010-12-02 | 2013-07-24 | 瑞典爱立信有限公司 | 用于选择性启动通信的服务访问设备、方法、计算机程序及计算机程序产品 |
CN104199704A (zh) * | 2014-09-10 | 2014-12-10 | 北京金山安全软件有限公司 | 一种应用程序安装包清除方法及装置 |
CN104537107A (zh) * | 2015-01-15 | 2015-04-22 | 中国联合网络通信集团有限公司 | 一种网址存储匹配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105978865A (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106878262B (zh) | 报文检测方法及装置、建立本地威胁情报库的方法及装置 | |
US10250526B2 (en) | Method and apparatus for increasing subresource loading speed | |
WO2019165665A1 (zh) | 一种域名解析方法、服务器及系统 | |
CN113132443B (zh) | 资源获取方法、装置及cdn网络中的节点设备 | |
US10122722B2 (en) | Resource classification using resource requests | |
CN112153170B (zh) | 访问服务器的方法、装置、设备及存储介质 | |
CN108491715B (zh) | 终端指纹库的生成方法、装置和服务器 | |
CN111428269A (zh) | 数据访问方法、装置和终端设备 | |
CN110855636A (zh) | 一种dns劫持的检测方法和装置 | |
CN108769118B (zh) | 一种分布式系统中主节点的选取方法及装置 | |
CN112351088A (zh) | 一种cdn缓存方法、装置、计算机设备及存储介质 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN110659019A (zh) | 参数校验方法、装置和服务器 | |
CN105978865B (zh) | 应用包名验证方法及装置 | |
CN106992999B (zh) | 一种跨服务器数据通讯处理方法 | |
CN111708763B (zh) | 分片集群的数据迁移方法、装置和分片集群系统 | |
US20150370906A1 (en) | System and method for mapping identifier with locator using bloom filter | |
CN111539206B (zh) | 一种确定敏感信息的方法、装置、设备及存储介质 | |
CN106959975B (zh) | 一种转码资源缓存处理方法、装置及设备 | |
CN114124797B (zh) | 一种服务器路由方法、装置、电子设备及存储介质 | |
US8281000B1 (en) | Variable-length nonce generation | |
CN111614750B (zh) | 一种数据更新方法、系统、设备及存储介质 | |
CN115065735A (zh) | 报文处理方法及电子设备 | |
CN114466004A (zh) | 一种文件传输方法、系统、电子设备及存储介质 | |
CN108228834B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |