一种实现客户端与服务器之间通信的方法、装置和服务器与流程

文档序号:12890024阅读:305来源:国知局
一种实现客户端与服务器之间通信的方法、装置和服务器与流程

本发明涉及计算机技术领域,具体涉及一种实现客户端与服务器之间通信的方法、装置和服务器。



背景技术:

随着智能终端功能的不断发展,基于在智能终端上安装的各种各样的客户端也随之发展,客户端通过与服务器之间进行通信,以满足用户的使用需求。现有技术中,客户端与服务器之间的通信一般是通过https(hypertexttransferprotocoloversecuresocketlayer)方式。作为以安全为目标的https包括安全传输层协议tls,用于保证数据传输过程中的安全性和数据完整性。而安全传输层协议tls主要是通过tls握手过程提供安全连接。所以在以https方式建立连接的过程中,除了要经过传输控制协议tcp的三次握手的过程,还要经过tls握手过程,即一个秘钥的传输过程,所以,如果客户端与服务器之间的通信使用https方式,两者建立tls握手连接的过程比较复杂且耗时比较长,影响数据的传输速度,特别是对于即时响应的数据来说,传输速度对数据的响应时间有很大的影响。

所以,客户端与服务器之间通信时使用https协议,会存在如下问题:通信过程较复杂且耗时比较长,数据传输速度较低,数据响应时间慢,会降低用户的体验。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的实现客户端与服务器之间通信的方法和相应装置、服务器。

依据本发明的一个方面,提供了一种实现客户端与服务器之间通信的方法,该方法包括:判断预设条件是否满足;如果预设条件满足,则采用http方式与服务器建立连接;当向服务器发送请求数据时,根据预设的加密算法对所述请求数据中的请求参数进行加密处理,获得第一校验值,将包含请求参数的请求数据以及所述第一校验值通过所建立的连接发送给服务器;接收所述服务器返回的与所述请求数据对应的响应数据。

可选地,所述方法进一步包括:如果预设条件不满足,则采用https方式与服务器建立连接;当向服务器发送请求数据时,将所述请求数据通过所建立的连接发送给服务器;接收所述服务器通过所建立的连接返回的与所述请求数据对应的响应数据。

可选地,所述根据预设的加密算法对所述请求数据中的请求参数进行加密处理包括:获取服务器预先下发的密钥,利用该密钥并根据指定加密算法对所述请求数据中的请求参数进行加密处理。

可选地,所述判断预设条件是否满足包括:判断服务器的http端口是否可用,如果可用则预设条件满足。

可选地,所述判断预设条件是否满足包括:判断当前接入的网络是否为安全网络,若判断为安全网络,则预设条件满足。

可选地,所述判断当前接入的网络是否为安全网络包括如下中的一种或多种:判断当前接入的网络是否为移动网络运营商的网络,如果是则为安全网络;判断当前接入的网络是否与预先设定的安全网络列表中的网络相匹配,如果匹配则为安全网络;判断当前接入的网络的使用次数是否大于预设值,如果是则为安全网络。

可选地,所述判断预设条件是否满足包括:判断当前所处的操作系统是否允许向http端口发送请求数据,如果允许则预设条件满足。

可选地,所述判断预设条件是否满足包括:判断所要发送的请求数据的指令类型是否为低安全要求指令,如果是低安全要求指令则预设条件满足。

可选地,所述判断所要发送的请求数据的指令类型是否为低安全要求指令包括:判断所要发送的请求数据的指令类型是否与预设的低安全要求指令列表中的指令类型匹配,如果匹配则所要发送的请求数据的指令类型为低安全要求指令。

根据本发明的另一方面,提供了一种实现客户端与服务器之间通信的方法,包括:通过http端口与客户端建立连接;通过http端口接收所述客户端发送的包含请求参数的请求数据和第一校验值;根据预设的加密算法对所述请求数据中的请求参数进行加密处理,获得第二校验值;判断所述第一校验值和所述第二校验值是否一致,若一致,则将所述请求数据对应的响应数据通过http端口返回给所述客户端。

可选地,所述方法进一步包括:通过https端口与所述客户端建立连接;通过https端口接收所述客户端发送的请求数据;将所述请求数据对应的响应数据通过https端口返回给所述客户端。

可选地,所述根据预设的加密算法对所述请求数据中的请求参数进行加密处理包括:利用指定密钥并根据指定加密算法对所述请求数据中的请求参数进行加密处理;其中,所述指定密钥为向所述客户端下发的密钥。

根据本发明的又一个方面,提供了一种实现客户端与服务器之间通信的装置,该装置包括:判断单元,用于判断预设条件是否满足;连接单元,用于如果预设条件满足,采用http方式与服务器建立连接;加密处理单元,用于当向服务器发送请求数据时,根据预设的加密算法对所述请求数据中的请求参数进行加密处理,获得第一校验值;发送单元,用于将包含请求参数的请求数据以及所述第一校验值通过所建立的连接发送给服务器;接收单元,用于接收所述服务器返回的与所述请求数据对应的响应数据。

可选地,所述连接单元,用于如果预设条件不满足,则采用https方式与服务器建立连接;所述发送单元,用于当向服务器发送请求数据时,将所述请求数据通过所建立的连接发送给服务器;所述接收单元,用于接收所述服务器通过所建立的连接返回的与所述请求数据对应的响应数据。

可选地,所述加密处理单元,用于获取服务器预先下发的密钥,利用该密钥并根据指定加密算法对所述请求数据中的请求参数进行加密处理。

可选地,所述判断单元,用于判断服务器的http端口是否可用,如果可用则预设条件满足。

可选地,所述判断单元,用于判断当前接入的网络是否为安全网络,若判断为安全网络,则预设条件满足。

可选地,所述判断当前接入的网络是否为安全网络包括如下中的一种或多种:判断当前接入的网络是否为移动网络运营商的网络,如果是则为安全网络;判断当前接入的网络是否与预先设定的安全网络列表中的网络相匹配,如果匹配则为安全网络;判断当前接入的网络的使用次数是否大于预设值,如果是则为安全网络。

可选地,所述判断单元,用于判断当前所处的操作系统是否允许向http端口发送请求数据,如果允许则预设条件满足。

可选地,所述判断单元,用于判断所要发送的请求数据的指令类型是否为低安全要求指令,如果是低安全要求指令则预设条件满足。

可选地,所述判断单元,进一步用于判断所要发送的请求数据的指令类型是否与预设的低安全要求指令列表中的指令类型匹配,如果匹配则所要发送的请求数据的指令类型为低安全要求指令。

根据本发明的再一个方面,提供了一种服务器,包括:连接单元,用于通过http端口与客户端建立连接;接收单元,用于通过http端口接收所述客户端发送的包含请求参数的请求数据和第一校验值;加密处理单元,用于根据预设的加密算法对所述请求数据中的请求参数进行加密处理,获得第二校验值;判断单元,用于判断所述第一校验值和所述第二校验值是否一致;发送单元,用于若一致,将所述请求数据对应的响应数据通过http端口返回给所述客户端。

可选地,所述连接单元,还用于通过https端口与所述客户端建立连接;所述接收单元,还用于通过https端口接收所述客户端发送的请求数据;所述发送单元,用于将所述请求数据对应的响应数据通过https端口返回给所述客户端。

可选地,所述加密处理单元,用于利用指定密钥并根据指定加密算法对所述请求数据中的请求参数进行加密处理;其中,所述指定密钥为向所述客户端下发的密钥。

根据本发明的技术方案,首先客户端判断预设条件是否满足;如果预设条件满足,则采用http方式与服务器建立连接;同时为了保证数据的安全性和完整性,当向服务器发送请求数据时,根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第一校验值,将包含请求参数的请求数据以及第一校验值通过所建立的连接发送给服务器;当服务器接收到数据并校验成功后,会返回对应的响应数据,以便客户端可以及时接收到服务器返回的与请求数据对应的响应数据。可见,本技术方案中客户端与服务器之间的通信过程不包括tls握手过程,过程简单,耗时短,数据传输速度快,数据响应时间短,同时还可以保证数据传输过程中的安全性和完整性,增强用户的体验。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的一种实现客户端与服务器之间通信的方法的流程示意图;

图2示出了根据本发明另一个实施例的一种实现客户端与服务器之间通信的方法的流程示意图;

图3示出了根据本发明一个实施例的一种实现客户端与服务器之间通信的装置的结构示意图;

图4示出了根据本发明一个实施例的一种服务器的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的一种实现客户端与服务器之间通信的方法的流程示意图,从客户端侧对本发明的实施例进行说明。如图1所示,该方法包括:

步骤s110,判断预设条件是否满足。

步骤s120,如果预设条件满足,则采用http方式与服务器建立连接。

现有技术中,通常默认的情况时,客户端与服务器之间的通信采用的是https方式,简单讲,这里的https是http的安全版,以保证数据的安全性和完整性为目的。如果在客户端与服务器之间通信不采用https,而是采用http,即采用本实施例的技术方案时,为保证本方案的顺利实施,需要首先判断预设条件是否满足,只有在预设条件满足的情况下,才可以采用http的方式与服务器建立连接。以及,在需要及时响应请求数据的情况下,为保证数据传输可以在较短的时间内完成,需要首先判断预设条件是否满足,满足预设条件后,就可以采用本发明的技术方案。也就是说,该预设条件的判断不仅可以保证本方案的有效实施,还可以根据不同的场景,选择适应的方案。

步骤s130,当向服务器发送请求数据时,根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第一校验值,将包含请求参数的请求数据以及第一校验值通过所建立的连接发送给服务器。

因为本实施例中客户端与服务器之间建立的连接是通过http方式,此方式传输的数据的安全性以及完整性较差,为了弥补http方式的安全性的缺陷,本实施例中,当向服务器发送请求数据时,根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第一校验值,将包含请求参数的请求数据以及第一校验值通过所建立的连接发送给服务器,以便服务器根据第一校验值对接收到的请求数据进行校验,只有校验成功后,才会向客户端返回与请求数据对应的响应数据。采用这样的方式,防止数据传输过程中丢失导致的数据不完整,以及防止数据传输过程中被劫持并被篡改。

步骤s140,接收服务器返回的与请求数据对应的响应数据。

可见,本技术方案中客户端与服务器之间的通信过程是采用http的方式,不包括tls握手过程,过程简单,耗时短,数据传输速度快,数据响应时间短,同时还可以保证数据传输过程中的安全性和完整性,增强用户的体验。

采用本发明的技术方案,首先要判断预设条件是否满足,如果不满足的情况下客户端就不能采用http方式与服务器建立连接。所以,在本发明的一个实施例中,图1所示的方法进一步包括:如果预设条件不满足,则采用https方式与服务器建立连接;当向服务器发送请求数据时,将请求数据通过所建立的连接发送给服务器;接收服务器通过所建立的连接返回的与请求数据对应的响应数据。

在本发明的一个实施例中,步骤s130中的根据预设的加密算法对请求数据中的请求参数进行加密处理包括:获取服务器预先下发的密钥,利用该密钥并根据指定加密算法对请求数据中的请求参数进行加密处理。

这里的加密算法可以利用现有技术中的加密算法,例如md5算法或sha1算法,不做限定,要保证密钥和指定的加密算法在客户端侧和服务器侧是一致的,以保证服务器侧也可以利用该密钥并根据该指定加密算法对请求数据中的请求参数进行加密处理,并对接收到的加密数据进行校验,校验成功后,才确定请求数据是安全的且是完整的。

例如,请求数据包括有参数1、参数2、参数3、参数4,将它们以及获取的一个签名key(例如可以是一个字符串)按照预定规则拼成一个签名串,利用指定的加密算法md5算法,把该签名串计算成一个md5值,并发送给服务器,服务器收到参数1、参数2、参数3、参数4和md5值后,服务器也将参数1、参数2、参数3、参数4以及自己的签名key(例如可以是一个字符串)按照预定规则拼接生成一个签名串,并做一次md5值计算,然后判断接收到的md5值和服务器自己计算的md5值是否一致。如果一致,请求数据就是正常,如果不一致,请求数据就存在异常。

本领域技术人员应可理解,所述客户端可以通过各种途径获取签名key。为了安全起见,客户端可以在第一次与服务器通讯时采用https方式,并在该通讯模式下获得签名key,或者通过第三方加密传输的方式获取签名key。当然,客户端也可以利用其它安全途径获取签名key,本发明并不以此为限。

在本发明的技术方案的实施中,需要首先判断预设条件是否满足,也就是说客户端和服务器之间是否可以采用http方式建立连接,并根据加密算法加密数据的方式传输数据。因为,在实际应用中,有些情况下,智能终端的操作系统通常会默认客户端与服务器之间的连接通常是https方式的连接,而对于其他的方式的连接是不支持或不兼容的;有些情况下,服务器侧的http端口是不可用的;有些情况下,数据的传输过程相对安全;还有些情况下,请求数据本身的类型的安全性要求较低,所以,本发明中,一方面,需要保证方案的有效实施的情况下,需要对预设条件是否满足进行判断,另一方面,还可以根据实际需求进行选择,是否选用本发明的技术方案,进一步提高用户的体验。

下面将通过实施例具体说明判断预设条件是否满足的不同方案,需要说明的是,下述实施例中的方案只是本发明提出的普遍使用的优选实施例,在本发明实际应用过程中,预设条件可以根据需求自行设定。

方案一:

步骤s110中的判断预设条件是否满足包括:判断服务器的http端口是否可用,如果可用则预设条件满足;如果不可用就确定为预设条件不满足。

因为不管客户端与服务器通过哪种方式建立连接,都有与连接方式对应的端口接收数据,例如,http端口为80端口,https端口为443端口。所以,在本技术方案中,为了保证本方案的有效实施,客户端与服务器通过http的方式建立连接前,需要判断服务器可以接收到请求数据,即服务器侧相应的80端口是可用的。

在一实施例中,可以通过客户端与服务器的第一次通讯来获取相关的接口信息。具体来说,客户端可以在第一次与服务器通讯时采用https方式,并在该通讯模式下获得相应的端口信息(如端口80是否可用等)。在另一实施例中,具体地判断过程可以是,客户端可以首先向服务器发送一个通过http方式传输的数据,如果客户端可以接收到正确的响应数据,则判断服务器的http端口是可用的,否则是不可用的。当该判断执行后,客户端可以进行标记,将服务器的http端口标记为可用的。再次进行数据传输时,就可以节省此步骤的判断,在一定程度上,提高数据传输速度。

本领域技术人员应可理解,也可以通过周期性获取端口信息(或发送数据并判断响应)的方式来准确获知相应端口当前的可用性,或者在确定需要进行数据传输/通信之后并在决定数据传输/通信方式之前确定响应端口当前的可用性,本发明并不以此为限。

方案二:

步骤s110中的判断预设条件是否满足包括:判断当前接入的网络是否为安全网络,若判断为安全网络,则预设条件满足;如果不是安全网络就确定为预设条件不满足。

因为本发明的技术方案中采用的是http方式建立的连接,数据传输过程中仍然采用明文传输,如果当前网络是非安全网络,则非法用户可以会将该数据的明文劫持并篡改,造成数据传输的不安全性,影响数据的正确性和完整性。所以,为了保证在本发明的实施过程中数据不被劫持,在客户端与服务器之间通过http建立连接之前,要先判断客户端侧当前接入的网络是否为安全网络。

具体地,上述的判断当前接入的网络是否为安全网络包括如下中的一种或多种:

(1)判断当前接入的网络是否为移动网络运营商的网络,如果是则为安全网络。例如,移动、联通等网络运营商。

(2)判断当前接入的网络是否与预先设定的安全网络列表中的网络相匹配,如果匹配则为安全网络。例如,4g网络。

(3)判断当前接入的网络的使用次数是否大于预设值,如果是则为安全网络。

这里当前接入的网络的使用次数,可以是当前客户端所在智能终端设备对该网络的使用次数,使用次数大于预设值,说明该智能终端设备的常用网络,可确定为是安全网络,例如,工作的局域网;可以是该网络被可信任的设备使用的次数,这里可信任的设备可以设定为对传输数据的安全性有一定要求的设备,例如,涉及到个人支付的设备。

方案三:

步骤s110中的判断预设条件是否满足包括:判断当前所处的操作系统是否允许向http端口发送请求数据,如果允许则预设条件满足;如果不允许就确定为预设条件不满足。

使用http方式建立连接并成功发送数据,不仅仅要看服务器侧的端口是否可用,还要看安装该客户端的智能终端中的操作系统是否允许向http端口发送数据。例如,特定操作系统的某个特定版本可能不允许使用http方式通信。所以,为了保证本方案的有效实施,需要判断当前所处的操作系统是否允许向http端口发送请求数据。

方案四:

步骤s110中的判断预设条件是否满足包括:判断所要发送的请求数据的指令类型是否为低安全要求指令,如果是低安全要求指令则预设条件满足。

低安全要求指令应该是指该指令的执行对响应该请求数据的设备的安全性不产生直接影响的指令。例如,在通过智能终端,向相应的设备发送命令指令的时候,如果指令类型是指示该设备的开机/关机,则可以认为该指令的类型是高安全要求的,因为开机/关机直接涉及到设备是否可以正常使用,如果是对该设备发送的是执行某一动作的指令,则可认为该指令是低安全要求的。又例如,在看视频时,开灯/关灯则也可以认为是低安全性的指令。

具体地,可以根据需求预先设定低安全要求指令列表。上述判断所要发送的请求数据的指令类型是否为低安全要求指令包括:判断所要发送的请求数据的指令类型是否与预设的低安全要求指令列表中的指令类型匹配,如果匹配则所要发送的请求数据的指令类型为低安全要求指令,即预设条件满足。

方案五:

步骤s110中的判断预设条件是否满足包括:根据所要发送的请求数据的指令时限,判断所要发送的请求数据的指令是否为实时指令,如果是则,该请求数据的指令需要被实时响应,即预设条件满足。

有些请求数据的指令中会有一个时间戳,需要在时间戳指示的时间内完成请求数据的响应,如果时间戳在预设阈值内,则判断该请求数据需要实时响应,则确定预设条件满足,需要采用耗时短的本发明的技术方案。

例如,预设阈值为0.4ms,在通过智能终端,向相应的设备发送命令指令的时候,时间戳指示的时间为0.2ms,小于预设阈值0.4ms,则该命令指令属于实时响应的指令,需要设备实时执行该命令指令,则智能终端的客户端与服务器之间可采用http的方式建立连接,同样,设备和服务器之间也可以采用http方式建立连接。

需要说明的,上述方案一至方案五,可以单独实施,也可以进行任意组合后实施,在这里不做具体的限定。

图2示出了根据本发明另一个实施例的一种实现客户端与服务器之间通信的方法的流程示意图,从服务器侧对本发明的实施例进行说明,其实施过程与图1所示的实施过程相对应。如图2所示,该方法包括:

步骤s210,通过http端口与客户端建立连接。

当客户端判断预设条件满足后,会与服务器通过http方式建立连接,则服务器会通过http端口(即80端口)与客户端建立连接。

步骤s220,通过http端口接收客户端发送的包含请求参数的请求数据和第一校验值。

当客户端发送请求数据时,是向服务器的http端口发送请求数据。在本实施例中,服务器会通过http端口接收客户端发送的包含请求参数的请求数据和第一校验值。

步骤s230,根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第二校验值。

步骤s240,判断第一校验值和第二校验值是否一致,若一致,则将请求数据对应的响应数据通过http端口返回给客户端。

如上文说明,服务器的密钥和指定的加密算法与客户端侧的密钥和加密算法是一致的。当服务器接收到包含请求参数的请求数据和第一校验值后,根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第二校验值,如何请求数据是正常的,则第一校验值和第二校验值是一样的;如果请求数据是异常的,则第一校验值和第二校验值是不一样的。通过判断第一校验值和第二校验值是否一致,就可以判断请求数据是否是正常的。如果判断一致,服务器再将请求数据对应的响应数据通过http端口返回给客户端;如果判断不一致,则不会返回响应数据。

当客户端侧判断预设条件不满足时,客户端需要通过https的方式与服务器建立连接。所以,在本发明的一个实施例中,图2所示的方法进一步包括:通过https端口与客户端建立连接;通过https端口接收客户端发送的请求数据;将请求数据对应的响应数据通过https端口返回给客户端。

在本发明的一个实施例中,步骤s230中的根据预设的加密算法对请求数据中的请求参数进行加密处理包括:利用指定密钥并根据指定加密算法对请求数据中的请求参数进行加密处理;其中,指定密钥为向客户端下发的密钥。

图3示出了根据本发明一个实施例的一种实现客户端与服务器之间通信的装置的结构示意图。如图3所示,该实现客户端与服务器之间通信的装置300包括:

判断单元310,用于判断预设条件是否满足。

连接单元320,用于如果预设条件满足,采用http方式与服务器建立连接。

现有技术中,通常默认的情况时,客户端与服务器之间的通信采用的是https方式,简单讲,这里的https是http的安全版,以保证数据的安全性和完整性为目的。如果在客户端与服务器之间通信不采用https,而是采用http,即采用本实施例的技术方案时,为保证本方案的顺利实施,需要首先判断预设条件是否满足,只有在预设条件满足的情况下,才可以采用http的方式与服务器建立连接。以及,在需要及时响应请求数据的情况下,为保证数据传输可以在较短的时间内完成,需要首先判断预设条件是否满足,满足预设条件后,就可以采用本发明的技术方案。也就是说,该预设条件的判断不仅可以保证本方案的有效实施,还可以根据不同的场景,选择适应的方案。

加密处理单元330,用于当向服务器发送请求数据时,根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第一校验值。

发送单元340,用于将包含请求参数的请求数据以及第一校验值通过所建立的连接发送给服务器。

因为本实施例中客户端与服务器之间建立的连接是通过http方式,此方式传输的数据的安全性以及完整性较差,为了弥补http方式的安全性的缺陷,本实施例中,当向服务器发送请求数据时,根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第一校验值,将包含请求参数的请求数据以及第一校验值通过所建立的连接发送给服务器,以便服务器根据第一校验值对接收到的请求数据进行校验,只有校验成功后,才会向客户端返回与请求数据对应的响应数据。采用这样的方式,防止数据传输过程中丢失导致的数据不完整,以及防止数据传输过程中被劫持并被篡改。

接收单元350,用于接收服务器返回的与请求数据对应的响应数据。

可见,本技术方案中客户端与服务器之间的通信过程是采用http的方式,不包括tls握手过程,过程简单,耗时短,数据传输速度快,数据响应时间短,同时还可以保证数据传输过程中的安全性和完整性,增强用户的体验。

采用本发明的技术方案,首先要判断预设条件是否满足,如果不满足的情况下客户端就不能采用http方式与服务器建立连接。所以,在本发明的一个实施例中,连接单元320,用于如果预设条件不满足,则采用https方式与服务器建立连接;发送单元340,用于当向服务器发送请求数据时,将请求数据通过所建立的连接发送给服务器;接收单元350,用于接收服务器通过所建立的连接返回的与请求数据对应的响应数据。

在本发明的一个实施例中,加密处理单元330,用于获取服务器预先下发的密钥,利用该密钥并根据指定加密算法对请求数据中的请求参数进行加密处理。

这里的加密算法可以利用现有技术中的加密算法,例如md5算法或sha1算法,不做限定,要保证密钥和指定的加密算法在客户端侧和服务器侧是一致的,以保证服务器侧也可以利用该密钥并根据该指定加密算法对请求数据中的请求参数进行加密处理,并对接收到的加密数据进行校验,校验成功后,才确定请求数据是安全的且是完整的。

例如,请求数据包括有参数1、参数2、参数3、参数4,将它们以及获取的一个签名key(例如可以是一个字符串)按照预定规则拼成一个签名串,利用指定的加密算法md5算法,把该签名串计算成一个md5值,并发送给服务器,服务器收到参数1、参数2、参数3、参数4和md5值后,服务器也将参数1、参数2、参数3、参数4以及自己的签名key(例如可以是一个字符串)按照预定规则拼接生成一个签名串,并做一次md5值计算,然后判断接收到的md5值和服务器自己计算的md5值是否一致。如果一致,请求数据就是正常,如果不一致,请求数据就存在异常。

本领域技术人员应可理解,所述客户端可以通过各种途径获取签名key。为了安全起见,客户端可以在第一次与服务器通讯时采用https方式,并在该通讯模式下获得签名key,或者通过第三方加密传输的方式获取签名key。当然,客户端也可以利用其它安全途径获取签名key,本发明并不以此为限。

在本发明的技术方案的实施中,需要首先判断预设条件是否满足,也就是说客户端和服务器之间是否可以采用http方式建立连接,并根据加密算法加密数据的方式传输数据。因为,在实际应用中,有些情况下,智能终端的操作系统通常会默认客户端与服务器之间的连接通常是https方式的连接,而对于其他的方式的连接是不支持或不兼容的;有些情况下,服务器侧的http端口是不可用的;有些情况下,数据的传输过程相对安全;还有些情况下,请求数据本身的类型的安全性要求较低,所以,本发明中,一方面,需要保证方案的有效实施的情况下,需要对预设条件是否满足进行判断,另一方面,还可以根据实际需求进行选择,是否选用本发明的技术方案,进一步提高用户的体验。

下面将通过实施例具体说明判断预设条件是否满足的不同方案,需要说明的是,下述实施例中的方案只是本发明提出的普遍使用的优选实施例,在本发明实际应用过程中,预设条件可以根据需求自行设定。

方案一:

判断单元310,用于判断服务器的http端口是否可用,如果可用则预设条件满足;如果不可用就确定为预设条件不满足。

因为不管客户端与服务器通过哪种方式建立连接,都有与连接方式对应的端口接收数据,例如,http端口为80端口,https端口为443端口。所以,在本技术方案中,为了保证本方案的有效实施,客户端与服务器通过http的方式建立连接前,需要判断服务器可以接收到请求数据,即服务器侧相应的80端口是可用的。

在一实施例中,可以通过客户端与服务器的第一次通讯来获取相关的接口信息。具体来说,客户端可以在第一次与服务器通讯时采用https方式,并在该通讯模式下获得相应的端口信息(如端口80是否可用等)。在另一实施例中,具体地判断过程可以是,客户端可以首先向服务器发送一个通过http方式传输的数据,如果客户端可以接收到正确的响应数据,则判断服务器的http端口是可用的,否则是不可用的。当该判断执行后,客户端可以进行标记,将服务器的http端口标记为可用的。再次进行数据传输时,就可以节省此步骤的判断,在一定程度上,提高数据传输速度。

本领域技术人员应可理解,也可以通过周期性获取端口信息(或发送数据并判断响应)的方式来准确获知相应端口当前的可用性,或者在确定需要进行数据传输/通信之后并在决定数据传输/通信方式之前确定响应端口当前的可用性,本发明并不以此为限。

方案二:

判断单元310,用于判断当前接入的网络是否为安全网络,若判断为安全网络,则预设条件满足;如果不是安全网络就确定为预设条件不满足。

因为本发明的技术方案中采用的是http方式建立的连接,数据传输过程中仍然采用明文传输,如果当前网络是非安全网络,则非法用户可以会将该数据的明文劫持并篡改,造成数据传输的不安全性,影响数据的正确性和完整性。所以,为了保证在本发明的实施过程中数据不被劫持,在客户端与服务器之间通过http建立连接之前,要先判断客户端侧当前接入的网络是否为安全网络。

具体地,上述的判断当前接入的网络是否为安全网络包括如下中的一种或多种:

(1)判断当前接入的网络是否为移动网络运营商的网络,如果是则为安全网络。例如,移动、联通等网络运营商。

(2)判断当前接入的网络是否与预先设定的安全网络列表中的网络相匹配,如果匹配则为安全网络。例如,4g网络。

(3)判断当前接入的网络的使用次数是否大于预设值,如果是则为安全网络。

这里当前接入的网络的使用次数,可以是当前客户端所在智能终端设备对该网络的使用次数,使用次数大于预设值,说明该智能终端设备的常用网络,可确定为是安全网络,例如,工作的局域网;可以是该网络被可信任的设备使用的次数,这里可信任的设备可以设定为对传输数据的安全性有一定要求的设备,例如,涉及到个人支付的设备。

方案三:

判断单元310,用于判断当前所处的操作系统是否允许向http端口发送请求数据,如果允许则预设条件满足;如果不允许就确定为预设条件不满足。

使用http方式建立连接并成功发送数据,不仅仅要看服务器侧的端口是否可用,还要看安装该客户端的智能终端中的操作系统是否允许向http端口发送数据。例如,特定操作系统的某个特定版本可能不允许使用http方式通信。所以,为了保证本方案的有效实施,需要判断当前所处的操作系统是否允许向http端口发送请求数据。

方案四:

判断单元310,用于判断所要发送的请求数据的指令类型是否为低安全要求指令,如果是低安全要求指令则预设条件满足低安全要求指令应该是指该指令的执行对响应该请求数据的设备的安全性不产生直接影响的指令。例如,在通过智能终端,向相应的设备发送命令指令的时候,如果指令类型是指示该设备的开机/关机,则可以认为该指令的类型是高安全要求的,因为开机/关机直接涉及到设备是否可以正常使用,如果是对该设备发送的是执行某一动作的指令,则可认为该指令是低安全要求的。又例如,在看视频时,开灯/关灯则也可以认为是低安全性的指令。

具体地,可以根据需求预先设定低安全要求指令列表。则判断单元310,进一步用于判断所要发送的请求数据的指令类型是否与预设的低安全要求指令列表中的指令类型匹配,如果匹配则所要发送的请求数据的指令类型为低安全要求指令,即预设条件满足。

方案五:

步骤s110中的判断预设条件是否满足包括:根据所要发送的请求数据的指令时限,判断所要发送的请求数据的指令是否为实时指令,如果是则,该请求数据的指令需要被实时响应,即预设条件满足。

有些请求数据的指令中会有一个时间戳,需要在时间戳指示的时间内完成请求数据的响应,如果时间戳在预设阈值内,则判断该请求数据需要实时响应,则确定预设条件满足,需要采用耗时短的本发明的技术方案。

例如,预设阈值为0.4ms,在通过智能终端,向相应的设备发送命令指令的时候,时间戳指示的时间为0.2ms,小于预设阈值0.4ms,则该命令指令属于实时响应的指令,需要设备实时执行该命令指令,则智能终端的客户端与服务器之间可采用http的方式建立连接,同样,设备和服务器之间也可以采用http方式建立连接。

需要说明的,上述方案一至方案五,可以单独实施,也可以进行任意组合后实施,在这里不做具体的限定。

图4示出了根据本发明一个实施例的一种服务器的结构示意图,其实施过程与图3所示的实现客户端与服务器之间通信的装置的实施过程相对应。如图4所示,该服务器400包括:

连接单元410,用于通过http端口与客户端建立连接。

当客户端判断预设条件满足后,会与服务器通过http方式建立连接,则服务器会通过http端口(即80端口)与客户端建立连接。

接收单元420,用于通过http端口接收客户端发送的包含请求参数的请求数据和第一校验值。

当客户端发送请求数据时,是向服务器的http端口发送请求数据。在本实施例中,服务器会通过http端口接收客户端发送的包含请求参数的请求数据和第一校验值。

加密处理单元430,用于根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第二校验值。

判断单元440,用于判断第一校验值和第二校验值是否一致。

发送单元450,用于若一致,将请求数据对应的响应数据通过http端口返回给客户端。

如上文说明,服务器的密钥和指定的加密算法与客户端侧的密钥和加密算法是一致的。当服务器接收到包含请求参数的请求数据和第一校验值后,根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第二校验值,如何请求数据是正常的,则第一校验值和第二校验值是一样的;如果请求数据是异常的,则第一校验值和第二校验值是不一样的。通过判断第一校验值和第二校验值是否一致,就可以判断请求数据是否是正常的。如果判断一致,服务器再将请求数据对应的响应数据通过http端口返回给客户端;如果判断不一致,则不会返回响应数据。

当客户端侧判断预设条件不满足时,客户端需要通过https的方式与服务器建立连接。所以,在本发明的一个实施例中,连接单元410,还用于通过https端口与客户端建立连接;接收单元420,还用于通过https端口接收客户端发送的请求数据;发送单元450,用于将请求数据对应的响应数据通过https端口返回给客户端。

在本发明的一个实施例中,加密处理单元430,用于利用指定密钥并根据指定加密算法对请求数据中的请求参数进行加密处理;其中,指定密钥为向客户端下发的密钥。

综上所述,根据本发明的技术方案,首先客户端判断预设条件是否满足;如果预设条件满足,则采用http方式与服务器建立连接;同时为了保证数据的安全性和完整性,当向服务器发送请求数据时,根据预设的加密算法对请求数据中的请求参数进行加密处理,获得第一校验值,将包含请求参数的请求数据以及第一校验值通过所建立的连接发送给服务器;当服务器接收到数据并校验成功后,会返回对应的响应数据,以便客户端可以及时接收到服务器返回的与请求数据对应的响应数据。可见,本技术方案中客户端与服务器之间的通信过程不包括tls握手过程,过程简单,耗时短,数据传输速度快,数据响应时间短,同时还可以保证数据传输过程中的安全性和完整性,增强用户的体验。

需要说明的是:

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的实现客户端与服务器之间通信的装置和服务器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了a1、一种实现客户端与服务器之间通信的方法,包括:

判断预设条件是否满足;

如果预设条件满足,则采用http方式与服务器建立连接;

当向服务器发送请求数据时,根据预设的加密算法对所述请求数据中的请求参数进行加密处理,获得第一校验值,将包含请求参数的请求数据以及所述第一校验值通过所建立的连接发送给服务器;

接收所述服务器返回的与所述请求数据对应的响应数据。

a2、如a1所述的方法,进一步包括:

如果预设条件不满足,则采用https方式与服务器建立连接;

当向服务器发送请求数据时,将所述请求数据通过所建立的连接发送给服务器;

接收所述服务器通过所建立的连接返回的与所述请求数据对应的响应数据。

a3、如a1所述的方法,其中,所述根据预设的加密算法对所述请求数据中的请求参数进行加密处理包括:

获取服务器预先下发的密钥,利用该密钥并根据指定加密算法对所述请求数据中的请求参数进行加密处理。

a4、如a1或a2所述的方法,其中,所述判断预设条件是否满足包括:

判断服务器的http端口是否可用,如果可用则预设条件满足。

a5、如a1或a2所述的方法,其中,所述判断预设条件是否满足包括:

判断当前接入的网络是否为安全网络,若判断为安全网络,则预设条件满足。

a6、如a5所述的方法,其中,所述判断当前接入的网络是否为安全网络包括如下中的一种或多种:

判断当前接入的网络是否为移动网络运营商的网络,如果是则为安全网络;

判断当前接入的网络是否与预先设定的安全网络列表中的网络相匹配,如果匹配则为安全网络;

判断当前接入的网络的使用次数是否大于预设值,如果是则为安全网络。

a7、如a1或a2所述的方法,其中,所述判断预设条件是否满足包括:

判断当前所处的操作系统是否允许向http端口发送请求数据,如果允许则预设条件满足。

a8、如a1或a2所述的方法,其中,所述判断预设条件是否满足包括:

判断所要发送的请求数据的指令类型是否为低安全要求指令,如果是低安全要求指令则预设条件满足。

a9、如a8所述的方法,其中,所述判断所要发送的请求数据的指令类型是否为低安全要求指令包括:

判断所要发送的请求数据的指令类型是否与预设的低安全要求指令列表中的指令类型匹配,如果匹配则所要发送的请求数据的指令类型为低安全要求指令。

本发明还公开了b10、一种实现客户端与服务器之间通信的方法,包括:

通过http端口与客户端建立连接;

通过http端口接收所述客户端发送的包含请求参数的请求数据和第一校验值;

根据预设的加密算法对所述请求数据中的请求参数进行加密处理,获得第二校验值;

判断所述第一校验值和所述第二校验值是否一致,若一致,则将所述请求数据对应的响应数据通过http端口返回给所述客户端。

b11、如b10所述的方法,进一步包括:

通过https端口与所述客户端建立连接;

通过https端口接收所述客户端发送的请求数据;

将所述请求数据对应的响应数据通过https端口返回给所述客户端。

b12、如b10或b11所述的方法,其中,所述根据预设的加密算法对所述请求数据中的请求参数进行加密处理包括:

利用指定密钥并根据指定加密算法对所述请求数据中的请求参数进行加密处理;

其中,所述指定密钥为向所述客户端下发的密钥。

本发明还公开了c13、一种实现客户端与服务器之间通信的装置,该装置包括:

判断单元,用于判断预设条件是否满足;

连接单元,用于如果预设条件满足,采用http方式与服务器建立连接;

加密处理单元,用于当向服务器发送请求数据时,根据预设的加密算法对所述请求数据中的请求参数进行加密处理,获得第一校验值;

发送单元,用于将包含请求参数的请求数据以及所述第一校验值通过所建立的连接发送给服务器;

接收单元,用于接收所述服务器返回的与所述请求数据对应的响应数据。

c14、如c13所述的装置,其中,

所述连接单元,用于如果预设条件不满足,则采用https方式与服务器建立连接;

所述发送单元,用于当向服务器发送请求数据时,将所述请求数据通过所建立的连接发送给服务器;

所述接收单元,用于接收所述服务器通过所建立的连接返回的与所述请求数据对应的响应数据。

c15、如c13所述的装置,其中,

所述加密处理单元,用于获取服务器预先下发的密钥,利用该密钥并根据指定加密算法对所述请求数据中的请求参数进行加密处理。

c16、如c13或c14所述的装置,其中,

所述判断单元,用于判断服务器的http端口是否可用,如果可用则预设条件满足。

c17、如c13或c14所述的装置,其中,

所述判断单元,用于判断当前接入的网络是否为安全网络,若判断为安全网络,则预设条件满足。

c18、如c17所述的装置,其中,所述判断当前接入的网络是否为安全网络包括如下中的一种或多种:

判断当前接入的网络是否为移动网络运营商的网络,如果是则为安全网络;

判断当前接入的网络是否与预先设定的安全网络列表中的网络相匹配,如果匹配则为安全网络;

判断当前接入的网络的使用次数是否大于预设值,如果是则为安全网络。

c19、如c13或c14所述的装置,其中,

所述判断单元,用于判断当前所处的操作系统是否允许向http端口发送请求数据,如果允许则预设条件满足。

c20、如c13或c14所述的装置,其中,

所述判断单元,用于判断所要发送的请求数据的指令类型是否为低安全要求指令,如果是低安全要求指令则预设条件满足。

c21、如c20所述的装置,其中,

所述判断单元,进一步用于判断所要发送的请求数据的指令类型是否与预设的低安全要求指令列表中的指令类型匹配,如果匹配则所要发送的请求数据的指令类型为低安全要求指令。

本发明公开了d22、一种服务器,包括:

连接单元,用于通过http端口与客户端建立连接;

接收单元,用于通过http端口接收所述客户端发送的包含请求参数的请求数据和第一校验值;

加密处理单元,用于根据预设的加密算法对所述请求数据中的请求参数进行加密处理,获得第二校验值;

判断单元,用于判断所述第一校验值和所述第二校验值是否一致;

发送单元,用于若一致,将所述请求数据对应的响应数据通过http端口返回给所述客户端。

d23、如d22所述的服务器,其中,

所述连接单元,还用于通过https端口与所述客户端建立连接;

所述接收单元,还用于通过https端口接收所述客户端发送的请求数据;

所述发送单元,用于将所述请求数据对应的响应数据通过https端口返回给所述客户端。

d24、如d22或d23所述的服务器,其中,

所述加密处理单元,用于利用指定密钥并根据指定加密算法对所述请求数据中的请求参数进行加密处理;

其中,所述指定密钥为向所述客户端下发的密钥。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1