请求传输系统、方法、装置及存储介质与流程

文档序号:14776574发布日期:2018-06-23 03:33阅读:125来源:国知局
请求传输系统、方法、装置及存储介质与流程

本申请实施例涉及通信技术领域,特别涉及一种请求传输系统、方法、装置及存储介质。



背景技术:

客户端在访问服务器中的资源时,会向服务器发送超文本传输协议(HyperText Transfer Protocol,HTTP)请求,服务器接收到该HTTP请求后,向客户端反馈对应的资源。

当发送HTTP请求的客户端的数量较多时,为了避免多个HTTP请求全部发送至同一服务器,导致该服务器的处理压力过大的问题,客户端与服务器之间还会包括F5负载均衡器,该F5负载均衡器可以根据各个服务器的负载分配HTTP请求。其中,每个F5负载均衡器与至少一个服务器相连。

然而,F5负载均衡器在确定处理HTTP请求的服务器时,确定出的服务器比较随机,此时,该服务器可能未保存客户端对应的资源,导致客户端请求资源失败。



技术实现要素:

本申请实施例提供的请求传输系统、方法、装置及存储介质,可以解决通过负载均衡器随机选择处理HTTP请求的服务器,导致客户端从该服务器访问对应的资源的失败率较大的问题。所述技术方案如下:

第一方面,提供了一种请求传输系统,该系统包括:客户端、n个接入网关和m个服务器,所述客户端与所述n个接入网关与所述m个服务器相连,所述n和所述m均为正整数;

所述客户端,用于生成超文本传输协议HTTP请求;确定所述n个接入网关中用于接收所述HTTP请求的第一接入网关;并将所述HTTP请求发送至所述第一接入网关,所述HTTP请求携带有所述客户端的客户端标识;

所述第一接入网关,用于接收所述客户端发送的所述HTTP请求;根据所述客户端标识确定所述m个服务器中的目标服务器;并在所述第一接入网关与所述目标服务器建立有通信连接时,将所述HTTP请求发送至所述目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

所述目标服务器,用于接收所述HTTP请求,并对所述HTTP请求进行响应。

第二方面,提供了一种请求传输方法,用于接入网关中,所述接入网关与客户端相连,且所述接入网关还与至少一个服务器相连;所述方法包括:

接收所述客户端发送的超文本传输协议HTTP请求,所述HTTP请求携带有所述客户端的客户端标识;

根据所述客户端标识确定目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

在与所述目标服务器建立有通信连接时,将所述HTTP请求发送至所述目标服务器。

第三方面,提供了一种请求传输方法,用于客户端中,所述客户端通与n个接入网关相连,所述n接入网关还与m个服务器相连,所述n和所述m均为正整数;所述方法包括:

生成超文本传输协议HTTP请求,所述HTTP请求携带有所述客户端的客户端标识;

确定所述n个接入网关中接收所述HTTP请求的第一接入网关,所述客户端标识用于供所述第一接入网关确定所述m个服务器中的目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

将所述HTTP请求发送至所述第一接入网关;

接收所述接入网关反馈的来源于所述目标服务器的资源;其中,在所述第一接入网关与所述目标服务器建立有通信连接时,所述接入网关为所述第一接入网关。

第四方面,提供了一种请求传输装置,用于接入网关中,所述接入网关与客户端相连,且所述接入网关还与至少一个服务器相连;所述装置包括:

接收单元,用于接收所述客户端发送的超文本传输协议HTTP请求,所述HTTP请求携带有所述客户端的客户端标识;

确定单元,用于根据所述客户端标识确定目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

发送单元,用于在与所述目标服务器建立有通信连接时,将所述HTTP请求发送至所述目标服务器。

第五方面,提供了一种请求传输装置,用于客户端中,所述客户端与n个接入网关相连,所述n接入网关还与m个服务器相连,所述n和所述m均为正整数;所述装置包括:

生成单元,用于生成超文本传输协议HTTP请求,所述HTTP请求携带有所述客户端的客户端标识;

确定单元,用于确定所述n个接入网关中接收所述HTTP请求的第一接入网关,所述客户端标识用于供所述第一接入网关确定所述m个服务器中的目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

发送单元,用于将所述HTTP请求发送至所述第一接入网关;

接收单元,用于接收所述接入网关反馈的来源于所述目标服务器的资源;其中,在所述第一接入网关与所述目标服务器建立有通信连接时,所述接入网关为所述第一接入网关。

第六方面,提供了一种接入网关,所述接入网关包括处理器、与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现第二方面提供的请求传输方法。

第七方面,提供了一种终端,所述终端包括处理器、与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现第三方面提供的请求传输方法。

第八方面,一种计算机可读介质,其上存储有程序指令,所述程序指令被处理器执行时实现第二方面提供的请求传输方法;或者,第三方面提供的请求传输方法。

本申请实施例提供的技术方案带来的有益效果是:

通过在接收到HTTP请求时,根据该HTTP请求中的客户端标识确定目标服务器;并在与该目标服务器创建有通信连接时,将HTTP请求发送至目标服务器,由目标服务器对该HTTP请求进行响应;可以避免客户端访问的服务器与存储该客户端的资源的服务器不一致,导致客户端请求资源失败的问题;由于接入网设备可以根据客户端标识确定出存储有对应的资源的目标服务器,因此,客户端可以通过HTTP请求访问到对应的资源,从而可以提高客户端请求资源的成功率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1A是相关技术提供的请求传输系统的结构示意图;

图1B是本申请一个实施例提供的请求传输系统的结构示意图;

图2是本申请一个示例性实施例提供的请求传输方法的流程图;

图3是本申请一个示例性实施例提供的请求传输方法的流程图;

图4是本申请一个示例性实施例提供的请求传输方法的流程图;

图5是本申请一个示例性实施例提供的索引表的示意图;

图6是本申请另一个示例性实施例提供的请求传输方法的流程图;

图7是本申请一个实施例提供的请求传输装置的结构方框图;

图8是本申请一个实施例提供的请求传输装置的结构方框图;

图9是本申请一个实施例提供的接入网关的结构方框图;

图10是本申请一个实施例提供的终端的结构方框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

本申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

在申请中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

首先,对本申请涉及的若干名词进行介绍。

F5负载均衡器:是一种硬件设备,用于根据后端设备的负载,基于负载均衡原则分配超文本传输协议(HyperText Transfer Protocol,HTTP)请求。其中,后端设备是指接收F5负载均衡器发送的HTTP请求的设备。比如:后端设备为服务器或者接入网关等。

可选地,F5负载均衡器除了具有负载均衡功能之外,还包括应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、互联网协议版本6(Internet Protocol Version 6,IPv6)网关、高级路由、智能端口镜像、安全套接层(Secure Sockets Layer,SSL)加速、智能HTTP压缩、传输控制协议(Transmission Control Protocol,TCP)优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(Denial of Service,DoS)攻击和SYN Flood保护、防火墙过滤等功能,本申请在此不再一一列举。

需要补充说明的是,虽然F5负载均衡器的功能强大,但是F5负载均衡器的可扩展性较差,也即,在F5负载均衡器已有的功能的基础上,很难扩展出其它功能。

可选地,F5负载均衡器可以做4层负载均衡;或者,也可以做7层负载均衡。

4层负载均衡是指在对服务器进行负载均衡时,依据四层的信息来确定如何转发流量,比如:通过发布三层的互联网协议(Internet Protocol Address,IP)+四层的端口号,来决定哪些流量需要做负载均衡。

7层负载均衡是指在4层的基础上,再考虑应用层的特征,比如:除了根据IP+80端口辨别是否需要处理的流量,还可根据7层的(Uniform Resource Locator,URL)、浏览器类别和语言中的至少一种来决定是否要进行负载均衡。举个例子,如果将服务器分成两组,一组是中文语言的,一组是英文语言的,那么7层负载均衡就可以当客户端来访问服务器时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。

Nginx服务器:是一种高性能的HTTP和反向代理服务器。Nginx服务器是一种软件服务器,Nginx服务器采用反向代理(Reverse Proxy)技术代理服务器接收HTTP请求;然后,将HTTP请求动态地转发给内部网络上的多台服务器进行处理,并将从服务器上得到的结果返回给客户端。Nginx服务器通过将接收到的HTTP请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,来达到负载均衡的目的。

需要补充说明的是,Nginx服务器的功能固定,可扩展性也比较差。

接入网关:用于接收客户端发送的HTTP请求,并根据该HTTP请求中的客户端标识确定处理该HTTP请求的目标服务器。

可选地,由于接入网关的开发语言是开发人员自定义的,因此,接入网关除了可以转发HTTP请求之外,还可以扩展出其它功能,也即,接入网关相较于F5负载均衡器和Nginx服务器来说可扩展性较强,比如:接入网关的扩展功能支持通过扩展HTTP1.1协议实现异步转发HTTP请求,以提高接入网关的并行处理能力;设置IP黑名单,阻拦具有IP黑名单中的IP地址的HTTP请求;实时统计总请求数、转发超时数量;接口级的流量控制;扩展SSL协议等,本实施例在此不再一一列举。

相关技术提供的请求传输系统中,客户端通过F5负载均衡器与多个服务器相连;或者,客户端通过F5负载均衡器和Nginx服务器与多个服务器相连。以客户端通过F5负载均衡器和Nginx服务器与多个服务器相连为例,参考图1A,该请求传输系统包括客户端101、与客户端101相连的负载均衡器102、与负载均衡器102相连的Nginx服务器103和与Nginx服务器103相连的多个服务器104。

客户端101用于向负载均衡器102发送HTTP请求;负载均衡器102接收该HTTP请求,并将HTTP请求分配至某一个Nginx服务器103;Nginx服务器103接收到HTTP请求之后,将该HTTP请求分配至多个服务器104中的某一个服务器104。

其中,Nginx服务器103确定出的服务器104比较随机,也即,接收到客户端101第一次发送的HTTP请求的服务器104与接收到客户端101第二次发送的HTTP请求的服务器104可能不同,而存储客户端101对应的资源的服务器104可能与Nginx服务器103确定出的服务器104不同,此时,客户端101请求资源可能会失败。

在一些实施例中,为了提高客户端101请求资源的成功率,可能会将不同服务器104中的资源进行同步,此时,所有服务器104中保存的资源相同。然而,客户端101可能始终不会访问到其中一部分服务器104,此时,既会浪费将资源同步至该部分服务器104时消耗的资源,也会浪费该部分服务器104的存储空间。

基于上述技术问题,本申请提供如下技术方案。

图1B是本申请的一个示例性实施例示出的请求传输系统的结构示意图,该系统包括客户端110、n个接入网关120和m个服务器130,n和m均为正整数。客户端110通过n个接入网关120与m个服务器130相连。

其中,客户端110通过无线网络或有线网络与n个接入网关120相连,每个接入网关120通过无线网络或有线网络与m个服务器130中的至少一个服务器130相连。可选地,不同接入网关120连接的服务器130数量可以相同,或者,也可以不同。

客户端110运行于终端中,终端包括但不限于:手机、平板电脑、可穿戴式设备、智能机器人、智能家居设备、膝上型便携计算机和台式计算机等具有通信功能的电子设备。

客户端110用于生成HTTP请求,并将该HTTP请求分配至n个接入网关120中的第一接入网关121。其中,HTTP请求携带有客户端的客户端标识。

可选地,客户端标识可以是客户端注册的用户帐号、电子邮箱地址、身份证号、银行卡卡号、随机字符串;或者,客户端标识也可以是客户端所属的终端的设备标识,比如:媒体访问控制(Media Access Control或者Medium Access Control,MAC)地址、设备号等。

接入网关120可以是软件实现的服务器,接入网关120可以设置在独立的服务器主机中。

接入网关120(包括第一接入网关121)用于接收客户端110发送的HTTP请求,并根据该HTTP请求中的客户端标识确定m个服务器130中的目标服务器131。在接入网关120与目标服务器131建立有通信连接时,接入网关120还用于将HTTP请求发送至目标服务器131。

其中,目标服务器131存储有客户端标识对应的资源。

可选地,每个接入网关120与至少一个服务器130相连,该至少一个服务器130属于同一机房。机房是指架设服务器的架设空间。

可选地,每个机房中的服务器130连接有多个接入网关120,该多个接入网关120与同一机房中的服务器130通过局域网相连。

可选地,不同的接入网关120之间也可以通过有线或无线的方式连接。

服务器130为客户端提供后台服务。可选地,服务器130可以是网站(Web)服务器;或者,也可以是其它类型的服务器,本实施例对此不作限定。可选地,服务器130也可以称为后台服务器、Tomcat服务器等,本实施例不对服务器的名称作限定。

服务器130用于接收接入网关120发送的HTTP请求,并对该HTTP请求进行响应。可选地,服务器130对HTTP请求进行响应是指:向接入网关120发送HTTP请求所请求的资源。

可选地,服务器130反馈的资源是与HTTP请求中的客户端标识相对应的资源,该资源包括但不限于:文字、图片、网页、音频和视频中的至少一种。

可选地,本实施例提供的请求传输系统仅是示意性地,在实际实现时,该请求传输系统还可以包括其它设备,比如:该请求传输系统还包括与客户端110相连的域名服务器(Domain Name Server,DNS)等。

其中,DNS还通过有线网络或者无线网络与n个接入网关120相连,DNS用于进行域名(domain name)和IP地址(address)之间的转换。示意性地,DNS用于将HTTP请求中的域名转换为服务器130的IP地址。

可选地,本申请中,无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(HyperText Mark-up Language,HTML)、可扩展标记语言(Extensible Markup Language,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Trassport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet Protocol Security,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。

图2是本申请的一个示例性实施例示出的请求传输方法的流程图。本实施例以该请求传输方法用于图1B所示的请求传输系统中的接入网关130中为例进行说明,该接入网关与客户端相连,且该接入网关还与至少一个服务器相连,该请求传输方法包括以下几个步骤。

步骤201,接收客户端发送的HTTP请求,该HTTP请求携带有客户端的客户端标识。

步骤202,根据客户端标识确定目标服务器,该目标服务器用于存储客户端标识对应的资源。

可选地,接入网关根据HTTP请求中的客户端标识确定索引标识;根据该索引标识在索引表中确定目标服务器;该索引表包括索引标识与目标服务器之间的索引关系。

可选地,索引表用于将不同的客户端标识均衡地分配至服务器。

步骤203,在与目标服务器建立有通信连接时,将HTTP请求发送至目标服务器。

综上所述,本实施例提供的请求传输方法,通过在接收到HTTP请求时,根据该HTTP请求中的客户端标识确定目标服务器;并在与该目标服务器创建有通信连接时,将HTTP请求发送至目标服务器,由目标服务器对该HTTP请求进行响应;可以避免客户端访问的服务器与存储该客户端的资源的服务器不一致,导致客户端请求资源失败的问题;由于接入网设备可以根据客户端标识确定出存储有对应的资源的目标服务器,因此,客户端可以通过HTTP请求访问到对应的资源,从而提高客户端请求资源的成功率。

另外,通过将客户端直接与接入网关相连,而不设置负载均衡器,可以减少请求传输系统所需的传输组件,降低请求传输系统的复杂度。

图3是本申请的一个示例性实施例示出的请求传输方法的流程图。本实施例以该请求传输方法用于图1B所示的请求传输系统中的客户端110中为例进行说明,该客户端与n个接入网关相连,该n接入网关还与m个服务器相连,n和m均为正整数,该请求传输方法包括以下几个步骤。

步骤301,生成HTTP请求。

其中,HTTP请求携带有客户端的客户端标识。

步骤302,确定n个接入网关中接收HTTP请求的第一接入网关。

其中,客户端标识用于供第一接入网关确定m个服务器中的目标服务器,目标服务器用于存储客户端标识对应的资源。

步骤303,将HTTP请求发送至第一接入网关。

步骤304,接收接入网关反馈的来源于目标服务器的资源;其中,在第一接入网关与目标服务器建立有通信连接时,该接入网关为第一接入网关。

综上所述,本实施例提供的请求传输方法,通过在HTTP请求中携带客户端标识,使得接入网关在接收到HTTP请求时,可以根据该HTTP请求中的客户端标识确定出存储有该客户端标识对应的资源的目标服务器;并在与该目标服务器创建有通信连接时,将HTTP请求发送至目标服务器,由目标服务器对该HTTP请求进行响应;因此,客户端可以通过HTTP请求访问到对应的资源,从而可以提高客户端请求资源的成功率。

图4是本申请的一个示例性实施例示出的请求传输方法的流程图。本实施例以该请求传输方法用于图1B所示的请求传输系统中为例进行说明,该系统包括:客户端、n个接入网关和m个服务器,该客户端通过n个接入网关与m个服务器相连,n和m均为正整数,该请求传输方法包括以下几个步骤。

步骤401,客户端生成HTTP请求。

可选地,客户端在接收到对某一URL地址的触发操作时,根据该客户端的客户端标识和URL地址生成HTTP请求。

其中,客户端标识用于确定存储有该客户端标识对应的资源的目标服务器。

可选地,在实际实现时,具有同一域名的服务器的数量可以是多个,该多个服务器可能分布于不同地理位置的机房中,且该多个服务器可能只有一个服务器存储客户端标识对应的资源,此时,需要从该多个服务器中确定出存储有该资源的目标服务器。

可选地,客户端标识可以是客户端注册的用户帐号、电子邮箱地址、身份证号、银行卡卡号、随机字符串;或者,客户端标识也可以是客户端所属的终端的设备标识,比如:媒体访问控制(Media Access Control或者Medium Access Control,MAC)地址、设备号等。

步骤402,接入网关向客户端发送当前的负载量。

可选地,n个接入网关中每个接入网关每隔预设时长向客户端发送当前的负载量;或者,根据客户端的指示发送当前的负载量。可选地,预设时长可以是开发人员设置的,且该预设时长可以是5分钟、10分钟等,本实施例对此不作限定。

可选地,本步骤可以在步骤401之前执行;或者,也可以在步骤401之后执行;或者,与步骤401同时执行,本实施例对此不作限定。

步骤403,客户端接收n个接入网关的负载量。

步骤404,客户端根据n个接入网关的负载量,确定n个接入网关中用于接收HTTP请求的第一接入网关。

可选地,客户端将n个接入网关中负载量最小的接入网关确定为第一接入网关。

或者,可选地,客户端中存储有服务器标识,此时,客户端先确定与服务器标识对应的服务器相连的至少一个接入网关;将该至少一个接入网关中负载量最小的接入网关确定为第一接入网关。此时,客户端中存储有服务器标识与至少一个接入网关之间的对应关系。

可选地,服务器标识可以是客户端从本地存储的各个服务器的服务器标识中随机选择的;或者,该服务器标识为客户端历史访问过的服务器的服务器标识。

可选地,服务器标识可以是服务器的编号、服务器所在机房名称、服务器的IP地址、服务器的端口号和服务器的架设地理区域中的至少一种。

当然,客户端也可以随机从n个接入网关中选择第一接入网关,本实施例不对客户端确定第一接入网关的方式作限定。

步骤405,客户端将HTTP请求发送至第一接入网关。

可选地,若客户端直接与第一接入网关相连,则客户端通过与第一接入网关之间的通信连接,将该将HTTP请求发送至第一接入网关;或者,若客户端通过DNS服务器与第一接入网关相连,则客户端通过DNS服务器将该将HTTP请求发送至第一接入网关。

步骤406,第一接入网关接收客户端发送的HTTP请求。

其中,HTTP请求携带有客户端的客户端标识。

步骤407,第一接入网关根据客户端标识确定m个服务器中的目标服务器。

可选地,在第一接入网关与目标服务器建立有通信连接时,执行步骤408;在第一接入网关与目标服务器未建立有通信连接时,执行步骤409。

其中,目标服务器用于存储客户端标识对应的资源。

可选地,第一接入网关根据客户端标识确定m个服务器中的目标服务器,包括:根据客户端标识确定索引标识;根据索引标识在索引表中确定目标服务器。其中,索引表包括索引标识与目标服务器之间的索引关系。

可选地,索引表用于将不同的客户端标识均衡地分配至服务器。可选地,索引表默认设置在n个接入网关中;或者,索引表由其它设备发送至n个接入网关。

可选地,索引表可以在存在新的服务器建立或者删除时进行更新。

其中,多个客户端标识对应同一索引标识。

在一个示例中,根据客户端标识确定索引标识,包括:对客户端标识进行循环冗余码(Cyclical Redundancy Check,CRC)运算,得到中间数值;将该中间数值与预设数值取模,得到索引标识。其中,CRC运算用于将客户端标识转换为数字字符串;取模运算用于缩小索引服务器的范围。

CRC运算可以为CRC-16运算、CRC-8运算、CRC-4运算等,本实施例对此不作限定。

当然,在实际实现时,客户端也可以通过其它方式将客户端标识转化为索引标识,本实施例对此不作限定。

可选地,索引标识也可以称为桶号码(bucket Identity,bucket ID);或者,其它名称,本实施例对此不作限定。

在一个示例中,根据索引标识在索引表中确定目标服务器,包括:根据索引标识在索引表中查找目标服务器的服务器标识;在具有该服务器标识的至少一个服务器中,确定HTTP请求需要访问的目标服务器。

可选地,第一接入网关根据HTTP请求中携带的访问信息,从具有该服务器标识的至少一个服务器中确定目标服务器。其中,访问信息包括但不限于:客户端的版本号、操作系统的版本号、URL地址、资源的标识符、协议版本号和对资源的请求方式中的至少一种。

假设第一接入网关中存储的索引表如图5所示,若第一接入网关根据HTTP请求中的客户端标识确定出的索引标识为B1,则服务器标识为杭州机房;第一接入网关根据HTTP请求中的访问信息从杭州机房的服务器中确定目标服务器。

步骤408,在第一接入网关与目标服务器建立有通信连接时,该第一接入网关将HTTP请求发送至目标服务器,执行步骤415。

可选地,第一接入网关与目标服务器通过局域网建立通信连接。当然,第一接入网关也可以通过其它网络与目标服务器建立通信连接,本实施例对此不作限定。

可选地,第一接入网关还会向客户端发送成功响应,该成功响应包括目标服务器的服务器标识。示意性地,成功响应基于HTTP协议发送,且服务器标识为HTTP头部中预设函数的值。

可选地,第一接入网关可以在发送HTTP请求之前发送成功响应;或者,第一接入网关可以在发送HTTP请求之后发送成功响应;或者,第一接入网关可以同时发送HTTP请求和发送成功响应,本实施例对此不作限定。

步骤409,在第一接入网关未与目标服务器建立有通信连接时,该第一接入网关向客户端发送失败响应。

失败响应包括预设状态码和目标服务器的服务器标识,该预设状态码用于指示第一接入网关无法使用。示意性地,失败响应基于HTTP协议发送,且服务器标识为HTTP头部中预设函数的值。

本实施例不对预设状态码的数值作限定,示意性地,该预设状态码的值为306。

步骤410,客户端接收失败响应。

步骤411,客户端根据失败响应中的服务器标识确定n个接入网关中与目标服务器建立有通信连接的第二接入网关。

可选地,客户端根据服务器标识与接入网关之间的对应关系,确定失败响应中的服务器标识对应的至少一个接入网关;从该至少一个接入网关中选择负载量最小的第二接入网关。

可选地,接入网关的负载量是n个接入网关发送的,且存储在客户端中。

步骤412,客户端根据预设状态码再次向第二接入网关发送HTTP请求。

可选地,HTTP请求包括客户端标识和服务器标识中的至少一种。

可选地,若客户端直接与第二接入网关相连,则客户端通过与第二接入网关之间的通信连接,将该将HTTP请求发送至第二接入网关;或者,若客户端通过DNS服务器与第二接入网关相连,则客户端通过DNS服务器将该将HTTP请求发送至第二接入网关。

步骤413,第二接入网关接收HTTP请求。

其中,第二接入网关为n个接入网关中的一个接入网关。

步骤414,第二接入网关向目标服务器发送HTTP请求。

可选地,第二接入网关根据HTTP请求中的访问信息,将HTTP请求直接发送至目标服务器。或者,第二接入网关根据HTTP请求中的客户端标识确定索引标识;根据索引标识在索引表中确定目标服务器;将HTTP发送至目标服务器。

步骤415,目标服务器接收HTTP请求。

步骤416,目标服务器通过接入网关向客户端发送HTTP请求所请求的资源。

其中,在第一接入网关与目标服务器建立有通信连接时,接入网关为第一接入网关;或者,在第一接入网关未与目标服务器建立有通信连接时,接入网关为第二接入网关。

步骤417,客户端接收接入网关反馈的来源于目标服务器的资源。

综上所述,通过在接收到HTTP请求时,根据该HTTP请求中的客户端标识确定目标服务器;并在与该目标服务器创建有通信连接时,将HTTP请求发送至目标服务器,由目标服务器对该HTTP请求进行响应;可以避免客户端访问的服务器与存储该客户端的资源的服务器不一致,导致客户端请求资源失败的问题;由于接入网设备可以根据客户端标识确定出存储有对应的资源的目标服务器,因此,客户端可以通过HTTP请求访问到对应的资源,从而可以提高客户端请求资源的成功率。

另外,通过将客户端直接与接入网关相连,而不设置负载均衡器,可以减少请求传输系统所需的传输组件,降低请求传输系统的复杂度。

另外,通过将客户端标识转换成索引标识,由于多个客户端标识对应同一索引标识,且接入网关存储索引标识与服务器标识之间的索引关系,而无需存储所有客户端标识与服务器标识之间的索引关系,因此,可以减少接入网关存储的索引表的数据量,从而节省接入网关的存储资源。

另外,通过在第一接入网关与目标服务器未建立通信连接时,第一接入网关向客户端发送失败响应,在该失败响应中携带目标服务器的服务器标识;使得客户端再次发送HTTP请求时,可以直接将该HTTP请求分配至与目标服务器相连的第二接入网关,可以保证客户端成功访问到目标服务器。

可选地,基于上述各个实施例,在客户端获取到目标服务器的服务器标识之后,比如:在接收到成功响应或者失败响应之后,若需要发送其它HTTP请求,则获取目标服务器的服务器标识;根据服务器标识确定用于接收其它HTTP请求的第三接入网关;向第三接入网关发送该其它HTTP请求。

可选地,第三接入网关接收到其它HTTP请求之后执行步骤408。

本实施例通过在HTTP请求中携带目标服务器的服务器标识,而该目标服务器是客户端历史访问过的服务器,因此,客户端从该服务器中能够成功访问到对应的资源的概率较高;这就使得客户端可以根据目标服务器的服务器标识,直接将HTTP请求分配至与目标服务器相连的第二接入网关,无需执行反馈失败响应的过程,可以提高客户端访问目标服务器的效率。

可选地,参考图6,若第一接入网关与第二接入网关之间建立有通信连接,则作为步骤409至412的可替换步骤,本申请提供的请求传输方法还包括以下几个步骤:

步骤601,第一接入网关在未与目标服务器建立有通信连接时,向与目标服务器建立有通信连接的第二接入网关发送HTTP请求。

其中,第二接入网关为n个接入网关中的一个接入网关,且第二接入网关与第一接入网关建立有通信连接。

可选地,第一接入网关还可以向客户端发送成功响应,该成功响应包括目标服务器的服务器标识。示意性地,成功响应基于HTTP协议发送,且服务器标识为HTTP头部中预设函数的值。

本实施例通过在第一接入网关与第二接入网关建立有通信连接时,第一接入网关将HTTP请求直接转发给第二接入网关,使得第一接入网关无需与客户端之间传输失败响应,且客户端无需重传HTTP请求,可以节省传输资源。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图7,其示出了本申请一个实施例提供的请求传输装置的结构方框图,该请求传输装置可通过软件、硬件或者两者的结合实现成为接入网关的部分或者全部。该接入网关与客户端相连,且该接入网关与至少一个服务器相连;该装置可以包括:接收单元710、确定单元720和发送单元730。

接收单元710,用于接收所述客户端发送的HTTP请求,所述HTTP请求携带有所述客户端的客户端标识;

确定单元720,用于根据所述客户端标识确定目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

发送单元730,用于在与所述目标服务器建立有通信连接时,将所述HTTP请求发送至所述目标服务器。

可选地,所述确定单元720,用于:

根据所述客户端标识确定索引标识;

根据所述索引标识在索引表中确定所述目标服务器;所述索引表包括所述索引标识与所述目标服务器之间的索引关系。

可选地,所述发送单元730,还用于:

向所述客户端发送当前的负载量,所述负载量用于供所述客户端确定接收所述HTTP请求的接入网设备。

可选地,所述发送单元730,还用于:

在未与所述目标服务器建立有通信连接时,向所述客户端发送失败响应;

其中,所述失败响应包括预设状态码和所述目标服务器的服务器标识,所述预设状态码用于指示所述接入网关无法使用,所述服务器标识用于确定与所述目标服务器建立有通信连接的接入网关。

相关说明参见上述方法实施例中由接入网关执行的步骤。

请参考图8,其示出了本申请一个实施例提供的请求传输装置的结构方框图,该请求传输装置可通过软件、硬件或者两者的结合实现成为客户端的部分或者全部。客户端与n个接入网关相连,n接入网关还与m个服务器相连,n和m均为正整数,该装置可以包括:生成单元810、确定单元820、发送单元830和接收单元840。

生成单元810,用于生成超文本传输协议HTTP请求,所述HTTP请求携带有所述客户端的客户端标识;

确定单元820,用于确定所述n个接入网关中接收所述HTTP请求的第一接入网关,所述客户端标识用于供所述第一接入网关确定所述m个服务器中的目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

发送单元830,用于将所述HTTP请求发送至所述第一接入网关;

接收单元840,用于接收所述接入网关反馈的来源于所述目标服务器的资源;其中,在所述第一接入网关与所述目标服务器建立有通信连接时,所述接入网关为所述第一接入网关。

可选地,确定单元820,还用于:

获取所述n个接入网关的负载量;根据所述n个接入网关的负载量确定所述第一接入网关。

可选地,所述接收单元840,还用于在所述第一接入网关未与所述目标服务器建立有通信连接时,接收所述第一接入网关反馈的失败响应;所述失败响应包括预设状态码和所述目标服务器的服务器标识,所述预设状态码用于指示所述接入网关无法使用;

所述确定单元820,还用于根据所述服务器标识确定所述n个接入网关中与所述目标服务器建立有通信连接的第二接入网关;

所述发送单元830,还用于根据所述预设状态码再次向所述第二接入网关发送所述HTTP请求。

相关说明参见上述方法实施例中由客户端执行的步骤。

本申请还提供一种计算机可读介质,其上存储有程序指令,程序指令被处理器执行时实现上述各个方法实施例提供的请求传输方法。

本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例提供的请求传输方法。

参考图9,其示出了本申请一个示例性实施例提供的接入网关的结构方框图。本申请中的接入网关可以包括一个或多个如下部件:处理器910和存储器920。

处理器910可以包括一个或者多个处理核心。处理器910利用各种接口和线路连接整个接入网关内的各个部分,通过运行或执行存储在存储器920内的指令、程序、代码集或指令集,以及调用存储在存储器920内的数据,执行接入网关的各种功能和处理数据。可选地,处理器910可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器910可集成中央处理器(Central Processing Unit,CPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器910中,单独通过一块芯片进行实现。

可选地,处理器910执行存储器920中的程序指令时实现下上述各个方法实施例提供的接入网关执行的请求传输方法。

存储器920可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选地,该存储器920包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器920可用于存储指令、程序、代码、代码集或指令集。存储器920可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据接入网关的使用所创建的数据等。

需要补充说明的是,本实施例提供的终端的结构仅是示意性地,在实际实现时,该终端还可以包括其他组件,比如:通过组件、网络接口等,本实施例在此不再一一列举。

参考图10,其示出了本申请一个示例性实施例提供的终端的结构方框图。本申请中的终端可以包括一个或多个如下部件:处理器1010和存储器1020。

处理器1010可以包括一个或者多个处理核心。处理器1010利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行终端的各种功能和处理数据。可选地,处理器1010可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(Central Processing Unit,CPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1010中,单独通过一块芯片进行实现。

可选地,处理器1010执行存储器1020中的程序指令时实现下上述各个方法实施例提供的客户端执行的请求传输方法。

存储器1020可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选地,该存储器1020包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据终端的使用所创建的数据等。

需要补充说明的是,本实施例提供的终端的结构仅是示意性地,在实际实现时,该终端还可以包括其他组件,比如:通过组件、显示组件、传感器组件等,本实施例在此不再一一列举。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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