一种数据请求的方法、装置及系统.pdf

上传人:000****221 文档编号:4080703 上传时间:2018-08-14 格式:PDF 页数:18 大小:1.43MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410776946.7

申请日:

2014.12.15

公开号:

CN104468594A

公开日:

2015.03.25

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||专利申请权的转移IPC(主分类):H04L 29/06登记生效日:20161116变更事项:申请人变更前权利人:北京奇虎科技有限公司变更后权利人:北京奇安信科技有限公司变更事项:地址变更前权利人:100088 北京市西城区新街口外大街28号D座112室(德胜园区)变更后权利人:100015 北京市朝阳区酒仙桥路甲10号3号楼15层17层1701-26变更事项:申请人变更前权利人:奇智软件(北京)有限公司|||实质审查的生效IPC(主分类):H04L29/06申请日:20141215|||公开

IPC分类号:

H04L29/06

主分类号:

H04L29/06

申请人:

北京奇虎科技有限公司; 奇智软件(北京)有限公司

发明人:

王院生

地址:

100088北京市西城区新街口外大街28号D座112室(德胜园区)

优先权:

专利代理机构:

北京鼎佳达知识产权代理事务所(普通合伙)11348

代理人:

王伟锋; 刘铁生

PDF下载: PDF下载
内容摘要

本发明公开了一种数据请求的方法、装置及系统,涉及互联网技术领域,能够解决HTTP连接的并发数受限的问题。本发明的方法,包括:建立一条通信连接;通过通信连接接收客户端上报的数据请求;在对数据请求进行响应前,通过通信连接继续接收同一客户端或不同客户端上报的其他数据请求;对不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。本发明适用于HTTP协议下进行数据请求的场景中。

权利要求书

权利要求书1.  一种数据请求的方法,其特征在于,所述方法包括:建立一条通信连接;通过所述通信连接接收客户端上报的数据请求;在对所述数据请求进行响应前,通过所述通信连接继续接收同一客户端或不同客户端上报的其他数据请求;对不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。2.  根据权利要求1所述的方法,其特征在于,所述数据请求携带用于请求数据的数据帧,所述数据帧记录有请求来源、请求序号、数据位和校验位;其中,所述请求来源用于对上报所述数据请求的客户端进行标记;所述请求序号用于对所述数据请求进行标记;所述数据位用于对所述数据请求的具体请求对象进行标记;所述校验位用于记录所述数据请求的校验值。3.  根据权利要求1所述的方法,其特征在于,所述对不同的数据请求分别进行响应,包括:对接收的数据请求划分批次;按所述批次集中响应数据请求。4.  根据权利要求3所述的方法,其特征在于,所述对接收的数据请求划分批次,包括:按照预设的字段长度对不断上报的数据请求进行截取,将总数据长度不超过所述字段长度的多个数据请求划分到同一批次。5.  根据权利要求3所述的方法,其特征在于,所述对接收的数据请求划分批次,包括:按照预设帧数对不断上报的数据请求进行截取,将与所述预设帧数数量相同的数据帧所对应的多个数据请求划分到同一批次;其中,一个数据请求对应一个数据帧。6.  根据权利要求1所述的方法,其特征在于,所述方法进一步包括:除所述通信连接以外,进一步建立至少一条通信连接,所述至少一条通信连接具有与所述通信连接相同的功能。7.  根据权利要求6所述的方法,其特征在于,所述进一步建立至少一条通信连接,包括:建立至少一条通信连接,使得通信连接总数与中央处理器CPU的核数相同。8.  根据权利要求7所述的方法,其特征在于,所述建立至少一条通信连接,使得通信连接总数与中央处理器CPU的核数相同,包括:建立至少一条通信连接,使得通信连接总数与nginx的进程数量相同。9.  一种数据请求的装置,其特征在于,所述装置包括:建立单元,用于建立一条通信连接;接收单元,用于通过所述建立单元建立的所述通信连接接收客户端上报的数据请求;所述接收单元,还用于在对所述数据请求进行响应前,通过所述通信连接继续接收同一客户端或不同客户端上报的其他数据请求;响应单元,用于对所述接收单元接收的不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。10.  一种数据请求的系统,其特征在于,所述系统包括:客户端、服务器;其中所述服务器包含如权利要求9所述的装置;所述客户端,用于:与所述服务器建立一条通信连接;通过所述通信连接向所述服务器上报数据请求;在获得所述服务器的响应之前,通过所述通信连接继续向所述服务器上报其他数据请求;通过所述通信连接接收所述服务器下发的对应不同数据请求的数据内容。

说明书

说明书一种数据请求的方法、装置及系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据请求的方法、装置及系统。
背景技术
HTTP(Hypertext Transfer Protocol,超文本传送协议)是一种可以通过因特网传送万维网文档的数据的协议,其特点在于HTTP是一种请求/响应型的协议,即当客户端向服务器发送数据请求时,会建立一条HTTP连接,服务器通过该HTTP连接接收客户端发送的数据请求并向客户端返回对应的数据内容。客户端在获得服务器的响应后释放该HTTP连接,从而完成一次数据请求任务。当再次发送数据请求时,则需要客户端与服务器之间重新建立HTTP连接。
在上述数据请求的过程中,客户端每次在进行数据请求时都需要建立/释放一次HTTP连接,HTTP连接的建立过于频繁。对此,现有技术中还提供了另一种HTTP连接的建立方式,即HTTP长连接。HTTP连接长连接在得到响应后并不释放,客户端可以基于该连接继续发送请求,由此可以减少客户端建立HTTP连接的次数。
但是,HTTP长连接也存在一定的问题,主要在于:HTTP连接数与客户端的数量是对应的,因此当局域网中的客户端数量较多时,服务器需要保持的连接数量也会较多。通常情况下,网络内HTTP连接的并发数会有一定的限制,例如,对于WINDOWS系统而言,一般情况下,只允许同时建立1024条HTTP连接,在网络优化后也仅能建立7000条HTTP连接;而对于LINUX系统而言,虽然其支持的并发数能够达到20000条,但是也具有一个并发数上限,并不能无限提高并发数。随着局域网规模的不断扩大,有限的并发数愈发无法满足急剧增长的客户端数量,特别是对于多级局域网而言,客户端与中继之间、中继与服务器之间的连接都需要建立HTTP连接,由此一来,局域网内可用的连接数量将会更加紧张。
发明内容
鉴于上述问题,本发明提出的一种数据请求的方法、装置及系统,能够解决HTTP连接的并发数受限的问题。
为解决上述技术问题,第一方面,本发明提供了一种数据请求的方法,该方法包括:
建立一条通信连接;
通过所述通信连接接收客户端上报的数据请求;
在对所述数据请求进行响应前,通过所述通信连接继续接收同一客户端或不同客户端上报的其他数据请求;
对不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。
第二方面,本发明提供了一种数据请求的装置,该装置包括:
建立单元,用于建立一条通信连接;
接收单元,用于通过所述建立单元建立的所述通信连接接收客户端上报的数据请求;
所述接收单元,还用于在对所述数据请求进行响应前,通过所述通信连接继续接收同一客户端或不同客户端上报的其他数据请求;
响应单元,用于对所述接收单元接收的不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。
第三方面,本发明提供了一种数据请求的系统,该系统包括:客户端、服务器;其中所述服务器包含如第二方面所述的装置;
所述客户端,用于:
与所述服务器建立一条通信连接;
通过所述通信连接向所述服务器上报数据请求,
在获得所述服务器的响应之前,通过所述通信连接继续向所述服务器上报其他数据请求;
通过所述通信连接接收所述服务器下发的对应不同数据请求的数据内容。
借由上述技术方案,本发明提供的数据请求的方法、装置及系统,能 够在不同客户端向服务器发送数据请求时,服务器只与客户端建立一条通信连接,通过该通信连接可以接收不同的数据请求,并且对上一个数据请求的响应并不影响对下一个数据请求的接收,即可以边进行响应边接收新的数据请求。与现有技术中需要客户端与服务器之间建立一一对应的通信连接相比,本发明中,在客户端与服务器之间只建立一条通信连接,不同客户端均可以通过该通信连接完成与服务器之间的数据交互,从而达到多路复用的效果,而无需考虑并发数的问题,进而解决了现有技术中通信连接的并发数受限的情况。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了一种数据请求的方法的流程图;
图2示出了另一种数据请求的方法的流程图;
图3示出了一种数据帧的结构示意图;
图4示出了一种建立通信连接的结构示意图;
图5示出了另一种建立通信连接的结构示意图;
图6示出了一种数据请求的装置的结构示意图;
图7示出了另一种数据请求的装置的结构示意图;
图8示出了一种数据请求的系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术 人员。
本发明实施例提供了一种数据请求的方法,本发明可以应用于客户端与服务器组成的系统中,下面以服务器侧为执行主体进行说明,如图1所示,该方法包括:
101、服务器建立一条通信连接。
其中,服务器与不同的客户端建立一条通信连接,该通信连接可以为HTTP(Hypertext Transfer Protocol,超文本传送协议)连接。
示例性的,局域网中有5个客户端,分别为客户端1、客户端2、客户端3、客户端4和客户端5,在5个客户端与服务器之间建立一条通信连接A,5个客户端中的每个客户端均可以通过通信连接A与服务器进行通信,即5个客户端共用通信连接A。
102、服务器通过通信连接接收客户端上报的数据请求。
其中,所有的客户端可以位于一个终端中,也可以位于不同的终端中。该终端可以为台式计算机、笔记本等。例如,有5个客户端,分别为客户端1、客户端2、客户端3、客户端4和客户端5,其中,客户端1和客户端2均位于终端1中,客户端3和客户端5均位于终端2中,客户端4位于终端3中。
需要说明的是,数据请求中包含有请求的来源信息、请求的具体对象以及请求的校验信息等等。例如,数据请求中请求的来源信息为位于终端1中的客户端1,请求的具体对象为一个链接:http://www.google.com,校验信息为X。
103、服务器在对数据请求进行响应前,通过通信连接继续接收同一客户端或不同客户端上报的其他数据请求。
其中,服务器对数据请求的响应并不影响对其他数据请求的接收,服务器可以在对已接收的数据请求进行响应前,接收其他数据请求,并且该数据请求并不对客户端进行限定,即可以与上一个数据请求同属一个客户端,也可以属于不同的客户端。
例如,当前,服务器接收的数据请求为客户端1的数据请求1,则在未对数据请求1进行响应时,服务器便可以接收客户端1的数据请求2,或者 接收客户端2的数据请求1。
104、服务器对不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。
其中,在服务器向客户端回复数据请求的响应时,可以将携带数据请求的数据内容的响应信息发送给客户端。
在步骤103中提到,可以在对上一个数据请求进行响应前,接收其他数据请求,在实际应用中,可以一边对上一个数据请求进行响应,一边接收下一个数据请求。例如,服务器向客户端1发送响应1的同时,可以接收客户端2的数据请求1。
此外,还可以先接收第一批数据请求,再对第一批数据请求中的不同数据请求分别进行响应,并且在对第一批数据请求进行响应的同时,还可以接收第二批数据请求。例如,当前服务器接收的数据请求为客户端1的数据请求1、数据请求2,客户端2的数据请求1,以及客户端3的数据请求1,则分别对其进行响应,同时可以依次接收客户端2发送的数据请求2,客户端4发送的数据请求1。
需要说明的是,服务器对不同数据请求进行响应的实际原则是以接收数据请求的先后顺序为依据,分别对其进行响应。例如,服务器按顺序接收的数据请求依次为客户端2的第3个数据请求、客户端4的第1个数据请求、客户端1的第5个数据请求和客户端10的第8个数据请求,因此服务器对接收的4个数据请求的响应顺序也为客户端2的第3个数据请求、客户端4的第1个数据请求、客户端1的第5个数据请求和客户端10的第8个数据请求。
本发明实施例提供的数据请求的方法,能够在不同客户端向服务器发送数据请求时,服务器只与客户端建立一条通信连接,通过该通信连接可以接收不同的数据请求,并且对上一个数据请求的响应并不影响对下一个数据请求的接收,即可以边进行响应边接收新的数据请求。与现有技术中需要客户端与服务器之间建立一一对应的通信连接相比,本发明中,在客户端与服务器之间只建立一条通信连接,不同客户端均可以通过该通信连接完成与服务器之间的数据交互,从而达到多路复用的效果,而无需考虑 并发数的问题,进而解决了现有技术中通信连接的并发数受限的情况。
进一步的,作为对图1所示方法的细化及扩展,本发明的另一个实施例还提供了一种数据请求的方法,如图2所示,该方法包括:
201、服务器建立一条通信连接。
本步骤的实现方式与图1中步骤101的实现方式相同,此处不再赘述。
202、服务器通过通信连接接收客户端上报的数据请求。
数据请求携带用于请求数据的数据帧,该数据帧记录有请求来源、请求序号、数据位和校验位。其中,请求来源用于对上报数据请求的客户端进行标记;请求序号用于对数据请求进行标记;数据位用于对数据请求的具体请求对象进行标记,该请求对象可以为一个链接地址,也可以为其他信息;校验位用于记录数据请求的校验值,当服务器接收到数据请求后,计算出相应的校验值,并与数据请求中记录的校验值进行比较,若相同,则服务器接收到的数据请求正确,若不相同,则服务器接收到的数据请求错误。
示例性的,图3为客户端12向服务器发送的第45个数据请求中的数据帧的具体表现形式。其中,数据位中记录有链接http://www.google.com。第45个数据请求的校验位为X,当服务器接收到该数据请求时,会对数据请求中携带的数据帧中的内容进行计算而得出校验值Y,将Y与X进行比较,若X=Y,则接收的数据请求正确,若X≠Y,则接收的数据请求错误。
需要说明的是,服务器与客户端两侧计算校验值的使用方法相同,基于数据请求的字段内容计算校验值,如果数据请求在客户端与服务器两侧字段内容没有变化,那么两侧计算出的校验值应当相同,所以我们可以通过这种机制防止数据请求在向服务器上报的过程中被篡改。
本步骤中,通过在数据帧中记录数据请求的请求来源和请求序号,可以对数据请求做唯一的标识,从而可以保证服务器对不同的数据请求作出与之对应的响应,向正确的客户端反馈数据内容,进而避免串包现象发生;通过在数据帧中记录校验值,可以在保证数据请求传输正确的情况下,对数据请求进行响应,由此防止第三方对客户端上报的数据请求进行篡改。
进一步的,服务器在向客户端下发数据内容时,也可以根据数据内容 的属性信息(如名称、大小、版本等)计算出一个新的校验值,并将其与数据内容一同下发给客户端,由客户端来验证该数据内容是否在下发过程中被窜改。其中,客户端验证数据内容是否被窜改的验证机制与前述验证机制相同,在此不再赘述。
203、服务器在对数据请求进行响应前,通过通信连接继续接收同一客户端或不同客户端上报的其他数据请求。
本步骤的实现方式与图1中步骤103的实现方式相同,此处不再赘述。
现有技术中,当服务器接收到数据请求时,就会对其进行响应,即每接收到一个数据请求就会响应一次,从而存在服务器响应频繁的现象,进而频繁占用服务器的资源。因此,可选的,为了解决服务器响应频繁的问题,本实施例提供了另一种数据请求响应的方案,具体实现方式如步骤204至步骤205:
204、服务器对接收的数据请求划分批次。
可选的,本步骤中对接收到的数据请求进行批次的划分可以采用以下两种方式。
方式一:
按照预设的字段长度对不断上报的数据请求进行截取,将总数据长度不超过字段长度的多个数据请求划分到同一批次。
其中,服务器不断接收相同或不同客户端上报的数据请求,若接收到的数据请求的总数据长度大于或等于预设的字段长度,则截取部分数据请求,使其在均为完整的数据请求的前提下,总数据长度小于或等于预设的字段长度,并将其划分为同一批次的数据请求。
示例性的,当前,服务器接收到5个数据请求,其中,数据请求1的数据长度为250,数据请求2的数据长度为240,数据请求3的数据长度为256,数据请求4的数据长度为238,数据请求5的数据长度为255,所以5个数据请求的总数据长度为1239,数据请求1到数据请求4的总数据长度为984,而预设的字段长度为1000,所以将数据请求1到数据请求4划分为同一批次,将数据请求5划分为下一个批次。
方式二:
按照预设帧数对不断上报的数据请求进行截取,将与预设帧数数量相同的数据帧所对应的多个数据请求划分到同一批次。
其中,一个数据请求对应一个数据帧。服务器不断接收数据请求,当接收的数据请求的个数与预设帧数相同时,将当前所接收的数据请求划分为同一批次的数据请求,而将下一批与预设帧数相同的多个数据请求划分为下一批次的数据请求。
例如,预设帧数为10,若当前接收到的数据请求的个数为10,则将已接收的10个数据请求划分到同一批次,而之后接收的第11个数据请求至第20个数据请求则划分到下一批次,依次采取该方法进行批次的划分。
205、服务器按批次集中响应数据请求,并下发对应不同数据请求的数据内容。
其中,当服务器所接收的数据请求的总数据长度未达到预设的字段长度,或者所接收的数据请求的个数未达到预设帧数时,继续接收之后的数据请求,直至满足上述条件,将当前批次的划分完成时,才对该批次的数据请求进行集中响应,并向该批次的数据请求对应的客户端发送对应的数据内容。
以数据帧的划分方式为例进行具体说明:
已知预设帧数为15,当前服务器接收的数据请求的个数为13,则此时服务器不对已接收的13个数据请求进行响应,而是继续等待,直至接收到15个数据请求,才进行集中响应,并下发对应的数据请求的数据内容。
需要说明的是,与图1中响应不同数据请求的先后机制相类似的,本实施例中,服务器对不同批次数据请求的响应顺序由各批次上报的先后顺序来决定。
在实际应用中,在以上方法实施例的基础上,为了进一步加快数据请求传送的速度,还可以在已建立的通信连接的基础上,再建立至少一条通信连接,建立完成后,所有的通信连接并发执行任务。其中,进一步建立的至少一条通信连接与已建立的通信连接的具体相同的功能。
需要说明的是,进一步建立的至少一条通信连接的数量是有限的。进一步建立至少一条通信连接时,需要使得通信连接的总数与服务器的CPU (Central Processing Unit,中央处理器)的核数相同。
例如,如图4所示,CPU的核数为4,则在客户端与服务器之间可以建立4条通信连接,其中,假设客户端的个数为40,通信连接1是客户端1至客户端10共用的一条连接,通信连接2是客户端11至客户端20共用的一条连接,通信连接3是客户端21至客户端30共用的一条连接,通信连接4是客户端31至客户端40共用的一条连接。
实际应用中,当本实施例的方案应用于nginx系统中时,也可以直接将通信连接的数量设定为与nginx模块的进程数相同的数量。这是由于,在nginx系统中,当nginx启动时,会按照CPU的核数建立进程,即建立与CPU核数相同的进程。因此,在nginx系统中,也可以直接将通信连接的数量设置为nginx进程的数量,其效果与前述按照CPU数量建立通信连接的效果相同。
此外,以上所述方法实施例不仅可以应用于客户端与服务器直接通过网络进行数据交互的场景中,还可以应用于具有中继场景中,例如,在客户端与服务器之间有个二级中心,该二级中心用于管理所有的客户端,并与服务器之间进行通信。又如,在局域网内,设置了一个代理服务器,则用户通过客户端访问服务器时,需要知道代理服务器的地址、端口等详细资料,从而通过代理服务器才可以访问服务器。
示例性的,如图5所示,在客户端与服务器之间有个代理服务器,则在客户端与代理服务器之间建立一条通信连接,在代理服务器与服务器之间建立一条通信连接,不同客户端通过共用两条通信连接,便可以完成与服务器之间的数据交互。
需要说明的是,上述场景中,也可以建立与CPU核数或nginx的进程数相同的少数几条通信连接,在此不作限定。
现有技术中,由于客户端与服务器之间建立一一对应的通信连接,所以当客户端与服务器之间增加中继时,则通信连接需要成倍的增加,使得服务器需要维护的并发数更多,而本实施例只是在客户端与中继中间、中继与服务器之间分别建立少数的通信连接,从而避免了并发数受限的问题。
进一步的,作为对上述各方法实施例的实现,在本发明的另一个实施 例中,还提供了一种数据请求的装置,如图6所示,该装置包括:建立单元31、接收单元32、响应单元33。其中,
建立单元31,用于建立一条通信连接;
接收单元32,用于通过建立单元31建立的通信连接接收客户端上报的数据请求;
接收单元32,还用于在对数据请求进行响应前,通过通信连接继续接收同一客户端或不同客户端上报的其他数据请求;
响应单元33,用于对接收单元32接收的不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。
进一步的,接收单元32接收的数据请求携带用于请求数据的数据帧,数据帧记录有请求来源、请求序号、数据位和校验位;
其中,请求来源用于对上报数据请求的客户端进行标记;
请求序号用于对数据请求进行标记;
数据位用于对数据请求的具体请求对象进行标记;
校验位用于记录数据请求的校验值。
进一步的,如图7所示,响应单元33,包括:
划分模块331,用于对接收的数据请求划分批次;
响应模块332,用于按划分模块331划分的批次集中响应数据请求。
进一步的,划分模块331,用于按照预设的字段长度对不断上报的数据请求进行截取,将总数据长度不超过字段长度的多个数据请求划分到同一批次。
进一步的,划分模块331,用于按照预设帧数对不断上报的数据请求进行截取,将与预设帧数数量相同的数据帧所对应的多个数据请求划分到同一批次;
其中,一个数据请求对应一个数据帧。
进一步的,建立单元31,还用于进一步建立至少一条通信连接,至少一条通信连接具有与建立单元31建立的通信连接相同的功能。
进一步的,建立单元31,用于建立至少一条通信连接,使得通信连接总数与中央处理器CPU的核数相同。
进一步的,建立单元31,用于建立至少一条通信连接,使得通信连接总数与nginx的进程数量相同。
进一步的,建立单元31建立的通信连接为超文本传送协议HTTP连接。
本发明实施例提供的数据请求的装置,能够在不同客户端向服务器发送数据请求时,服务器只与客户端建立一条通信连接,通过该通信连接可以接收不同的数据请求,并且对上一个数据请求的响应并不影响对下一个数据请求的接收,即可以边进行响应边接收新的数据请求。与现有技术中需要客户端与服务器之间建立一一对应的通信连接相比,本发明中,在客户端与服务器之间只建立一条通信连接,不同客户端均可以通过该通信连接完成与服务器之间的数据交互,从而达到多路复用的效果,而无需考虑并发数的问题,进而解决了现有技术中通信连接的并发数受限的情况。
通过在数据帧中记录数据请求的请求来源和请求序号,可以对数据请求做唯一的标识,从而可以保证服务器对不同的数据请求作出与之对应的响应,向正确的客户端反馈数据内容,进而避免串包现象发生;通过在数据帧中记录校验值,可以在保证数据请求传输正确的情况下,对数据请求进行响应,由此防止第三方对客户端上报的数据请求进行篡改。
现有技术中,由于客户端与服务器之间建立一一对应的通信连接,所以当客户端与服务器之间增加中继时,则通信连接需要成倍的增加,使得服务器需要维护的并发数更多,而本实施例只是在客户端与中继中间、中继与服务器之间分别建立少数的通信连接,从而避免了并发数受限的问题。
进一步的,在本发明的另一个实施例中,还提供了一种数据请求的系统,如图8所示,系统包括:客户端41、服务器42;其中服务器42包含图6至图7的装置;
客户端41,用于:
与服务器42建立一条通信连接;
通过通信连接向服务器42上报数据请求,
在获得服务器42的响应之前,通过通信连接继续向服务器42上报其他数据请求;
通过通信连接接收服务器42下发的对应不同数据请求的数据内容。
本发明实施例提供的数据请求的系统,能够在不同客户端向服务器发送数据请求时,服务器只与客户端建立一条通信连接,通过该通信连接可以接收不同的数据请求,并且对上一个数据请求的响应并不影响对下一个数据请求的接收,即可以边进行响应边接收新的数据请求。与现有技术中需要客户端与服务器之间建立一一对应的通信连接相比,本发明中,在客户端与服务器之间只建立一条通信连接,不同客户端均可以通过该通信连接完成与服务器之间的数据交互,从而达到多路复用的效果,而无需考虑并发数的问题,进而解决了现有技术中通信连接的并发数受限的情况。
通过在数据帧中记录数据请求的请求来源和请求序号,可以对数据请求做唯一的标识,从而可以保证服务器对不同的数据请求作出与之对应的响应,向正确的客户端反馈数据内容,进而避免串包现象发生;通过在数据帧中记录校验值,可以在保证数据请求传输正确的情况下,对数据请求进行响应,由此防止第三方对客户端上报的数据请求进行篡改。
现有技术中,由于客户端与服务器之间建立一一对应的通信连接,所以当客户端与服务器之间增加中继时,则通信连接需要成倍的增加,使得服务器需要维护的并发数更多,而本实施例只是在客户端与中继中间、中继与服务器之间分别建立少数的通信连接,从而避免了并发数受限的问题。
本发明的实施例公开了:
A1、一种数据请求的方法,所述方法包括:
建立一条通信连接;
通过所述通信连接接收客户端上报的数据请求;
在对所述数据请求进行响应前,通过所述通信连接继续接收同一客户端或不同客户端上报的其他数据请求;
对不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。
A2、根据A1所述的方法,所述数据请求携带用于请求数据的数据帧,所述数据帧记录有请求来源、请求序号、数据位和校验位;
其中,所述请求来源用于对上报所述数据请求的客户端进行标记;
所述请求序号用于对所述数据请求进行标记;
所述数据位用于对所述数据请求的具体请求对象进行标记;
所述校验位用于记录所述数据请求的校验值。
A3、根据A1所述的方法,所述对不同的数据请求分别进行响应,包括:
对接收的数据请求划分批次;
按所述批次集中响应数据请求。
A4、根据A3所述的方法,所述对接收的数据请求划分批次,包括:
按照预设的字段长度对不断上报的数据请求进行截取,将总数据长度不超过所述字段长度的多个数据请求划分到同一批次。
A5、根据A3所述的方法,所述对接收的数据请求划分批次,包括:
按照预设帧数对不断上报的数据请求进行截取,将与所述预设帧数数量相同的数据帧所对应的多个数据请求划分到同一批次;
其中,一个数据请求对应一个数据帧。
A6、根据A1所述的方法,所述方法进一步包括:
除所述通信连接以外,进一步建立至少一条通信连接,所述至少一条通信连接具有与所述通信连接相同的功能。
A7、根据A6所述的方法,所述进一步建立至少一条通信连接,包括:
建立至少一条通信连接,使得通信连接总数与中央处理器CPU的核数相同。
A8、根据A7所述的方法,所述建立至少一条通信连接,使得通信连接总数与中央处理器CPU的核数相同,包括:
建立至少一条通信连接,使得通信连接总数与nginx的进程数量相同。
A9、根据A1至A8中任一项所述的方法,所述通信连接为超文本传送协议HTTP连接。
B10、一种数据请求的装置,所述装置包括:
建立单元,用于建立一条通信连接;
接收单元,用于通过所述建立单元建立的所述通信连接接收客户端上报的数据请求;
所述接收单元,还用于在对所述数据请求进行响应前,通过所述通信 连接继续接收同一客户端或不同客户端上报的其他数据请求;
响应单元,用于对所述接收单元接收的不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。
B11、根据B10所述的装置,所述接收单元接收的所述数据请求携带用于请求数据的数据帧,所述数据帧记录有请求来源、请求序号、数据位和校验位;
其中,所述请求来源用于对上报所述数据请求的客户端进行标记;
所述请求序号用于对所述数据请求进行标记;
所述数据位用于对所述数据请求的具体请求对象进行标记;
所述校验位用于记录所述数据请求的校验值。
B12、根据B10所述的装置,所述响应单元,包括:
划分模块,用于对接收的数据请求划分批次;
响应模块,用于按所述划分模块划分的批次集中响应数据请求。
B13、根据B12所述的装置,所述划分模块,用于按照预设的字段长度对不断上报的数据请求进行截取,将总数据长度不超过所述字段长度的多个数据请求划分到同一批次。
B14、根据B12所述的装置,所述划分模块,用于按照预设帧数对不断上报的数据请求进行截取,将与所述预设帧数数量相同的数据帧所对应的多个数据请求划分到同一批次;
其中,一个数据请求对应一个数据帧。
B15、根据B12所述的装置,所述装置进一步包括:
所述建立单元,还用于进一步建立至少一条通信连接,所述至少一条通信连接具有与所述建立单元建立的所述通信连接相同的功能。
B16、根据B15所述的装置,所述建立单元,用于建立至少一条通信连接,使得通信连接总数与中央处理器CPU的核数相同。
B17、根据B16所述的装置,所述建立单元,用于建立至少一条通信连接,使得通信连接总数与nginx的进程数量相同。
B18、根据B10至B17中任一项所述的装置,所述建立单元建立的通信连接为超文本传送协议HTTP连接。
C19、一种数据请求的系统,所述系统包括:客户端、服务器;其中所述服务器包含如B10至B18中任一项所述的装置;
所述客户端,用于:
与所述服务器建立一条通信连接;
通过所述通信连接向所述服务器上报数据请求,
在获得所述服务器的响应之前,通过所述通信连接继续向所述服务器上报其他数据请求;
通过所述通信连接接收所述服务器下发的对应不同数据请求的数据内容。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将 该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种网络通讯的方法、装置及系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限 制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

一种数据请求的方法、装置及系统.pdf_第1页
第1页 / 共18页
一种数据请求的方法、装置及系统.pdf_第2页
第2页 / 共18页
一种数据请求的方法、装置及系统.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《一种数据请求的方法、装置及系统.pdf》由会员分享,可在线阅读,更多相关《一种数据请求的方法、装置及系统.pdf(18页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201410776946.7(22)申请日 2014.12.15H04L 29/06(2006.01)(71)申请人 北京奇虎科技有限公司地址 100088 北京市西城区新街口外大街28 号 D 座 112 室(德胜园区)申请人 奇智软件(北京)有限公司(72)发明人 王院生(74)专利代理机构 北京鼎佳达知识产权代理事务所 ( 普通合伙 ) 11348代理人 王伟锋 刘铁生(54) 发明名称一种数据请求的方法、装置及系统(57) 摘要本发明公开了一种数据请求的方法、装置及系统,涉及互联网技术领域,能够解决 HTTP 连接的并发数受限的问。

2、题。本发明的方法,包括 :建立一条通信连接 ;通过通信连接接收客户端上报的数据请求;在对数据请求进行响应前,通过通信连接继续接收同一客户端或不同客户端上报的其他数据请求;对不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。本发明适用于 HTTP 协议下进行数据请求的场景中。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书11页 附图4页(10)申请公布号 CN 104468594 A(43)申请公布日 2015.03.25CN 104468594 A1/2 页21.一种数据请求的方法,其特征在于,所述方法包括 :建立一条通信连接 。

3、;通过所述通信连接接收客户端上报的数据请求 ;在对所述数据请求进行响应前,通过所述通信连接继续接收同一客户端或不同客户端上报的其他数据请求 ;对不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。2.根据权利要求 1 所述的方法,其特征在于,所述数据请求携带用于请求数据的数据帧,所述数据帧记录有请求来源、请求序号、数据位和校验位 ;其中,所述请求来源用于对上报所述数据请求的客户端进行标记 ;所述请求序号用于对所述数据请求进行标记 ;所述数据位用于对所述数据请求的具体请求对象进行标记 ;所述校验位用于记录所述数据请求的校验值。3.根据权利要求 1 所述的方法,其特征在于,所述对不同的数。

4、据请求分别进行响应,包括:对接收的数据请求划分批次 ;按所述批次集中响应数据请求。4.根据权利要求 3 所述的方法,其特征在于,所述对接收的数据请求划分批次,包括 :按照预设的字段长度对不断上报的数据请求进行截取,将总数据长度不超过所述字段长度的多个数据请求划分到同一批次。5.根据权利要求 3 所述的方法,其特征在于,所述对接收的数据请求划分批次,包括 :按照预设帧数对不断上报的数据请求进行截取,将与所述预设帧数数量相同的数据帧所对应的多个数据请求划分到同一批次 ;其中,一个数据请求对应一个数据帧。6.根据权利要求 1 所述的方法,其特征在于,所述方法进一步包括 :除所述通信连接以外,进一步建。

5、立至少一条通信连接,所述至少一条通信连接具有与所述通信连接相同的功能。7.根据权利要求 6 所述的方法,其特征在于,所述进一步建立至少一条通信连接,包括:建立至少一条通信连接,使得通信连接总数与中央处理器 CPU 的核数相同。8.根据权利要求 7 所述的方法,其特征在于,所述建立至少一条通信连接,使得通信连接总数与中央处理器 CPU 的核数相同,包括 :建立至少一条通信连接,使得通信连接总数与 nginx 的进程数量相同。9.一种数据请求的装置,其特征在于,所述装置包括 :建立单元,用于建立一条通信连接 ;接收单元,用于通过所述建立单元建立的所述通信连接接收客户端上报的数据请求 ;所述接收单元。

6、,还用于在对所述数据请求进行响应前,通过所述通信连接继续接收同一客户端或不同客户端上报的其他数据请求 ;响应单元,用于对所述接收单元接收的不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。权 利 要 求 书CN 104468594 A2/2 页310.一种数据请求的系统,其特征在于,所述系统包括 :客户端、服务器 ;其中所述服务器包含如权利要求 9 所述的装置 ;所述客户端,用于 :与所述服务器建立一条通信连接 ;通过所述通信连接向所述服务器上报数据请求 ;在获得所述服务器的响应之前,通过所述通信连接继续向所述服务器上报其他数据请求;通过所述通信连接接收所述服务器下发的对应不同数据。

7、请求的数据内容。权 利 要 求 书CN 104468594 A1/11 页4一种数据请求的方法、装置及系统技术领域0001 本发明涉及互联网技术领域,尤其涉及一种数据请求的方法、装置及系统。背景技术0002 HTTP(Hypertext Transfer Protocol,超文本传送协议 ) 是一种可以通过因特网传送万维网文档的数据的协议,其特点在于 HTTP 是一种请求 / 响应型的协议,即当客户端向服务器发送数据请求时,会建立一条HTTP连接,服务器通过该HTTP连接接收客户端发送的数据请求并向客户端返回对应的数据内容。客户端在获得服务器的响应后释放该 HTTP连接,从而完成一次数据请求任。

8、务。当再次发送数据请求时,则需要客户端与服务器之间重新建立 HTTP 连接。0003 在上述数据请求的过程中,客户端每次在进行数据请求时都需要建立 / 释放一次HTTP 连接,HTTP 连接的建立过于频繁。对此,现有技术中还提供了另一种 HTTP 连接的建立方式,即 HTTP 长连接。HTTP 连接长连接在得到响应后并不释放,客户端可以基于该连接继续发送请求,由此可以减少客户端建立 HTTP 连接的次数。0004 但是,HTTP 长连接也存在一定的问题,主要在于 :HTTP 连接数与客户端的数量是对应的,因此当局域网中的客户端数量较多时,服务器需要保持的连接数量也会较多。通常情况下,网络内 H。

9、TTP 连接的并发数会有一定的限制,例如,对于 WINDOWS 系统而言,一般情况下,只允许同时建立 1024 条 HTTP 连接,在网络优化后也仅能建立 7000 条 HTTP 连接 ;而对于 LINUX 系统而言,虽然其支持的并发数能够达到 20000 条,但是也具有一个并发数上限,并不能无限提高并发数。随着局域网规模的不断扩大,有限的并发数愈发无法满足急剧增长的客户端数量,特别是对于多级局域网而言,客户端与中继之间、中继与服务器之间的连接都需要建立 HTTP 连接,由此一来,局域网内可用的连接数量将会更加紧张。发明内容0005 鉴于上述问题,本发明提出的一种数据请求的方法、装置及系统,能。

10、够解决 HTTP连接的并发数受限的问题。0006 为解决上述技术问题,第一方面,本发明提供了一种数据请求的方法,该方法包括:0007 建立一条通信连接 ;0008 通过所述通信连接接收客户端上报的数据请求 ;0009 在对所述数据请求进行响应前,通过所述通信连接继续接收同一客户端或不同客户端上报的其他数据请求 ;0010 对不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。0011 第二方面,本发明提供了一种数据请求的装置,该装置包括 :0012 建立单元,用于建立一条通信连接 ;0013 接收单元,用于通过所述建立单元建立的所述通信连接接收客户端上报的数据请说 明 书CN 104。

11、468594 A2/11 页5求;0014 所述接收单元,还用于在对所述数据请求进行响应前,通过所述通信连接继续接收同一客户端或不同客户端上报的其他数据请求 ;0015 响应单元,用于对所述接收单元接收的不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。0016 第三方面,本发明提供了一种数据请求的系统该系统包括 :客户端、服务器 ;其中所述服务器包含如第二方面所述的装置 ;0017 所述客户端,用于 :0018 与所述服务器建立一条通信连接 ;0019 通过所述通信连接向所述服务器上报数据请求,0020 在获得所述服务器的响应之前,通过所述通信连接继续向所述服务器上报其他数据请求。

12、 ;0021 通过所述通信连接接收所述服务器下发的对应不同数据请求的数据内容。0022 借由上述技术方案,本发明提供的数据请求的方法、装置及系统,能够在不同客户端向服务器发送数据请求时,服务器只与客户端建立一条通信连接,通过该通信连接可以接收不同的数据请求,并且对上一个数据请求的响应并不影响对下一个数据请求的接收,即可以边进行响应边接收新的数据请求。与现有技术中需要客户端与服务器之间建立一一对应的通信连接相比,本发明中,在客户端与服务器之间只建立一条通信连接,不同客户端均可以通过该通信连接完成与服务器之间的数据交互,从而达到多路复用的效果,而无需考虑并发数的问题,进而解决了现有技术中通信连接的。

13、并发数受限的情况。0023 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明0024 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中 :0025 图 1 示出了一种数据请求的方法的流程图 ;0026 图 2 示出了另一种数据请求的方法的流程图 ;0027 图 3 示出了一种数据帧的。

14、结构示意图 ;0028 图 4 示出了一种建立通信连接的结构示意图 ;0029 图 5 示出了另一种建立通信连接的结构示意图 ;0030 图 6 示出了一种数据请求的装置的结构示意图 ;0031 图 7 示出了另一种数据请求的装置的结构示意图 ;0032 图 8 示出了一种数据请求的系统的结构示意图。具体实施方式0033 下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明说 明 书CN 104468594 A3/11 页6的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的。

15、范围完整的传达给本领域的技术人员。0034 本发明实施例提供了一种数据请求的方法,本发明可以应用于客户端与服务器组成的系统中,下面以服务器侧为执行主体进行说明,如图 1 所示,该方法包括 :0035 101、服务器建立一条通信连接。0036 其中,服务器与不同的客户端建立一条通信连接,该通信连接可以为HTTP(Hypertext Transfer Protocol,超文本传送协议 ) 连接。0037 示例性的,局域网中有 5 个客户端,分别为客户端 1、客户端 2、客户端 3、客户端 4和客户端5,在5个客户端与服务器之间建立一条通信连接A,5个客户端中的每个客户端均可以通过通信连接 A 与服。

16、务器进行通信,即 5 个客户端共用通信连接 A。0038 102、服务器通过通信连接接收客户端上报的数据请求。0039 其中,所有的客户端可以位于一个终端中,也可以位于不同的终端中。该终端可以为台式计算机、笔记本等。例如,有5个客户端,分别为客户端1、客户端2、客户端3、客户端4 和客户端 5,其中,客户端 1 和客户端 2 均位于终端 1 中,客户端 3 和客户端 5 均位于终端2 中,客户端 4 位于终端 3 中。0040 需要说明的是,数据请求中包含有请求的来源信息、请求的具体对象以及请求的校验信息等等。例如,数据请求中请求的来源信息为位于终端 1 中的客户端 1,请求的具体对象为一个链。

17、接 :http :/,校验信息为 X。0041 103、服务器在对数据请求进行响应前,通过通信连接继续接收同一客户端或不同客户端上报的其他数据请求。0042 其中,服务器对数据请求的响应并不影响对其他数据请求的接收,服务器可以在对已接收的数据请求进行响应前,接收其他数据请求,并且该数据请求并不对客户端进行限定,即可以与上一个数据请求同属一个客户端,也可以属于不同的客户端。0043 例如,当前,服务器接收的数据请求为客户端1的数据请求1,则在未对数据请求1进行响应时,服务器便可以接收客户端 1 的数据请求 2,或者接收客户端 2 的数据请求 1。0044 104、服务器对不同的数据请求分别进行响。

18、应,并下发对应不同数据请求的数据内容。0045 其中,在服务器向客户端回复数据请求的响应时,可以将携带数据请求的数据内容的响应信息发送给客户端。0046 在步骤 103 中提到,可以在对上一个数据请求进行响应前,接收其他数据请求,在实际应用中,可以一边对上一个数据请求进行响应,一边接收下一个数据请求。例如,服务器向客户端 1 发送响应 1 的同时,可以接收客户端 2 的数据请求 1。0047 此外,还可以先接收第一批数据请求,再对第一批数据请求中的不同数据请求分别进行响应,并且在对第一批数据请求进行响应的同时,还可以接收第二批数据请求。例如,当前服务器接收的数据请求为客户端 1 的数据请求 1。

19、、数据请求 2,客户端 2 的数据请求1,以及客户端 3 的数据请求 1,则分别对其进行响应,同时可以依次接收客户端 2 发送的数据请求 2,客户端 4 发送的数据请求 1。0048 需要说明的是,服务器对不同数据请求进行响应的实际原则是以接收数据请求的说 明 书CN 104468594 A4/11 页7先后顺序为依据,分别对其进行响应。例如,服务器按顺序接收的数据请求依次为客户端 2的第 3 个数据请求、客户端 4 的第 1 个数据请求、客户端 1 的第 5 个数据请求和客户端 10的第 8 个数据请求,因此服务器对接收的 4 个数据请求的响应顺序也为客户端 2 的第 3 个数据请求、客户端。

20、 4 的第 1 个数据请求、客户端 1 的第 5 个数据请求和客户端 10 的第 8 个数据请求。0049 本发明实施例提供的数据请求的方法,能够在不同客户端向服务器发送数据请求时,服务器只与客户端建立一条通信连接,通过该通信连接可以接收不同的数据请求,并且对上一个数据请求的响应并不影响对下一个数据请求的接收,即可以边进行响应边接收新的数据请求。与现有技术中需要客户端与服务器之间建立一一对应的通信连接相比,本发明中,在客户端与服务器之间只建立一条通信连接,不同客户端均可以通过该通信连接完成与服务器之间的数据交互,从而达到多路复用的效果,而无需考虑并发数的问题,进而解决了现有技术中通信连接的并发。

21、数受限的情况。0050 进一步的,作为对图 1 所示方法的细化及扩展,本发明的另一个实施例还提供了一种数据请求的方法,如图 2 所示,该方法包括 :0051 201、服务器建立一条通信连接。0052 本步骤的实现方式与图 1 中步骤 101 的实现方式相同,此处不再赘述。0053 202、服务器通过通信连接接收客户端上报的数据请求。0054 数据请求携带用于请求数据的数据帧,该数据帧记录有请求来源、请求序号、数据位和校验位。其中,请求来源用于对上报数据请求的客户端进行标记 ;请求序号用于对数据请求进行标记 ;数据位用于对数据请求的具体请求对象进行标记,该请求对象可以为一个链接地址,也可以为其他。

22、信息 ;校验位用于记录数据请求的校验值,当服务器接收到数据请求后,计算出相应的校验值,并与数据请求中记录的校验值进行比较,若相同,则服务器接收到的数据请求正确,若不相同,则服务器接收到的数据请求错误。0055 示例性的,图 3 为客户端 12 向服务器发送的第 45 个数据请求中的数据帧的具体表现形式。其中,数据位中记录有链接 http :/。第 45 个数据请求的校验位为 X,当服务器接收到该数据请求时,会对数据请求中携带的数据帧中的内容进行计算而得出校验值 Y,将 Y 与 X 进行比较,若 X Y,则接收的数据请求正确,若 X Y,则接收的数据请求错误。0056 需要说明的是,服务器与客户。

23、端两侧计算校验值的使用方法相同,基于数据请求的字段内容计算校验值,如果数据请求在客户端与服务器两侧字段内容没有变化那么两侧计算出的校验值应当相同,所以我们可以通过这种机制防止数据请求在向服务器上报的过程中被篡改。0057 本步骤中,通过在数据帧中记录数据请求的请求来源和请求序号,可以对数据请求做唯一的标识,从而可以保证服务器对不同的数据请求作出与之对应的响应,向正确的客户端反馈数据内容,进而避免串包现象发生 ;通过在数据帧中记录校验值,可以在保证数据请求传输正确的情况下,对数据请求进行响应,由此防止第三方对客户端上报的数据请求进行篡改。0058 进一步的,服务器在向客户端下发数据内容时,也可以。

24、根据数据内容的属性信息( 如名称、大小、版本等 ) 计算出一个新的校验值,并将其与数据内容一同下发给客户端,由说 明 书CN 104468594 A5/11 页8客户端来验证该数据内容是否在下发过程中被窜改。其中,客户端验证数据内容是否被窜改的验证机制与前述验证机制相同,在此不再赘述。0059 203、服务器在对数据请求进行响应前,通过通信连接继续接收同一客户端或不同客户端上报的其他数据请求。0060 本步骤的实现方式与图 1 中步骤 103 的实现方式相同,此处不再赘述。0061 现有技术中,当服务器接收到数据请求时,就会对其进行响应,即每接收到一个数据请求就会响应一次,从而存在服务器响应频。

25、繁的现象,进而频繁占用服务器的资源。因此,可选的,为了解决服务器响应频繁的问题本实施例提供了另一种数据请求响应的方案,具体实现方式如步骤 204 至步骤 205 :0062 204、服务器对接收的数据请求划分批次。0063 可选的,本步骤中对接收到的数据请求进行批次的划分可以采用以下两种方式。0064 方式一 :0065 按照预设的字段长度对不断上报的数据请求进行截取,将总数据长度不超过字段长度的多个数据请求划分到同一批次。0066 其中,服务器不断接收相同或不同客户端上报的数据请求若接收到的数据请求的总数据长度大于或等于预设的字段长度,则截取部分数据请求,使其在均为完整的数据请求的前提下,总。

26、数据长度小于或等于预设的字段长度,并将其划分为同一批次的数据请求。0067 示例性的,当前,服务器接收到5个数据请求,其中,数据请求1的数据长度为250,数据请求2的数据长度为240,数据请求3的数据长度为256,数据请求4的数据长度为238,数据请求 5 的数据长度为 255,所以 5 个数据请求的总数据长度为 1239,数据请求 1 到数据请求 4 的总数据长度为 984,而预设的字段长度为 1000,所以将数据请求 1 到数据请求 4 划分为同一批次,将数据请求 5 划分为下一个批次。0068 方式二 :0069 按照预设帧数对不断上报的数据请求进行截取,将与预设帧数数量相同的数据帧所对。

27、应的多个数据请求划分到同一批次。0070 其中,一个数据请求对应一个数据帧。服务器不断接收数据请求,当接收的数据请求的个数与预设帧数相同时,将当前所接收的数据请求划分为同一批次的数据请求,而将下一批与预设帧数相同的多个数据请求划分为下一批次的数据请求。0071 例如,预设帧数为 10,若当前接收到的数据请求的个数为 10,则将已接收的 10 个数据请求划分到同一批次,而之后接收的第 11 个数据请求至第 20 个数据请求则划分到下一批次,依次采取该方法进行批次的划分。0072 205、服务器按批次集中响应数据请求,并下发对应不同数据请求的数据内容。0073 其中,当服务器所接收的数据请求的总数。

28、据长度未达到预设的字段长度,或者所接收的数据请求的个数未达到预设帧数时,继续接收之后的数据请求,直至满足上述条件,将当前批次的划分完成时,才对该批次的数据请求进行集中响应,并向该批次的数据请求对应的客户端发送对应的数据内容。0074 以数据帧的划分方式为例进行具体说明 :0075 已知预设帧数为 15,当前服务器接收的数据请求的个数为 13,则此时服务器不对说 明 书CN 104468594 A6/11 页9已接收的 13 个数据请求进行响应,而是继续等待,直至接收到 15 个数据请求,才进行集中响应,并下发对应的数据请求的数据内容。0076 需要说明的是,与图 1 中响应不同数据请求的先后机。

29、制相类似的,本实施例中,服务器对不同批次数据请求的响应顺序由各批次上报的先后顺序来决定。0077 在实际应用中,在以上方法实施例的基础上,为了进一步加快数据请求传送的速度,还可以在已建立的通信连接的基础上,再建立至少一条通信连接,建立完成后,所有的通信连接并发执行任务。其中,进一步建立的至少一条通信连接与已建立的通信连接的具体相同的功能。0078 需要说明的是,进一步建立的至少一条通信连接的数量是有限的。进一步建立至少一条通信连接时,需要使得通信连接的总数与服务器的 CPU(Central Processing Unit,中央处理器 ) 的核数相同。0079 例如,如图 4 所示,CPU 的核。

30、数为 4,则在客户端与服务器之间可以建立 4 条通信连接,其中,假设客户端的个数为 40,通信连接 1 是客户端 1 至客户端 10 共用的一条连接,通信连接 2 是客户端 11 至客户端 20 共用的一条连接,通信连接 3 是客户端 21 至客户端 30共用的一条连接,通信连接 4 是客户端 31 至客户端 40 共用的一条连接。0080 实际应用中,当本实施例的方案应用于 nginx 系统中时,也可以直接将通信连接的数量设定为与 nginx 模块的进程数相同的数量。这是由于,在 nginx 系统中,当 nginx 启动时,会按照 CPU 的核数建立进程,即建立与 CPU 核数相同的进程。因。

31、此,在 nginx 系统中,也可以直接将通信连接的数量设置为 nginx 进程的数量,其效果与前述按照 CPU 数量建立通信连接的效果相同。0081 此外,以上所述方法实施例不仅可以应用于客户端与服务器直接通过网络进行数据交互的场景中,还可以应用于具有中继场景中,例如,在客户端与服务器之间有个二级中心,该二级中心用于管理所有的客户端,并与服务器之间进行通信。又如,在局域网内,设置了一个代理服务器,则用户通过客户端访问服务器时,需要知道代理服务器的地址、端口等详细资料,从而通过代理服务器才可以访问服务器。0082 示例性的,如图 5 所示,在客户端与服务器之间有个代理服务器,则在客户端与代理服务。

32、器之间建立一条通信连接,在代理服务器与服务器之间建立一条通信连接,不同客户端通过共用两条通信连接,便可以完成与服务器之间的数据交互。0083 需要说明的是,上述场景中,也可以建立与CPU核数或nginx的进程数相同的少数几条通信连接,在此不作限定。0084 现有技术中,由于客户端与服务器之间建立一一对应的通信连接所以当客户端与服务器之间增加中继时,则通信连接需要成倍的增加,使得服务器需要维护的并发数更多,而本实施例只是在客户端与中继中间、中继与服务器之间分别建立少数的通信连接,从而避免了并发数受限的问题。0085 进一步的,作为对上述各方法实施例的实现,在本发明的另一个实施例中,还提供了一种数。

33、据请求的装置,如图 6 所示,该装置包括 :建立单元 31、接收单元 32、响应单元 33。其中,0086 建立单元 31,用于建立一条通信连接 ;0087 接收单元 32,用于通过建立单元 31 建立的通信连接接收客户端上报的数据请求 ;说 明 书CN 104468594 A7/11 页100088 接收单元 32,还用于在对数据请求进行响应前,通过通信连接继续接收同一客户端或不同客户端上报的其他数据请求 ;0089 响应单元 33,用于对接收单元 32 接收的不同的数据请求分别进行响应,并下发对应不同数据请求的数据内容。0090 进一步的,接收单元 32 接收的数据请求携带用于请求数据的数。

34、据帧,数据帧记录有请求来源、请求序号、数据位和校验位 ;0091 其中,请求来源用于对上报数据请求的客户端进行标记 ;0092 请求序号用于对数据请求进行标记 ;0093 数据位用于对数据请求的具体请求对象进行标记 ;0094 校验位用于记录数据请求的校验值。0095 进一步的,如图 7 所示,响应单元 33,包括 :0096 划分模块 331,用于对接收的数据请求划分批次 ;0097 响应模块 332,用于按划分模块 331 划分的批次集中响应数据请求。0098 进一步的,划分模块 331,用于按照预设的字段长度对不断上报的数据请求进行截取,将总数据长度不超过字段长度的多个数据请求划分到同一。

35、批次。0099 进一步的,划分模块 331,用于按照预设帧数对不断上报的数据请求进行截取,将与预设帧数数量相同的数据帧所对应的多个数据请求划分到同一批次 ;0100 其中,一个数据请求对应一个数据帧。0101 进一步的,建立单元 31,还用于进一步建立至少一条通信连接,至少一条通信连接具有与建立单元 31 建立的通信连接相同的功能。0102 进一步的,建立单元 31,用于建立至少一条通信连接,使得通信连接总数与中央处理器 CPU 的核数相同。0103 进一步的,建立单元 31,用于建立至少一条通信连接,使得通信连接总数与 nginx的进程数量相同。0104 进一步的,建立单元 31 建立的通信。

36、连接为超文本传送协议 HTTP 连接。0105 本发明实施例提供的数据请求的装置,能够在不同客户端向服务器发送数据请求时,服务器只与客户端建立一条通信连接,通过该通信连接可以接收不同的数据请求,并且对上一个数据请求的响应并不影响对下一个数据请求的接收,即可以边进行响应边接收新的数据请求。与现有技术中需要客户端与服务器之间建立一一对应的通信连接相比,本发明中,在客户端与服务器之间只建立一条通信连接,不同客户端均可以通过该通信连接完成与服务器之间的数据交互,从而达到多路复用的效果,而无需考虑并发数的问题,进而解决了现有技术中通信连接的并发数受限的情况。0106 通过在数据帧中记录数据请求的请求来源和请求序号,可以对数据请求做唯一的标识,从而可以保证服务器对不同的数据请求作出与之对应的响应,向正确的客户端反馈数据内容,进而避免串包现象发生 ;通过在数据帧中记录校验值,可以在保证数据请求传输正确的情况下,对数据请求进行响应,由此防止第三方对客户端上报的数据请求进行篡改。0107 现有技术中,由于客户端与服务器之间建立一一对应的通信连接所以当客户端与服务器之间增加中继时,则通信连接需要成倍的增加,使得服务器需要维护的并发数更多,而本实施例只是在客户端与中继中间、中继与服务器之间分别建立少数的通信连接,从说 明 书CN 104468594 A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1