本申请涉及通讯技术领域,具体涉及一种数据提交请求的处理方法、装置和计算机设备。
背景技术:
在现有的互联网应用中,用户通常是通过客户端调用服务器提供的接口来与服务器进行数据交互。当用户通过客户端向服务器发送数据提交请求时,通常是通过点击数据提交的按钮来触发客户端上的数据提交操作,但是如果在点按钮的过程中出现了网络出现延迟或故障、客户端出现卡顿等情形,那么用户会无法判断数据提交操作是否成功。此时通常会出现如果数据提交操作成功了,但用户误认为数据没有提交成功而选择通过按钮进行再次提交的情况,当出现这种情况时,由于后续再次提交的数据提交请求的参数数据与之前提交的数据提交请求内的参数数据是相同的,则服务器可以判断出用户后续再次提交的数据是重复提交,并且不会对后续再次提交的数据提交操作进行响应。但如果在用户后续执行对之前的数据的再次提交的过程中,如果出现了不法分子对用户再次提交的数据所对应的参数数据中各参数的顺序进行了篡改,则此时服务器在接收到经过篡改后的数据提交请求后,会无法判断出该篡改后的数据提交请求其实是属于重复的数据提交操作,并会误认为其是一个新的数据提交操作,从而导致了服务器对数据请求的重复处理,从而可能出现服务器多次写入重复的数据的情况,使得服务器的处理速度变慢,进而影响服务器的业务的正常开展,甚至造成服务器的崩溃或瘫痪。
技术实现要素:
本申请的主要目的为提供一种数据提交请求的处理方法、装置和计算机设备,旨在解决现有的客户端向服务器发送数据提交请求的过程中可能会出现重复提交的技术问题。
本申请提出一种数据提交请求的处理方法,所述方法包括步骤:
通过指定接口接收客户端发送的数据提交请求;
获取与所述数据提交请求对应的参数数据;
对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;
对所述组合的参数数据进行签名处理,生成组合签名值;
将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;
根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
可选地,所述通过指定接口接收客户端发送的数据提交请求的步骤之前,包括:
根据开发人员输入的指定接口信息,获取与所述指定接口信息对应的所述指定接口;
接收所述开发人员输入的防重复提交代码;
创建包含所述防重复提交代码的功能模块;
控制所述指定接口调用所述功能模块。
可选地,所述获取与所述数据提交请求对应的参数数据的步骤,包括:
调用预设的拦截器对所述数据提交请求进行拦截;
拦截成功后,根据所述数据提交请求获取所述客户端的地址信息;
根据所述地址信息,从所述客户端获取与所述数据提交请求对应的所述参数数据。
可选地,所述参数数据包括身份标识参数与业务请求参数,所述对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据的步骤,包括:
提取所述身份标识参数的第一参数名称与所述业务请求参数的第二参数名称;
将所述第一参数名称与所述第二参数名称按照首字母的自然顺序进行排序;
根据所述排序对所述身份标识参数与所述业务请求参数进行组合,得到所述组合的参数数据。
可选地,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:
若所述匹配结果为所述组合签名值与所述预存储的签名值不相同,则对所述数据提交请求进行处理得到对应的第一响应结果,并将所述第一响应数据发送至所述客户端;
若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则限制对所述数据提交请求进行响应。
可选地,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:
若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第一失效时间;
若不小于预设的第一失效时间,将所述组合签名值更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第二响应数据;
将所述第二响应数据发送至所述客户端;
若小于预设的第一失效时间,则限制对所述数据提交请求进行响应。
可选地,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:
若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第二失效时间;
若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的提交次数是否小于预设的重复提交次数;
若小于预设的重复提交次数,将所述预存储的提交次数的数值替换为所述预存储的提交次数的值+1并更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第三响应数据;
将所述第三响应数据发送至所述客户端;
若不小于预设的重复提交次数,则限制对所述数据提交请求进行响应。
本申请还提供一种数据提交请求的处理装置,包括:
第一接收模块,用于通过指定接口接收客户端发送的数据提交请求;
第一获取模块,用于获取与所述数据提交请求对应的参数数据;
排序模块,用于对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;
签名模块,用于对所述组合的参数数据进行签名处理,生成组合签名值;
匹配模块,用于将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;
处理模块,用于根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请中提供的数据提交请求的处理方法、装置和计算机设备,具有以下有益效果:
本申请中提供的数据提交请求的处理方法、装置和计算机设备,通过指定接口接收客户端发送的数据提交请求;获取与所述数据提交请求对应的参数数据;对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;对所述组合的参数数据进行签名处理,生成组合签名值;将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果,其中,所述匹配结果包括所述组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。通过本申请能有效地防止了数据出现重复提交的问题,保证了服务器的业务的正常开展,提高了数据提交请求的处理效率,也提高了服务器对数据提交请求处理的准确率。
附图说明
图1是本申请一实施例的数据提交请求的处理方法的流程示意图;
图2是本申请一实施例的数据提交请求的处理装置的结构示意图;
图3是本申请一实施例的计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
参照图1,本申请一实施例的数据提交请求的处理方法,包括:
s1:通过指定接口接收客户端发送的数据提交请求;
s2:获取与所述数据提交请求对应的参数数据;
s3:对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;
s4:对所述组合的参数数据进行签名处理,生成组合签名值;
s5:将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;
s6:根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
如上述步骤s1至s3所述,本实施例的方法对应的执行主体为数据提交请求的处理装置,具体可为服务器。上述指定接口是具有防重复提交功能的接口,即配置有防重复代码的接口,例如该指定接口可不包括查询接口或页面接口,上述指定接口可根据开发人员输入的接口信息进行确定。服务器在通过上述指定接口接收到客户端发送过来的数据提交请求后,可从该数据请求中获取客户端的地址信息,从而根据该地址信息定位到对应的该客户端,然后从该客户端中下载得到与该数据提交请求对应的参数数据,其中该参数数据包括身份标识参数与业务请求参数,该参数数据可为一串字符串的形式,举例地,具体的字符串的形式可为“第一参数名称+第一参数数值/第二参数名称+第二参数数值/……”。在获得了上述参数数据后,可通过将该参数数据中的身份标识参数与业务请求参数按照首字母的自然顺序进行排序,并依照该排序的顺序进行组合得到上述组合的参数数据,其中上述首字母的自然顺序是指英文字母自然的排列顺序,即abcd…mnop…wxyz。
如上述步骤s4至s6所述,在得到上述组合的参数数据后,通过对该组合的参数数据进行签名处理,可得到对应的组合签名值,其中上述组合签名值可为数字、字符串或者数字与字符串的结合。另外,可采用签名运算算法对该组合的指定参数数据进行签名处理,对该签名运算算法不作限定,只需要通过该签名运算算法使得计算得到的组合签名值是唯一的且不可逆的即可。具体地,上述签名运算算法可采用哈希运算算法,根据哈希运算算法对上述组合的参数数据进行哈希运算,便可得到对应的组合哈希值,即上述的组合签名值。然后将组合签名值与数据缓存列表内预存储的签名值进行匹配,得到匹配结果。之后根据上述匹配结果,可按照预设规则对该数据提交请求进行对应的处理。其中,上述数据缓存列表内包含有预存储的签名值,且上述预存储的签名值为数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,该预存储的签名值为由对应的历史数据提交请求对应的历史参数数据经过首字母的自然顺序排序的处理后再进行签名处理后得到的。上述对该数据提交请求进行对应的处理的具体内容包括对该数据提交请求进行处理得到对应的处理结果或者限制对该数据提交请求进行响应。在本实施例,当通过指定接口接收到客户端发送的数据提交请求时,首先对与该数据提交请求对应的参数数据按照首字母的自然顺序进行排序并依照该排序的顺序进行组合得到组合的参数数据,然后对该组合的参数数据进行签名得到组合签名值,之后将该组合签名值与数据缓存列表内预存储的签名值进行匹配来得到匹配结果,并根据该匹配结果来对数据提交请求进行对应的处理,若该数据提交请求为重复提交的请求,则会限制对该数据提交请求进行响应,从而有利于避免出现重复提交的数据提交请求由于参数数据中各参数的顺序被篡改后却被服务器误认为是新的数据提交请求的情况,有效地防止了数据出现重复提交的问题,保证了服务器的业务的正常开展,提高了数据提交请求的处理效率,也提高了服务器对数据提交请求处理的准确率。
进一步地,本申请一实施例中,上述步骤s1之前,包括:
s100:根据开发人员输入的指定接口信息,获取与所述指定接口信息对应的所述指定接口;
s101:接收所述开发人员输入的防重复提交代码;
s102:创建包含所述防重复提交代码的功能模块;
s103:控制所述指定接口调用所述功能模块。
如上述步骤s100至s103所述,服务器会根据开发人员输入的指定接口信息,来获取得到与上述指定接口信息对应的上述指定接口,并进一步来为与该指定接口信息相对应的指定接口设置防重复提交功能,以实现自定义配置需要防重复提交的指定接口。具体地,在接收到开发人员输入的防重复提交代码后,可创建出包含该防重复提交代码的功能模块,然后从内部查找出与上述开发人员输入的指定接口信息对应的指定接口url(uniformresourcelocator,统一资源定位符),最后控制该指定接口url实现对上述功能模块的调用,从而实现根据开发人员的使用意图来配置需要防重复提交的指定接口,而对一些客户不经常使用的查询接口或页面接口不设置防重复提交功能,能有效地降低服务器系统的资源消耗,也能有效地提高客户的使用体验。进一步地,在实际应用上,还可以将上述包含防重复提交代码的功能模块外挂到其它的使用场景,例如负载均衡器或者流量控制分发器,等等,以实现该功能模块的防重复提交在多种使用场景的广泛应用。
进一步地,本申请一实施例中,上述步骤s2,包括:
s200:调用预设的拦截器对所述数据提交请求进行拦截;
s201:拦截成功后,根据所述数据提交请求获取所述客户端的地址信息;
s202:根据所述地址信息,从所述客户端获取与所述数据提交请求对应的所述参数数据。
如上述步骤s200所述,预先创建一个具有拦截请求功能的过滤器,当接收到客户端发出的数据提交请求后,为了避免出现请求重复提交导致重复的数据提交请求触发了多个相同的业务处理逻辑的情况,即服务器对多个相同的数据提交请求执行了对应的多个业务逻辑处理的情况,本实施例的服务器不会立即对上述数据提交请求进行响应来得到对应的响应结果,并向客户端返回该响应结果,而服务器首先会调用预先创建的上述拦截器来对该数据提交请求进行拦截,并在拦截成功后从该数据提交请求提取出客户端的地址信息,之后再根据客户端的地址信息从客户端内下载与该数据提交请求对应的上述参数数据,以便在确定该数据提交请求是否满足重复提交的条件之后,进一步对该参数数据进行后续的相应处理。通过对接收到的数据请求进行拦截并判断该数据提交请求是否属于数据请求的重复提交,有利于避免重复的数据请求触发多次相同的业务处理逻辑,有效地保证了服务器业务处理的严密性以及服务器的安全可靠性。
参照图2,进一步地,本申请一实施例中,上述步骤s3,包括:
s300:提取所述身份标识参数的第一参数名称与所述业务请求参数的第二参数名称;
s301:将所述第一参数名称与所述第二参数名称按照首字母的自然顺序进行排序;
s302:根据所述排序对所述身份标识参数与所述业务请求参数进行组合,得到所述组合的参数数据。
如上述步骤s300至s302所述,上述的参数数据包括身份标识参数与业务请求参数,上述身份标识参数包括身份标识参数名称sessionid,ip以及对应的身份标识参数数值,该身份标识参数能够指代发起该数据请求的客户端的地址与身份,例如上述身份标识参数包括“sessionid=95d5d86f-bafa-474a-b457-b60a5f661def”以及“ip=183.14.135.240”。上述业务请求参数对应用户需要办理的业务,包含用户需要办理的业务情况,假如用户需要为张三充值10元的业务请求可表示为:“name=zhangsan/charge=10”。上述对参数数据按照首字母的自然顺序进行排序,得到组合的参数数据的过程具体为:提取出上述身份标识参数的第一参数名称与业务请求参数的第二参数名称,然后将上述第一参数名称与第二参数名称按照首字母的自然顺序进行排序,再根据上述排序对身份标识参数与所述业务请求参数进行组合来得到所述组合后的上述指定参数数据。举例地,结合上述的例子,按照对用户输入的数据提交请求对应的参数数据进行按照首字母的自然顺序排序的处理后,得到的组合的参数数据为:“charge=10/ip=183.14.135.240/name=zhangsan/sessionid=95d5d86f-bafa-474a-b457-b60a5f661def”。在数据重复提交的场景里,当用户通过客户端向服务器发出了一个特定数据提交请求后,可能会出现该特定数据提交请求被一些非法分子拦截并将与特定数据提交请求对应的特定参数数据中每一个特定参数的顺序进行恶意更改的情形,而如果服务器之前已经处理过该特定数据提交请求,但如果该特定参数数据中各特定参数的顺序发生了改变,导致特定参数数据的特定签名值也发生了改变,那么数据缓存列表中便不会存在与该特定签名值相同的签名值,故服务器会认为这是用户发出的新的数据提交请求并会对上述特定数据提交请求执行对应的响应,从而导致了该特定数据提交请求的重复提交。在本实施例,在获取了与数据提交请求对应的参数数据后,首先会对参数数据中的身份标识参数的第一参数名称与所述业务请求参数的第二参数名称按首字母的自然顺序进行排序,并根据该排序来对身份标识参数与业务请求参数进行组合得到组合的参数数据,之后再计算该组合的指定参数数据的组合签名值,最后判断数据缓存列表内是否存在与该组合签名值相同的签名值来判断该指定数据提交请求是否为重复提交,从而有利于避免出现重复提交的数据提交请求由于参数数据中各参数的顺序被篡改后被服务器误认为是新的数据提交请求的情况,提高了服务器对重复的数据提交请求进行处理的智能性和准确性。
进一步地,本申请一实施例中,上述步骤s6,包括:
s600:若所述匹配结果为所述组合签名值与所述预存储的签名值不相同,则对所述数据提交请求进行处理得到对应的第一响应结果;
s601:将所述第一响应数据发送至所述客户端;
s602:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则限制对所述数据提交请求进行响应。
如上述步骤s600至s602所述,上述匹配结果包括上述组合签名值与数据缓存列表内的预存储的签名值相同或所述组合签名值与数据缓存列表内的预存储的签名值不相同。在对上述参数数据进行签名处理并生成对应的组合签名值后,通过将该组合签名值与数据缓存列表内预存储的签名值进行匹配,即判断数据缓存列表内预存储的签名值是否与上述组合签名值相同,如果上述组合签名值与预存储的签名值不相同,则表明该数据提交请求为一个新的数据提交请求,之后服务器对该数据提交请求进行处理,即执行提交上述参数数据的提交动作并得到对应的响应数据,再将该响应数据返回给客户端。但如果上述组合签名值与预存储的签名值相同,则说明由客户端发出的上述数据提交请求在之前已经有提交的记录,即上述数据提交请求属于一个重复提交的请求,则服务器会限制对该数据提交请求进行响应。在本实施例,在接收到用户通过客户端发送的数据提交请求时,首先对与该数据提交请求对应的参数数据按照首字母的自然顺序进行排序得到组合的参数数据,然后对该组合的参数数据进行签名得到组合签名值,并通过将该组合签名值与数据缓存列表内的预存储的签名值进行匹配来判断该数据提交请求是否已经被提交,若已提交,即组合签名值与预存储的签名值相同,则会拒绝对该数据提交请求进行响应,从而有利于避免出现重复提交的数据提交请求由于参数数据中各参数的顺序被篡改后被服务器误认为是新的数据提交请求的情况,有效地防止了数据请求出现重复提交的问题,提高了数据提交的效率,也提高了服务器对数据提交请求处理的准确率。
进一步地,本申请一实施例中,上述步骤s6,包括:
s610:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第一失效时间;
s611:若不小于预设的第一失效时间,将所述组合签名值更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第二响应数据,并将所述第二响应数据发送至所述客户端;
s612:若小于预设的第一失效时间,则限制对所述数据提交请求进行响应。
如上述步骤s610至s612所述,上述数据提交请求的处理方法除了要对数据缓存列表中是否存在与上述组合签名值相同的签名值进行判断之外,还需要进一步判断上述预存储的签名值的存在时间是否大于预设的第一失效时间,如果数据缓存列表中的预存储的签名值与上述组合签名值相同,且该预存储的签名值的存在时间小于预设的第一失效时间,则判定该客户端提交的数据提交请求在之前已提交过了,之后服务器会限制对数据提交请求进行响应。而如果数据缓存列表中的预存储的签名值与上述组合签名值相同,但该预存储的签名值的存在时间大于预设的第一失效时间,则判定该数据提交请求对应的参数数据不是重复的数据,即该数据提交请求不是重复提交的请求,因此服务器会将该组合签名值更新进上述数据缓存列表中,并会对该数据提交请求进行处理,即执行提交参数数据的提交动作并得到对应的第二响应数据,再将该第二响应数据返回给客户端。其中,上述第一失效时间可根据用户输入的重复提交时间进行设定,上述重复提交时间与上述第一失效时间等同。另外,通过对数据缓存列表内的预存储的签名值设置一个第一失效时间来表示数据缓存列表内的预存储的签名值在该第一失效时间内是有效的,例如第一失效时间可设为2s,则预存储的签名值的存在时间在2s之内是有效的,而如果预存储的签名值的存在时间已经超过2s,例如存在时间为5s,则判定该预存储的签名值是无效的,因此可将当前的数据提交请求对应的参数数据判定为不是重复的数据,即可将当前的数据提交请求视为新的数据提交请求,并将上述组合签名值更新进数据缓存列表,以完成对已失效的预存储的签名值的替换,以及对该数据提交请求进行处理得到第二响应数据,并向用户返回该第二响应数据。而如果存在时间为1s,则定该预存储的签名值是有效的,则会判定该客户端提交的数据提交请求在此之前已提交过了,即当前的数据提交请求满足重复提交的条件,且该数据提交请求对应的参数数据是重复的数据,则服务器会限制对所述数据提交请求进行响应。本实施例通过对数据缓存列表中的预存储的签名值设定失效时间,只有在该失效时间之内查询到的预存储的签名值才能作为重复提交的判断依据,不仅有效地防止了数据出现重复提交,还解决了防止服务器的拓展性差的问题,有效地提高了对数据的处理效率。
进一步地,本申请一实施例中,上述步骤s6,包括:
s620:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第二失效时间;
s621:若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的提交次数是否小于预设的重复提交次数;
s622:若小于预设的重复提交次数,将所述预存储的提交次数的数值替换为所述预存储的提交次数的值+1并更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第三响应数据;
s623:将所述第三响应数据发送至所述客户端;
s624:若不小于预设的重复提交次数,则限制对所述数据提交请求进行响应。
如上述步骤s620至s624所述,上述预设的重复提交次数为在上述失效时间内允许相同的数据提交请求出现的次数,举例地,上述重复提交次数可设为2次,上述第二失效时间设为5s,则相同的数据提交请求在预存储签名值有效的5s时间内允许出现2次,即如果在预存储签名值有效的5s时间内如果出现了两次相同的数据提交请求,则服务器会执行与该两次相同的数据提交请求对应的两次数据响应处理,但如果在预存储签名值有效的5s时间内如果出现了四次相同的数据提交请求,服务器也只会执行前两次接收到的指定数据请求对应的两次数据响应处理,而将后两次接收到指定数据请求视作重复的数据提交请求,并且不会作出响应。在本实施例,上述防重复提交方法除了要对上述预存储的签名值的存在时间是否小于预设的第二失效时间进行判断之外,还要进一步判断数据缓存列表内预存储的提交次数是否小于预设的重复提交次数,如果上述预存储签名值的存在时间小于预设的失效时间,但数据缓存列表内的预存储的提交次数小于预设的重复提交次数,则判定该数据提交请求对应的参数数据不是重复的数据,因此服务器会对该数据提交请求进行处理,即执行提交参数数据的提交动作并得到对应的第三响应数据,再将该第三响应数据返回给客户端,并且将上述预存储的提交次数的数值替换为该预存储的提交次数加1并更新进数据缓存列表中。而如果数据缓存列表内的预存储的提交次数不小于预设的重复提交次数,则判定该客户端提交的数据提交请求在此之前已提交过了,即当前的数据提交请求满足重复提交的条件,且该数据提交请求对应的参数数据是重复的数据,则服务器会限制对所述数据提交请求进行响应。本实施例在对数据缓存列表中的预存储的签名值设定失效时间的基础上,进一步对数据缓存列表中的预存储的提交次数设置重复提交次数,当在该失效时间之内查询到的预存储的签名值后,需要进一步来确定据缓存列表中的预存储的提交次数与预设的重复提交次数的关系来作为重复提交的判断依据,不仅有效地防止了数据出现重复提交,并且有效的解决了服务器的拓展性差的问题,提高了服务器的拓展性已经服务器对数据的处理效率。
进一步地,上述步骤s620之前,包括:
s6200:创建动态修改所述第二失效时间的第一修改接口;
s6201:创建动态修改所述重复提交次数的第二修改接口。
本实施例中,上述第二失效时间以及上述重复提交次数可根据实际情况进行调整,可创建一个动态修改所述第二失效时间的第一修改接口,以便通过该第一修改接口对该第二失效时间对应的数据进行随意调整,以满足业务多变的需求,另外,可创建一个动态修改所述重复提交次数的第二修改接口,以便通过该第一修改接口对该重复提交次数对应的数据进行随意调整,进一步满足业务多变的需求。在本实施例,通过创建可对第二失效时间以及重复提交时间进行数据修改的两个接口,有利于实现自定义配置第二失效时间以及重复提交时间的具体数值,并且能满足业务多多样化的需求,提高用户的使用体验。
参照图2,本申请一实施例中还提供了一种数据提交请求的处理装置,包括:
第一接收模块,用于通过指定接口接收客户端发送的数据提交请求;
第一获取模块,用于获取与所述数据提交请求对应的参数数据;
排序模块,用于对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;
签名模块,用于对所述组合的参数数据进行签名处理,生成组合签名值;
匹配模块,用于将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;
处理模块,用于根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
在上述第一接收模块、第一获取模块以及排序模块中,本实施例的执行主体为数据提交请求的处理装置,具体可为服务器。上述指定接口是具有防重复提交功能的接口,即配置有防重复代码的接口,例如该指定接口可不包括查询接口或页面接口,上述指定接口可根据开发人员输入的接口信息进行确定。服务器在通过上述指定接口接收到客户端发送过来的数据提交请求后,可从该数据请求中获取客户端的地址信息,从而根据该地址信息定位到对应的该客户端,然后从该客户端中下载得到与该数据提交请求对应的参数数据,其中该参数数据包括身份标识参数与业务请求参数,该参数数据可为一串字符串的形式,举例地,具体的字符串的形式可为“第一参数名称+第一参数数值/第二参数名称+第二参数数值/……”。在获得了上述参数数据后,可通过将该参数数据中的身份标识参数与业务请求参数按照首字母的自然顺序进行排序,并依照该排序的顺序进行组合得到上述组合的参数数据,其中上述首字母的自然顺序是指英文字母自然的排列顺序,即abcd…mnop…wxyz。
在上述签名模块、匹配模块以及处理模块中,在得到上述组合的参数数据后,通过对该组合的参数数据进行签名处理,可得到对应的组合签名值,其中上述组合签名值可为数字、字符串或者数字与字符串的结合。另外,可采用签名运算算法对该组合的指定参数数据进行签名处理,对该签名运算算法不作限定,只需要通过该签名运算算法使得计算得到的组合签名值是唯一的且不可逆的即可。具体地,上述签名运算算法可采用哈希运算算法,根据哈希运算算法对上述组合的参数数据进行哈希运算,便可得到对应的组合哈希值,即上述的组合签名值。然后将组合签名值与数据缓存列表内预存储的签名值进行匹配,得到匹配结果。之后根据上述匹配结果,可按照预设规则对该数据提交请求进行对应的处理。其中,上述数据缓存列表内包含有预存储的签名值,且上述预存储的签名值为数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,该预存储的签名值为由对应的历史数据提交请求对应的历史参数数据经过首字母的自然顺序排序的处理后再进行签名处理后得到的。上述对该数据提交请求进行对应的处理的具体内容包括对该数据提交请求进行处理得到对应的处理结果或者限制对该数据提交请求进行响应。在本实施例,当通过指定接口接收到客户端发送的数据提交请求时,首先对与该数据提交请求对应的参数数据按照首字母的自然顺序进行排序并依照该排序的顺序进行组合得到组合的参数数据,然后对该组合的参数数据进行签名得到组合签名值,之后将该组合签名值与数据缓存列表内预存储的签名值进行匹配来得到匹配结果,并根据该匹配结果来对数据提交请求进行对应的处理,若该数据提交请求为重复提交的请求,则会限制对该数据提交请求进行响应,从而有利于避免出现重复提交的数据提交请求由于参数数据中各参数的顺序被篡改后却被服务器误认为是新的数据提交请求的情况,有效地防止了数据出现重复提交的问题,保证了服务器的业务的正常开展,提高了数据提交请求的处理效率,也提高了服务器对数据提交请求处理的准确率。
进一步地,本申请一实施例中,上述数据提交请求的处理装置,包括:
第二获取模块,用于根据开发人员输入的指定接口信息,获取与所述指定接口信息对应的所述指定接口;
第二接收模块,用于接收所述开发人员输入的防重复提交代码;
第一创建模块,用于创建包含所述防重复提交代码的功能模块;
控制模块,用于控制所述指定接口调用所述功能模块。
本实施例中,服务器会根据开发人员输入的指定接口信息,来获取得到与上述指定接口信息对应的上述指定接口,并进一步来为与该指定接口信息相对应的指定接口设置防重复提交功能,以实现自定义配置需要防重复提交的指定接口。具体地,在接收到开发人员输入的防重复提交代码后,可创建出包含该防重复提交代码的功能模块,然后从内部查找出与上述开发人员输入的指定接口信息对应的指定接口url(uniformresourcelocator,统一资源定位符),最后控制该指定接口url实现对上述功能模块的调用,从而实现根据开发人员的使用意图来配置需要防重复提交的指定接口,而对一些客户不经常使用的查询接口或页面接口不设置防重复提交功能,能有效地降低服务器系统的资源消耗,也能有效地提高客户的使用体验。进一步地,在实际应用上,还可以将上述包含防重复提交代码的功能模块外挂到其它的使用场景,例如负载均衡器或者流量控制分发器,等等,以实现该功能模块的防重复提交在多种使用场景的广泛应用。
进一步地,本申请一实施例中,上述第一获取模块,包括:
调用单元,用于调用预设的拦截器对所述数据提交请求进行拦截;
第一获取单元,用于拦截成功后,根据所述数据提交请求获取所述客户端的地址信息;
第二获取单元,用于根据所述地址信息,从所述客户端获取与所述数据提交请求对应的所述参数数据。
本实施例中,预先创建一个具有拦截请求功能的过滤器,当接收到客户端发出的数据提交请求后,为了避免出现请求重复提交导致重复的数据提交请求触发了多个相同的业务处理逻辑的情况,即服务器对多个相同的数据提交请求执行了对应的多个业务逻辑处理的情况,本实施例的服务器不会立即对上述数据提交请求进行响应来得到对应的响应结果,并向客户端返回该响应结果,而服务器首先会调用预先创建的上述拦截器来对该数据提交请求进行拦截,并在拦截成功后从该数据提交请求提取出客户端的地址信息,之后再根据客户端的地址信息从客户端内下载与该数据提交请求对应的上述参数数据,以便在确定该数据提交请求是否满足重复提交的条件之后,进一步对该参数数据进行后续的相应处理。通过对接收到的数据请求进行拦截并判断该数据提交请求是否属于数据请求的重复提交,有利于避免重复的数据请求触发多次相同的业务处理逻辑,有效地保证了服务器业务处理的严密性以及服务器的安全可靠性。
进一步地,本申请一实施例中,上述排序模块,包括:
提取单元,用于提取所述身份标识参数的第一参数名称与所述业务请求参数的第二参数名称;
排序单元,用于将所述第一参数名称与所述第二参数名称按照首字母的自然顺序进行排序;
组合单元,用于根据所述排序对所述身份标识参数与所述业务请求参数进行组合,得到所述组合的参数数据。
本实施例中,上述的参数数据包括身份标识参数与业务请求参数,上述身份标识参数包括身份标识参数名称sessionid,ip以及对应的身份标识参数数值,该身份标识参数能够指代发起该数据请求的客户端的地址与身份,例如上述身份标识参数包括“sessionid=95d5d86f-bafa-474a-b457-b60a5f661def”以及“ip=183.14.135.240”。上述业务请求参数对应用户需要办理的业务,包含用户需要办理的业务情况,假如用户需要为张三充值10元的业务请求可表示为:“name=zhangsan/charge=10”。上述对参数数据按照首字母的自然顺序进行排序,得到组合的参数数据的过程具体为:提取出上述身份标识参数的第一参数名称与业务请求参数的第二参数名称,然后将上述第一参数名称与第二参数名称按照首字母的自然顺序进行排序,再根据上述排序对身份标识参数与所述业务请求参数进行组合来得到所述组合后的上述指定参数数据。举例地,结合上述的例子,按照对用户输入的数据提交请求对应的参数数据进行按照首字母的自然顺序排序的处理后,得到的组合的参数数据为:“charge=10/ip=183.14.135.240/name=zhangsan/sessionid=95d5d86f-bafa-474a-b457-b60a5f661def”。在数据重复提交的场景里,当用户通过客户端向服务器发出了一个特定数据提交请求后,可能会出现该特定数据提交请求被一些非法分子拦截并将与特定数据提交请求对应的特定参数数据中每一个特定参数的顺序进行恶意更改的情形,而如果服务器之前已经处理过该特定数据提交请求,但如果该特定参数数据中各特定参数的顺序发生了改变,导致特定参数数据的特定签名值也发生了改变,那么数据缓存列表中便不会存在与该特定签名值相同的签名值,故服务器会认为这是用户发出的新的数据提交请求并会对上述特定数据提交请求执行对应的响应,从而导致了该特定数据提交请求的重复提交。在本实施例,在获取了与数据提交请求对应的参数数据后,首先会对参数数据中的身份标识参数的第一参数名称与所述业务请求参数的第二参数名称按首字母的自然顺序进行排序,并根据该排序来对身份标识参数与业务请求参数进行组合得到组合的参数数据,之后再计算该组合的指定参数数据的组合签名值,最后判断数据缓存列表内是否存在与该组合签名值相同的签名值来判断该指定数据提交请求是否为重复提交,从而有利于避免出现重复提交的数据提交请求由于参数数据中各参数的顺序被篡改后被服务器误认为是新的数据提交请求的情况,提高了服务器对重复的数据提交请求进行处理的智能性和准确性。
进一步地,本申请一实施例中,上述处理模块,包括:
第一处理单元,用于若所述匹配结果为所述组合签名值与所述预存储的签名值不相同,则对所述数据提交请求进行处理得到对应的第一响应结果,并将所述第一响应数据发送至所述客户端;
第一限制单元,用于若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则限制对所述数据提交请求进行响应。
本实施例中,上述匹配结果包括上述组合签名值与数据缓存列表内的预存储的签名值相同或所述组合签名值与数据缓存列表内的预存储的签名值不相同。在对上述参数数据进行签名处理并生成对应的组合签名值后,通过将该组合签名值与数据缓存列表内预存储的签名值进行匹配,即判断数据缓存列表内预存储的签名值是否与上述组合签名值相同,如果上述组合签名值与预存储的签名值不相同,则表明该数据提交请求为一个新的数据提交请求,之后服务器对该数据提交请求进行处理,即执行提交上述参数数据的提交动作并得到对应的响应数据,再将该响应数据返回给客户端。但如果上述组合签名值与预存储的签名值相同,则说明由客户端发出的上述数据提交请求在之前已经有提交的记录,即上述数据提交请求属于一个重复提交的请求,则服务器会限制对该数据提交请求进行响应。在本实施例,在接收到用户通过客户端发送的数据提交请求时,首先对与该数据提交请求对应的参数数据按照首字母的自然顺序进行排序得到组合的参数数据,然后对该组合的参数数据进行签名得到组合签名值,并通过将该组合签名值与数据缓存列表内的预存储的签名值进行匹配来判断该数据提交请求是否已经被提交,若已提交,即组合签名值与预存储的签名值相同,则会拒绝对该数据提交请求进行响应,从而有利于避免出现重复提交的数据提交请求由于参数数据中各参数的顺序被篡改后被服务器误认为是新的数据提交请求的情况,有效地防止了数据请求出现重复提交的问题,提高了数据提交的效率,也提高了服务器对数据提交请求处理的准确率。
进一步地,本申请一实施例中,上述处理模块,包括:
第一判断单元,用于若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第一失效时间;
第二处理单元,用于若不小于预设的第一失效时间,将所述组合签名值更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第二响应数据;
第一发送单元,用于将所述第二响应数据发送至所述客户端;
第二限制单元,用于若小于预设的第一失效时间,则限制对所述数据提交请求进行响应。
本实施例中,上述数据提交请求的处理方法除了要对数据缓存列表中是否存在与上述组合签名值相同的签名值进行判断之外,还需要进一步判断上述预存储的签名值的存在时间是否大于预设的第一失效时间,如果数据缓存列表中的预存储的签名值与上述组合签名值相同,且该预存储的签名值的存在时间小于预设的第一失效时间,则判定该客户端提交的数据提交请求在之前已提交过了,之后服务器会限制对数据提交请求进行响应。而如果数据缓存列表中的预存储的签名值与上述组合签名值相同,但该预存储的签名值的存在时间大于预设的第一失效时间,则判定该数据提交请求对应的参数数据不是重复的数据,即该数据提交请求不是重复提交的请求,因此服务器会将该组合签名值更新进上述数据缓存列表中,并会对该数据提交请求进行处理,即执行提交参数数据的提交动作并得到对应的第二响应数据,再将该第二响应数据返回给客户端。其中,上述第一失效时间可根据用户输入的重复提交时间进行设定,上述重复提交时间与上述第一失效时间等同。另外,通过对数据缓存列表内的预存储的签名值设置一个第一失效时间来表示数据缓存列表内的预存储的签名值在该第一失效时间内是有效的,例如第一失效时间可设为2s,则预存储的签名值的存在时间在2s之内是有效的,而如果预存储的签名值的存在时间已经超过2s,例如存在时间为5s,则判定该预存储的签名值是无效的,因此可将当前的数据提交请求对应的参数数据判定为不是重复的数据,即可将当前的数据提交请求视为新的数据提交请求,并将上述组合签名值更新进数据缓存列表,以完成对已失效的预存储的签名值的替换,以及对该数据提交请求进行处理得到第二响应数据,并向用户返回该第二响应数据。而如果存在时间为1s,则定该预存储的签名值是有效的,则会判定该客户端提交的数据提交请求在此之前已提交过了,即当前的数据提交请求满足重复提交的条件,且该数据提交请求对应的参数数据是重复的数据,则服务器会限制对所述数据提交请求进行响应。本实施例通过对数据缓存列表中的预存储的签名值设定失效时间,只有在该失效时间之内查询到的预存储的签名值才能作为重复提交的判断依据,不仅有效地防止了数据出现重复提交,还解决了防止服务器的拓展性差的问题,有效地提高了对数据的处理效率。
进一步地,本申请一实施例中,上述处理模块,包括:
第二判断单元,用于若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第二失效时间;
第三判断单元,用于若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的提交次数是否小于预设的重复提交次数;
第三处理单元,用于若小于预设的重复提交次数,将所述预存储的提交次数的数值替换为所述预存储的提交次数的值+1并更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第三响应数据;
第二发送单元,用于将所述第三响应数据发送至所述客户端;
第三限制单元,用于若不小于预设的重复提交次数,则限制对所述数据提交请求进行响应。
本实施例中,上述预设的重复提交次数为在上述失效时间内允许相同的数据提交请求出现的次数,举例地,上述重复提交次数可设为2次,上述第二失效时间设为5s,则相同的数据提交请求在预存储签名值有效的5s时间内允许出现2次,即如果在预存储签名值有效的5s时间内如果出现了两次相同的数据提交请求,则服务器会执行与该两次相同的数据提交请求对应的两次数据响应处理,但如果在预存储签名值有效的5s时间内如果出现了四次相同的数据提交请求,服务器也只会执行前两次接收到的指定数据请求对应的两次数据响应处理,而将后两次接收到指定数据请求视作重复的数据提交请求,并且不会作出响应。在本实施例,上述防重复提交方法除了要对上述预存储的签名值的存在时间是否小于预设的第二失效时间进行判断之外,还要进一步判断数据缓存列表内预存储的提交次数是否小于预设的重复提交次数,如果上述预存储签名值的存在时间小于预设的失效时间,但数据缓存列表内的预存储的提交次数小于预设的重复提交次数,则判定该数据提交请求对应的参数数据不是重复的数据,因此服务器会对该数据提交请求进行处理,即执行提交参数数据的提交动作并得到对应的第三响应数据,再将该第三响应数据返回给客户端,并且将上述预存储的提交次数的数值替换为该预存储的提交次数加1并更新进数据缓存列表中。而如果数据缓存列表内的预存储的提交次数不小于预设的重复提交次数,则判定该客户端提交的数据提交请求在此之前已提交过了,即当前的数据提交请求满足重复提交的条件,且该数据提交请求对应的参数数据是重复的数据,则服务器会限制对所述数据提交请求进行响应。本实施例在对数据缓存列表中的预存储的签名值设定失效时间的基础上,进一步对数据缓存列表中的预存储的提交次数设置重复提交次数,当在该失效时间之内查询到的预存储的签名值后,需要进一步来确定据缓存列表中的预存储的提交次数与预设的重复提交次数的关系来作为重复提交的判断依据,不仅有效地防止了数据出现重复提交,并且有效的解决了服务器的拓展性差的问题,提高了服务器的拓展性已经服务器对数据的处理效率。
进一步地,本申请一实施例中,上述数据提交请求的处理装置,包括:
第二创建模块,用于创建动态修改所述第二失效时间的第一修改接口;
第三创建模块,用于创建动态修改所述重复提交次数的第二修改接口。
在上述第二创建模块和第三创建模块中,上述第二失效时间以及上述重复提交次数可根据实际情况进行调整,可创建一个动态修改所述第二失效时间的第一修改接口,以便通过该第一修改接口对该第二失效时间对应的数据进行随意调整,以满足业务多变的需求,另外,可创建一个动态修改所述重复提交次数的第二修改接口,以便通过该第一修改接口对该重复提交次数对应的数据进行随意调整,进一步满足业务多变的需求。在本实施例,通过创建可对第二失效时间以及重复提交时间进行数据修改的两个接口,有利于实现自定义配置第二失效时间以及重复提交时间的具体数值,并且能满足业务多多样化的需求,提高用户的使用体验。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据提交请求与预存储的签名值等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据提交请求的处理方法。
上述处理器执行上述数据提交请求的处理方法的步骤:通过指定接口接收客户端发送的数据提交请求;获取与所述数据提交请求对应的参数数据;对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;对所述组合的参数数据进行签名处理,生成组合签名值;将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
在一实施例,所述通过指定接口接收客户端发送的数据提交请求的步骤之前,包括:根据开发人员输入的指定接口信息,获取与所述指定接口信息对应的所述指定接口;接收所述开发人员输入的防重复提交代码;创建包含所述防重复提交代码的功能模块;控制所述指定接口调用所述功能模块。
在一实施例,所述获取与所述数据提交请求对应的参数数据的步骤,包括:调用预设的拦截器对所述数据提交请求进行拦截;拦截成功后,根据所述数据提交请求获取所述客户端的地址信息;根据所述地址信息,从所述客户端获取与所述数据提交请求对应的所述参数数据。
在一实施例,所述参数数据包括身份标识参数与业务请求参数,所述对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据的步骤,包括:提取所述身份标识参数的第一参数名称与所述业务请求参数的第二参数名称;将所述第一参数名称与所述第二参数名称按照首字母的自然顺序进行排序;根据所述排序对所述身份标识参数与所述业务请求参数进行组合,得到所述组合的参数数据。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签名值不相同,则对所述数据提交请求进行处理得到对应的第一响应结果,并将所述第一响应数据发送至所述客户端;若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则限制对所述数据提交请求进行响应。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第一失效时间;若不小于预设的第一失效时间,将所述组合签名值更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第二响应数据;将所述第二响应数据发送至所述客户端;若小于预设的第一失效时间,则限制对所述数据提交请求进行响应。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第二失效时间;若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的提交次数是否小于预设的重复提交次数;若小于预设的重复提交次数,将所述预存储的提交次数的数值替换为所述预存储的提交次数的值+1并更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第三响应数据;将所述第三响应数据发送至所述客户端;若不小于预设的重复提交次数,则限制对所述数据提交请求进行响应。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种数据提交请求的处理方法,具体为:通过指定接口接收客户端发送的数据提交请求;获取与所述数据提交请求对应的参数数据;对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;对所述组合的参数数据进行签名处理,生成组合签名值;将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
在一实施例,所述通过指定接口接收客户端发送的数据提交请求的步骤之前,包括:根据开发人员输入的指定接口信息,获取与所述指定接口信息对应的所述指定接口;接收所述开发人员输入的防重复提交代码;创建包含所述防重复提交代码的功能模块;控制所述指定接口调用所述功能模块。
在一实施例,所述获取与所述数据提交请求对应的参数数据的步骤,包括:调用预设的拦截器对所述数据提交请求进行拦截;拦截成功后,根据所述数据提交请求获取所述客户端的地址信息;根据所述地址信息,从所述客户端获取与所述数据提交请求对应的所述参数数据。
在一实施例,所述参数数据包括身份标识参数与业务请求参数,所述对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据的步骤,包括:提取所述身份标识参数的第一参数名称与所述业务请求参数的第二参数名称;将所述第一参数名称与所述第二参数名称按照首字母的自然顺序进行排序;根据所述排序对所述身份标识参数与所述业务请求参数进行组合,得到所述组合的参数数据。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签名值不相同,则对所述数据提交请求进行处理得到对应的第一响应结果,并将所述第一响应数据发送至所述客户端;若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则限制对所述数据提交请求进行响应。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第一失效时间;若不小于预设的第一失效时间,将所述组合签名值更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第二响应数据;将所述第二响应数据发送至所述客户端;若小于预设的第一失效时间,则限制对所述数据提交请求进行响应。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第二失效时间;若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的提交次数是否小于预设的重复提交次数;若小于预设的重复提交次数,将所述预存储的提交次数的数值替换为所述预存储的提交次数的值+1并更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第三响应数据;将所述第三响应数据发送至所述客户端;若不小于预设的重复提交次数,则限制对所述数据提交请求进行响应。
综上所述,本申请实施例中提供的数据提交请求的处理方法、装置和计算机设备,通过指定接口接收客户端发送的数据提交请求;获取与所述数据提交请求对应的参数数据;对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;对所述组合的参数数据进行签名处理,生成组合签名值;将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果;根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。通过本申请能有效地防止了数据出现重复提交的问题,保证了服务器的业务的正常开展,提高了数据提交请求的处理效率,也提高了服务器对数据提交请求处理的准确率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram通过多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。