一种用于处理http请求的方法与设备的制造方法

文档序号:8226071阅读:293来源:国知局
一种用于处理http请求的方法与设备的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种用于处理http请求的技术。
【背景技术】
[0002]传统web开发中,主要使用Apache、nginx等web服务器作为http和反向代理服务器。然而,该等web服务器是I/O阻塞的,无法高并发地处理http请求,且在处理http请求时消耗较多的web服务器自身资源,降低了 http请求处理效率。

【发明内容】

[0003]本发明的一个目的是提供一种用于处理http请求的方法与设备。
[0004]根据本发明的一个方面,提供了一种在基于php的第一网络设备端用于处理http请求的方法,其中,该第一网络设备对应多个协同其处理http请求的基于php的第二网络设备,该方法包括:
[0005]根据待处理的http请求中的相关信息项,结合所述第二网络设备的数量信息,从多个所述第二网络设备中确定处理所述http请求的目标第二网络设备;
[0006]将所述http请求发送至所述目标第二网络设备;
[0007]接收所述目标第二网络设备所发送的所述http请求所对应的目标资源。
[0008]根据本发明的另一方面,还提供了一种在基于php的目标第二网络设备端辅助用于处理http请求的方法,其中,该目标第二网络设备是从协同基于php的第一网络设备处理http请求的多个基于php的第二网络设备中确定的,该方法包括:
[0009]接收所述第一网络设备发送的待处理的http请求;
[0010]获取所述http请求所对应的目标资源;
[0011]将所述目标资源发送至所述第一网络设备。
[0012]根据本发明的一个方面,提供了一种用于处理http请求的基于php的第一网络设备,其中,该第一网络设备对应多个协同其处理http请求的基于php的第二网络设备,该第一网络设备包括:
[0013]用于根据待处理的http请求中的相关信息项,结合所述第二网络设备的数量信息,从多个所述第二网络设备中确定处理所述http请求的目标第二网络设备的装置;
[0014]用于将所述http请求发送至所述目标第二网络设备的装置;
[0015]用于接收所述目标第二网络设备所发送的所述http请求所对应的目标资源的装置。
[0016]根据本发明的另一个方面,还提供了一种辅助用于处理http请求的基于php的目标第二网络设备,其中,该目标第二网络设备是从协同基于Php的第一网络设备处理http请求的多个基于Php的第二网络设备中确定的,该目标第二网络设备包括:
[0017]用于接收所述第一网络设备发送的待处理的http请求的装置;
[0018]用于获取所述http请求所对应的目标资源的装置;
[0019]用于将所述目标资源发送至所述第一网络设备的装置。
[0020]根据本发明的再一方面,还提供了一种用于处理http请求的系统,其中,该系统包括如前述根据本发明一个方面的一种用于处理http请求的基于php的第一网络设备,以及如前述根据本发明另一个方面的一种辅助用于处理http请求的基于php的目标第二网络设备。
[0021]与现有技术相比,本发明的一个实施例中,基于php语言实现了第一网络设备以及多个协同其处理http请求的基于php的第二网络设备,第一网络设备根据待处理的http请求中的相关信息项,结合所述第二网络设备的数量信息,从多个所述第二网络设备中确定处理所述http请求的目标第二网络设备,并将所述http请求发送至所述目标第二网络设备;以由目标第二网络设备获取所述http请求所对应的目标资源,并将其发送给第一网络设备,第一网络设备和多个第二网络设备形成了 master-worker模型,实现了非阻塞I/O的处理http请求,从而可快速响应http请求,并可高并发地处理http请求,提高了处理效率,同时php语言的使用,降低了 web服务器的开发维护成本;此外,使用本发明的php语言非阻塞I/O的反向代理服务器直接作为对外的服务器入口,减少了传统服务器本身的资源消耗,以及与Php交互产生的网络资源消耗;而且,本发明的另一个实施例通过结合第二网络设备的资源状态信息来确定所述目标第二网络设备,实现了多个第二网络设备之间和第二网络设备自身内部的负载均衡。
【附图说明】
[0022]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0023]图1示出根据本发明一个方面的一种用于处理http请求的基于php的第一网络设备和基于Php的目标第二网络设备的设备示意图;
[0024]图2示出根据本发明另一个方面的基于php的第一网络设备和基于php的目标第二网络设备配合实现一种用于处理http请求的方法流程图。
[0025]附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0026]下面结合附图对本发明作进一步详细描述。
[0027]图1示出根据本发明一个方面的一种用于处理http请求的基于php的第一网络设备I和基于Php的目标第二网络设备2的设备示意图,其中,第一网络设备I对应多个协同其处理http请求的基于php的第二网络设备,目标第二网络设备2是从协同基于php的第一网络设备I处理http请求的多个基于php的第二网络设备中确定的,其中,第一网络设备I包括用于根据待处理的http请求中的相关信息项,结合所述第二网络设备的数量信息,从多个所述第二网络设备中确定处理所述http请求的目标第二网络设备的装置(以下简称“目标确定装置11”);用于将所述http请求发送至所述目标第二网络设备的装置(以下简称“第一发送装置12”);用于接收所述目标第二网络设备所发送的所述http请求所对应的目标资源的装置(以下简称“第二接收装置13”);目标第二网络设备2包括用于接收所述第一网络设备发送的待处理的http请求的装置(以下简称“第一接收装置21”);用于获取所述http请求所对应的目标资源的装置(以下简称“获取装置22”);用于将所述目标资源发送至所述第一网络设备的装置(以下简称“第二发送装置23”)。具体地,第一网络设备I的目标确定装置11根据待处理的http请求中的相关信息项,结合所述第二网络设备的数量信息,从多个所述第二网络设备中确定处理所述http请求的目标第二网络设备2 ;第一发送装置12将所述http请求发送至所述目标第二网络设备2 ;相应地,目标第二网络设备2的第一接收装置21接收所述第一网络设备I发送的待处理的http请求;获取装置22获取所述http请求所对应的目标资源;第二发送装置23将所述目标资源发送至所述第一网络设备I ;相应地,第一网络设备I的第二接收装置13接收所述目标第二网络设备2所发送的所述http请求所对应的目标资源。
[0028]在此,第一网络设备I负责接收和分配任务(如http请求、https请求等),在具体实施例中,第一网络设备I扮演master进程的角色,并是基于php语言实现的,其中,第一网络设备I对应多个协同其处理http请求的基于php语言实现的第二网络设备。第一网络设备I与多个第二网络设备之间可基于scoket来进行通信,多个第二网络设备之间是并列的关系。
[0029]在此,第二网络设备负责处理第一网络设备I为其分配的任务,并将处理结果返回给第一网络设备1,在具体实施例中,第二网络设备扮演worker进程的角色,从而第一网络设备I与多个第二网络设备构成多线程设计中的master-worker模式,该模式是并行的。在此,基于php语言实现的master-worker模式为非阻塞I/O的,其可用于实现web服务器,并作为http和反向代理服务器,由此,使用php语言基于master-worker模式实现的非阻塞I/O的反向代理服务器直接作为对外的服务接入口,与传统web服务器(在传统的web开发中,主要使用Apache,nginx等web服务器作为http和反向代理服务器)相比,不仅减少了 web服务器本身的资源消耗,以及与php交互产生的网络资源消耗,还减少了过多的程序依赖与开发维护成本,从而可快速响应http请求/https请求,并可高并发地处理http请求/https请求,提高了处理效率。在此,需要说明的是,本发明中的http请求不仅包括http (超文本传输协议,Hypertext Transfer Protocol)请求,还包括https (安全套接字层超文本传输协议,Hyper Text Transfer Protocol over Secure Socket Layer)请求,以下实施例均是基于http请求进行描述的,不应理解为对本发明的限制。
[0030]在此,第一网络设备I和第二网络设备均包括但不限于网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本领域技术人员应能理解上述第一网络设备和第二网络设备仅为举例,其他现有的或今后可能出现的网络设备如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。
[0031]具体地,第一网络设备I的目标确定装置11根据待处理的http请求中的相关信息项,结合所述第二网络设备的数量信息,从多个所述第二网络设备中确定处理所述http请求的目标第二网络设备2。在此,所述http请求中的相关信息项包括以下至少任一项:i)http请求中可唯一标识该http请求的ip和cookie ;ii)http请求中的所有内容项,如http请求中的请求行(request-line)、请求头(header)、空行(blank-line)和可选消息体(request-body)。
[0032]在此,目标确定装置11确定所述目标第二网络设备2的方式包括但不限于以下至少任一项:
[0033]I)首先对所述http请求中的相关信息项进行MD5处理,以获得对应的MD5处理结果;然后,根据所述MD5处理结果与所述第二网络设备的数量信息的取模值,从多个所述第二网络设备中确定处理所述http请求的目标第二网络设备。
[0034]例如,假设在一 master-worker模型部署中,作为master的第一网络设备I对应3个作为worker的第二网络设备,该3个第二网络设备编号分别为1、2、3,并记为workerl、worker2和worker3,第一网络设备I接收到来自浏览器的http请求假设为http-request1,该http请求中的ip和cookie分别为ip-Ι和cookie-Ι,则第一网络设备I的目标确定装置11可首先对ip-Ι和cookie-Ι进行MD5处理,假设得到的MD5处理结果为值“5fa26f23a035b45a957f793a5c5705291”,目标确定装置11可去除该MD5值中的字符得到对应的数值为“526230354595779355705291” ;然后,因该master-worker模型部署中有3个第二网络设备,则目标确定装置11将数值“52623035459577935
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1