与PHP进程通信的方法和系统与流程

文档序号:13744702阅读:138来源:国知局

本发明涉及互联网技术领域,特别是涉及一种与PHP进程通信的方法和系统。



背景技术:

随着移动网络的发展,客户端与Web(网络)服务器的PHP(HypertextPreprocessor,超文本预处理器)进程之间的通信已被广泛使用。传统的方式是客户端发送HTTP(HTTP-Hypertexttransferprotocol,超文本传送协议)请求向PHP进程请求对应的数据。由于HTTP请求的字节较多,从而使得请求速度缓慢,导致从客户端发送HTTP请求至客户端接收到PHP进程返回的数据,耗费的时间较长。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种有效提高通信速度缩短通信时间的与PHP进程通信的方法和系统。

一种与PHP进程通信的方法,所述方法包括:

接收采用预设的私有协议的数据请求,所述预设的私有协议包括携带基础信息的首部,所述数据请求的字节数少于HTTP请求的字节数;

按照所述预设的私有协议读取所述数据请求,并将读取到的数据请求转换为HTTP请求;

将所述HTTP请求发送至同一网络中对应的PHP进程;

将所述PHP进程根据所述HTTP请求返回的数据通过所述预设的私有协议打包成数据包,并对应所述数据请求返回所述数据包。

在其中一个实施例中,所述预设的私有协议还包括包体内容和拓展区,其中:所述包体内容包括活动信息,所述拓展区包括备用信息。

在其中一个实施例中,所述首部中包括密码检验位,所述接收数据请求的步骤之前,还包括:通过所述预设的私有协议中的密码检验位对所述数据请求进行加密。

在其中一个实施例中,所述将所述HTTP请求发送至对应的PHP进程的步骤之后,还包括:

将所述数据请求消耗的时间保存在对应的日志文件中;

将根据所述数据请求返回数据的结果对应所述数据请求保存在所述日志文件中。

在其中一个实施例中,所述将根据所述数据请求返回数据的结果对应所述数据请求保存在所述日志文件中的步骤之后还包括:

若PHP进程超时未返回与所述HTTP请求对应的数据,则生成提示信息,并将所述提示信息对应所述数据请求发送至客户端。

一种与PHP进程通信的系统,所述系统包括:

请求接收模块,用于接收采用预设的私有协议的数据请求,所述预设的私有协议包括携带基础信息的首部,所述数据请求的字节数少于HTTP请求的字节数;

请求转换模块,用于按照所述预设的私有协议读取所述数据请求,并将读取到的数据请求转换为HTTP请求;

请求发送模块,用于将所述HTTP请求发送至同一网络中对应的PHP进程;

数据返回模块,用于将所述PHP进程根据所述HTTP请求返回的数据通过所述预设的私有协议打包成数据包,并对应所述数据请求返回所述数据包。

在其中一个实施例中,所述预设的私有协议还包括包体内容和拓展区,其中:所述包体内容包括活动信息,所述拓展区包括备用信息。

在其中一个实施例中,所述首部中包括密码检验位,所述系统还包括:加密模块,用于通过所述预设的私有协议中的密码检验位对所述数据请求进行加密。

在其中一个实施例中,所述系统还包括:保存模块,用于将所述数据请求消耗的时间保存在对应的日志文件中;所述保存模块还用于将根据所述数据请求返回数据的结果对应所述数据请求保存在所述日志文件中。

在其中一个实施例中,所述系统还包括:提示模块,用于若PHP进程超时未返回与所述HTTP请求对应的数据,则生成提示信息,并将所述提示信息对应所述数据请求发送至客户端。

上述与PHP进程通信的方法和系统,通过接收采用预设的私有协议的数据请求,预设的私有协议包括携带基础信息的首部,数据请求的字节数少于HTTP请求的字节数;按照预设的私有协议读取数据请求,并将读取到的数据请求转换为HTTP请求;将HTTP请求发送至同一网络中对应的PHP进程;将PHP进程根据HTTP请求返回的数据通过预设的私有协议打包成数据包,并对应数据请求返回所述数据包。由于采用了预设的私有协议发送数据请求,该预设的私有协议包括携带基础信息的首部,数据请求的字节数少于HTTP请求中的字节数,由此节省了网络流量,有效提高了数据请求的速度,由于将HTTP请求发送至同一网络中对应的PHP进程,有效提高了HTTP请求的速度,由此有效提高了客户端与PHP进程通信的速度,大幅度缩短了通信时间。

附图说明

图1为一个实施例中与PHP进程进行通信的硬件环境图;

图2为一个实施例中与PHP进程通信方法的流程图;

图3为一个实施例中与PHP进程通信系统的结构示意图;

图4为又一个实施例中与PHP进程通信系统的结构示意图;

图5为另一个实施例中与PHP进程通信系统的结构示意图;

图6为再一个实施例中与PHP进程通信系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供的方法,应用于如图1所示的硬件环境中。其中终端102与第一服务器104通过网络108连接,并通过TCP(TransmissionControlProtocol,传输控制协议)/IP(InternetProtocol,网络之间互连的协议)协议进行通信。终端102包括但不限于安装有客户端应用的智能手机、平板电脑、个人数字助理等。第一服务器104与第二服务器106通过网络110部署在同一局域网内。第二服务器106上运行多种不同的PHP进程。第一服务器104与第二服务器106上的PHP进程通过HTTP协议进行通信。用户通过点击终端102客户端应用的界面上的按键,触发生成相应的数据请求,该数据请求采用了预设的私有协议,且该数据请求的字节数少于HTTP请求的字节数,终端102将该数据请求发送至第一服务端104。第一服务器104上预先配置了对应的预设的私有协议,在接收到该数据请求之后,按照预设的私有协议读取数据请求,提取其中的关键字,如命令字等,将提取到的关键字转换成HTTP请求,并将该HTTP请求发送至第二服务器106上对应的PHP进程。第一服务端104接收到PHP进程根据该HTTP请求返回的数据后,将数据按照预设的私有协议进行打包,将数据包返回至终端102。由于终端102发送的数据请求采用了预设的私有协议,字节数少于HTTP请求的字节数,并且第一服务器104与运行PHP进程的第二服务器106在同一网络内,从而有效缩短了客户端与PHP进程的通信时间,提高了通信速度。

在一个实施例中,如图2所示,提供了一种与PHP进程通信的方法,该方法包括:

步骤202,接收采用预设的私有协议的数据请求,预设的私有协议包括携带基础信息的首部,数据请求的字节数少于HTTP的字节数。

用户通过点击客户端应用界面的按键,触发生成相应的数据请求。如在登录界面中,在用户输入用户名、密码后,点击“登录”,即可触生成发对应的数据请求。传统的方式中,客户端直接与对应的PHP进程通过HTTP协议进行通信。客户端向对应的PHP进程发送HTTP请求,HTTP请求是根据与触发该数据请求相同的动作而生成的基于HTTP协议的请求。如,用户在登录界面输入用户名、密码后,点击“登录”,会触发生成对应的HTTP请求。一个HTTP请求由请求行、请求头部、空行和请求数据4个部分组成。其中,请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。客户端如果与PHP进行直接通信,那么生成的HTTP请求包含的字节较多,大约为236个。由此导致客户端发送该HTTP请求并得到与该请求对应的数据速度缓慢,耗费较多的时间。

预设的私有协议是指在客户端与服务端预设的数据包的格式。预设的私有协议包括首部、包体内容和拓展区,采用二进制数据,并预先预定每个字符位置对应的内容。首部中包括基础信息,如命令字、包体长度、拓展区长度、密码检验位等。根据该预设的私有协议生成的数据请求中,字节数量小于HTTP请求的字节数。进一步的,包体长度和拓展区的长度都可以为0,使得根据预设的私有协议生成的数据请求的字节数更少,如15个字节,远远少于HTTP请求的字节,从而有效节省了网络流量。

步骤204,按照预设的私有协议读取数据请求,并将读取到的数据请求转换为HTTP请求。

服务端上预先配置了预设的私有协议,在接收到数据请求后,根据该预设的私有协议读取数据请求中首部的内容。提取其中的命令字。提取到的命令字可以是HTTP请求支持的命令字,如GET(从服务端获取数据)、POST(向服务端提交数据)等,并将提取到的命令字通过HTTP协议,转换为对应的HTTP请求。

步骤206,将HTTP请求发送至同一网络中对应的PHP进程。

服务端可以是独立的服务器,即只有一台服务器。PHP进程可以运行在该服务器上。服务端也可以是同一网络中的多台服务器,PHP进程可以运行在其中一台服务器上,也可以按照PHP进程的功能分别运行在多台不同的服务器上。同一网络可以是多台服务器位于同一网络内,也可以是包括该预设的私有协议和PHP进程的同一台服务器。将HTTP协议发送至同一网络中对应的PHP进程,由于同一网络中的传输速率比不同网络之间的传输速率高,由此有效提升了HTTP请求的速度。进一步的,如果将该预设的私有协议配置在运行PHP进程的服务器上,只通过一台服务器来实现数据请求,那么传输速率会更快。

传统的PHP进程的通信端口为公共端口:80,本实施例中,更换PHP进程的通信端口,更换后的端口也可称为安全端口,如85端口,将安全端口进行隐蔽,并在客户端应用中预先设置该端口。使客户端发送的数据请求可直接对应该安全端口,在服务端将客户端的数据请求转换为HTTP请求后,该HTTP请求通过安全端口发送至对应的PHP进程。由于采用安全端口来接收HTTP请求,由此克服了公共端口带来的安全隐患,提高了数据的安全性。

步骤208,将PHP进程根据HTTP请求返回的数据通过预设的私有协议打包成数据包,并对应数据请求返回数据包。

服务端将PHP进程根据该HTTP请求返回的数据通过预设的私有协议打成数据包,如果返回的数据超出预设的私有协议对应的字节长度,则按照预设的私有协议中的包体内容的长度自动进行分割,组成多个数据包。所有的数据包均需加密。将数据包通过TCP/IP协议返回至对应的客户端。在客户端发送数据请求直到获取到服务端返回的数据的过程中,客户端与服务端之间一直保持连接。如果连接被断开,则需要客户端重新发送该数据请求。由于采用了预设的私有协议发送数据请求,并将PHP进程返回的数据按照预设的私有协议打包成数据包返回至客户端,由此使得客户端与PHP进程之间的通信时间相比传统的客户端与PHP进程之间直接通过HTTP协议进行通信,通信时间得到大幅度缩短。根据统计数据,客户端与PHP进程之间直接通过HTTP协议进行通信,时间大于为1秒以上,而采用本发明提供的方法,通信时间大约为100毫秒左右,节省了大约9倍的时间。

本实施例中,通过接收采用预设的私有协议的数据请求,预设的私有协议包括携带基础信息的首部,数据请求的字节数少于HTTP请求的字节数;按照预设的私有协议读取数据请求,并将读取到的数据请求转换为HTTP请求;将HTTP请求发送至同一网络中对应的PHP进程;将PHP进程根据HTTP请求返回的数据通过预设的私有协议打包成数据包,并对应数据请求返回所述数据包。由于采用了预设的私有协议发送数据请求,该预设的私有协议包括携带基础信息的首部,数据请求的字节数少于HTTP请求中的字节数,由此节省了网络流量,有效提高了数据请求的速度,由于将HTTP请求发送至同一网络中对应的PHP进程,有效提高了HTTP请求的速度,由此有效提高了客户端与PHP进程通信的速度,大幅度缩短了通信时间。

在一个实施例中,预设的私有协议还包括包体内容和拓展区,其中:包体内容包括活动信息,拓展区包括备用信息。

本实施例中,包体内容包括活动信息,如用户标识、登录信息等。包体长度由首部中表示包体长度的字节来确定,包体长度可以为0。拓展区用于对数据请求进行拓展,包括备用信息,如用户IP地址等。拓展区的长度由首部中表示拓展区长度的字节来确定。拓展区的长度可以与包体长度相同。拓展区的长度可以为0。也就是数据请求中可以没有包体内容和拓展区,只有首部。由此使得数据请求中的字节更少,数据请求的速度得到显著提高。

在一个实施例中,首部中包括密码检验位,接收数据请求的步骤之前,还包括:通过该预设的私有协议中的密码检验位对数据请求进行加密。

本实施例中,密码检验位用来表示包体内容是否需要加密,对应的数值是1或0,其中1表示根据该预设的私有协议进行加密,0表示不加密。客户端与服务端之间的所有数据请求,以及服务端向客户端返回的按该预设的私有协议打包的数据包中,均通过该密码检验位进行加密。由于对数据请求以及返回的数据包均进行了加密,从而提高了客户端与服务端之间通信的安全性。

在一个实施例中,接收数据请求的步骤之后,还包括:将数据请求消耗的时间保存在对应的日志文件中;将根据数据请求返回数据的结果对应数据请求保存在日志文件中。

本实施例中,数据请求消耗的时间是指服务端接收到数据请求至服务端根据该数据请求返回数据所消耗的时间。在接收到客户端发送的数据请求后,服务端将数据请求中的关键字,如命令字等,接收时间以及根据该数据请求返回数据的时间记录在日志文件中。

返回数据的结果是指PHP进程根据转换后的HTTP请求,将对应的数据返回至服务端的结果,可以用“Y”或“N”来表示。其中,“Y”为有对应的数据返回,“N”为没有对应的数据返回,可以将直接将返回的数据和返回时间对应“Y”一起记录在日志文件中。或者只将返回的数据和返回时间记录在日志文件中。或者只将PHP进程超时未返回数据的结果,保存在日志文件中,其中包括HTTP请求中的命令字以及请求时的相关参数等。由此可以帮助PHP进程查找超时原因。由于将数据请求消耗的时间以及数据请求返回结果记录在日志文件中。由此可以在日志文件中查看对应的数据请求,使得数据请求可视化。

在一个实施例中,将根据数据请求返回数据的结果对应数据请求保存在日志文件中的步骤之后还包括:若PHP进程超时未返回与HTTP请求对应的数据,则生成提示信息,并将提示信息对应数据请求发送至客户端。

本实施例中,超时是指超出PHP进程根据HTTP请求返回对应数据的预定时间。如果超时后,PHP进程根据HTTP请求未返回对应的数据,那么服务端不再继续等待,可直接生成提示信息,如“等待超时,获取失败”,并将该提示信息发送至客户端。以便及时将获取数据失败的结果告知用户。用户根据该提示信息可再次发送数据请求,重新获取数据。

在一个实施例中,如图3所示,提供了一种与PHP进程通信的系统,该系统包括:请求接收模块302、请求转换模块304、请求发送模块306和数据返回模块308,其中:

请求接收模块302,用于接收采用预设的私有协议的数据请求,预设的私有协议包括携带基础信息的首部,数据请求的字节数少于HTTP请求的字节数。

请求转换模块304,用于按照预设的私有协议读取数据请求,并将读取到的数据请求转换为HTTP请求。

请求发送模块306,用于将HTTP请求发送至同一网络中对应的PHP进程。

数据返回模块308,用于将PHP进程根据HTTP请求返回的数据通过预设的私有协议打包成数据包,并对应数据请求返回数据包。

本实施例中,由于采用了预设的私有协议发送数据请求,该预设的私有协议包括携带基础信息的首部,数据请求的字节数少于HTTP请求中的字节数,由此节省了网络流量,有效提高了数据请求的速度,由于将HTTP请求发送至同一网络中对应的PHP进程,有效提高了HTTP请求的速度,由此有效提高了客户端与PHP进程通信的速度,大幅度缩短了通信时间。

在一个实施例中,预设的私有协议还包括包体内容和拓展区,包体内容包括活动信息,拓展区包括备用信息。

在一个实施例中,首部中包括密码检验位,如图4所示,该系统还包括:加密模块310,用于通过预设的私有协议中的密码检验位对数据请求进行加密。

本实施例中,客户端与服务端之间的所有数据请求,以及服务端向客户端返回的按预设的私有协议打包的数据包中,均通过密码检验位进行加密。由于对数据请求以及返回的数据包均进行了加密,从而提高了客户端与服务端之间通信的安全性。

在一个实施例中,如图5所示,该系统还包括:保存模块312,用于将数据请求消耗的时间保存在对应的日志文件中;保存模块还用于将根据数据请求返回数据的结果对应数据请求保存在日志文件中。

本实施例中,由于将数据请求消耗的时间以及数据请求返回结果记录在日志文件中。由此可以在日志文件中查看对应的数据请求,使得数据请求可视化。

在一个实施例中,如图6所示,该系统还包括:提示模块314,用于若PHP进程超时未返回与HTTP请求对应的数据,则生成提示信息,并将提示信息对应数据请求发送至客户端。

本实施例中,如果超时后,PHP进程根据HTTP请求未返回对应的数据,那么服务端可以直接生成提示信息,并将该提示信息发送至客户端。以便及时将获取数据失败的结果告知用户。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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