网络请求的发送方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及网络技术领域,尤其是一种网络请求的发送方法、装置、计算机设备及存储介质。
背景技术
网络技术的发展给人们的生活、工作带来了极大的便利,例如人们可以在终端上安装各种类型的APP使生活更加便利。例如,通过车票购买应用软件远程购买车票,通过购物软件购买各种类型的商品,通过即时通讯软件发送或者接收信息。
当实现上述功能的时候,终端发送网络请求给应用软件的服务器,服务器对网络请求进行响应。但是,在实际应用中,由于终端发送的请求过多会导致服务器的访问量多大,负载均衡压力大,进而浪费服务器的耗能。
发明内容
本发明实施例提供一种网络请求的发送方法、装置、计算机设备及存储介质。
为解决上述技术问题,本发明创造的实施例采用的一个技术方案是:提供一种网络请求的发送方法,包括下述步骤:
获取多个网络请求信息,其中,网络请求信息中包括按照应用场景划分的网络请求的优先级标记,所述优先级标记用于表示每个应用场景的重要程度;
按照所述优先级标记将每个应用场景中的网络请求进行排序,得到发送顺序;
按照所述发送顺序将所述多个网络请求发送到服务器。
可选地,所述按照所述优先级标记将每个应用场景中的网络请求进行排序,得到发送顺序之前,还包括:
获取每个网络请求的相关度标记,所述相关度标记用于表示某个应用场景中网络请求的关联程度;
按照所述相关度标记对所述网络请求进行分类,得到多组网络请求;
将每组网络请求进行打包,生成待发送的网络请求。
可选地,所述按照所述优先级标记将每个应用场景中的网络请求进行排序,得到发送顺序,包括:
根据所述优先级标记在预先排序的多组网络请求中查找与所述优先级等级匹配的目标网络请求组;
将所述网络请求插入到所述目标网络请求组中的队尾。
可选地,所述根据所述优先级标记在预设的多组网络请求中查找与所述优先级等级匹配的目标网络请求组之前,还包括:
按照不同的优先级标记设置多个网络请求组;
将所述多个网络请求组按优先级标记进行排序。
可选地,所述按照所述发送顺序将所述网络请求发送到服务器,包括:
获取当前待发送的网络请求的数量;
按照所述数量提取网络接口,以使所述网络接口与所述网络请求一一对应;
按照配置的网络接口将所述网络请求发送给所述服务器。
为解决上述技术问题,本发明实施例还提供一种网络请求的发送装置,包括:
获取模块,获取多个网络请求信息,其中,网络请求信息中包括按照应用场景划分的网络请求的优先级标记,所述优先级标记用于表示每个应用场景的重要程度;
处理模块,用于按照所述优先级标记将每个应用场景中的网络请求进行排序,得到发送顺序;
执行模块,用于按照所述发送顺序将所述多个网络请求发送到服务器。
可选地,还包括:
第一获取子模块,用于获取每个网络请求的相关度标记,所述相关度标记用于表示某个应用场景中网络请求的关联程度;
第一处理子模块,用于按照所述相关度标记对所述网络请求进行分类,得到多组网络请求;
第一执行子模块,用于将每组网络请求进行打包,生成待发送的网络请求。
可选地,所述处理模块包括:
第二获取子模块,用于根据所述优先级标记在预先排序的多组网络请求中查找与所述优先级等级匹配的目标网络请求组;
第二执行子模块,用于将所述网络请求插入到所述目标网络请求组中的队尾。
可选地,还包括:
第二处理子模块,用于按照不同的优先级标记设置多个网络请求组;
第三处理子模块,用于将所述多个网络请求组按优先级标记进行排序。
可选地,所述执行模块包括:
第三获取子模块,用于获取当前待发送的网络请求的数量;
第四获取子模块,用于按照所述数量提取网络接口,以使所述网络接口与所述网络请求一一对应;
第四处理子模块,用于按照配置的网络接口将所述网络请求发送给所述服务器。
为解决上述技术问题,本发明实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述网络请求的发送方法的步骤。
为解决上述技术问题,本发明实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述网络请求的发送方法的步骤。
本发明实施例的有益效果是:按照优先级标记设置网络请求的发送顺序,并按照发送顺序来发送网络请求到服务器,如此,对于紧急程度较高的网络请求,可以优先得到服务器的响应,从而避免了不紧急的网络请求增大对服务器的请求量,造成流量拥挤的问题。该方法可以减轻服务器的负载均衡压力,降低耗能。此外,对于混合APP业务可以增强扩展性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例网络请求的发送方法的基本流程示意图;
图2为本发明实施例提供的一种减少网络请求的数量的方法的基本流程示意图;
图3为本发明实施例提供的一种根据优先级标记设置网络请求的发送顺序的方法的基本流程示意图;
图4为本发明实施例提供的一种多组网络请求的排序方法的基本流程示意图;
图5为本发明实施例提供的一种按照发送顺序将网络请求发送到服务器的方法的基本流程示意图;
图6为本发明实施例提供的一种网络请求的发送装置基本结构框图;
图7为本发明实施例提供的计算机设备基本结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本实施方式中的客户终端即为上述的终端。
具体地,请参阅图1,图1为本实施例网络请求的发送方法的基本流程示意图。
如图1所示,网络请求的发送方法包括下述步骤:
S1100、获取多个网络请求信息,其中,网络请求信息中包括按照应用场景划分的网络请求的优先级标记,优先级标记用于表示每个应用场景的重要程度;
网络请求信息用于表示当终端中的应用软件需要实现某种功能时,例如,显示未读信息、登录软件页面等,需要服务器发送请求,以使服务器发送对应的数据给终端的信息。
本发明实施例中,在开发应用软件时,可以按照该应用软件的使用场景预设多个网络请求,例如,用户在登录应用软件时,需要向终端发送验证请求、登录页面的数据获取请求以及判断该用户是否为黑名单用户的请求等等。上述请求均可以按照场景进行设置,以使用户在登录应用软件时,既可以向服务器发送。因此,终端可以按照应用软件中预设的功能获取网络请求信息。
优先级标记为表示网络请求的重要程度或者紧急程度的标记。在实际应用中,优先级标记可以按照场景进行设置。例如,在即时通讯软件中,对于好友发送的历史未读信息,该信息相对私密,可能存在重要或紧急的事情,因此,可以对请求服务器发送未读信息时的网络请求可以设置优先级为高级1,对于朋友圈中的未读信息,从场景中看,该信息重要程度和紧急程度较低,可以设置优先级为低级2。
需要说明的是,优先级等级是应用软件在开发过程中按照场景预先设置的。优先级等级可以采用多种方式进行表示,例如,数字、字母、字符等一种或多种的组合。在实际应用中,还可以根据网络请求数据包的后缀、名称等形式进行表示。
S1200、按照优先级标记将每个应用场景中的网络请求进行排序,得到发送顺序;
在实际应用中,终端发送一次网络请求,服务器对该网络请求响应一次。当众多的终端在同一时刻均向服务器发送网络请求时,会造成流量拥堵,服务器均衡负载压力过大、耗能高,终端不能及时得到服务器的反馈,因此,在这种情况下,按照优先级标记来设置网络请求的发送顺序,避免出现不重要的网络请求对流量造成拥堵。
本发明实施例中,每个网络请求均标记有优先级,因此可以将标记有相同优先级的网络请求划分到一个网络请求组中,如此可以得到多个按照优先级标记划分的多个网络请求组,按照优先级标记所表示的重要程度将该多个网络请求组进行排序,优先发送优先级程度较高的网络请求。例如,按照优先级标记1、2、3和4将所有的网络请求分为四个组,组1、组2、组3和组4,按照重要程度将四个组排序,得到发送顺序组1、组2、组3和组4。
在实际应用中,可以预先按照设置的优先级个数设置多个组,并排序,当发送网络请求时,可以按照网络请求标记的优先级插入到具有对应优先级标记的网络请求组中。
需要说明的是,每个网络请求组中的网络请求按照时间形成队列,对于新获取的网络请求,插入到其队尾即可。
为了避免造成网络流量的拥堵,本发明实施例中,按照场景将多个相关度较高的网络请求合并为一个网络请求,并按照优先级最高的标记对该网络请求进行标记,如此,可以减少网络请求的发送数量,减少服务器的响应数量,降低服务器的负载均衡压力。
S1300、按照发送顺序将多个网络请求发送到服务器。
本发明实施例中,终端按照设置的发送顺序将每个网络请求发送到服务器中。如此,对于优先级较高的网络请求服务器可以优先进行响应,从而避免了优先级较低的网络请求对网络请求造成的干扰。
上述网络请求的发送方法,按照优先级标记设置网络请求的发送顺序,并按照发送顺序来发送网络请求到服务器,如此,对于紧急程度较高的网络请求,可以优先得到服务器的响应,从而避免了不紧急的网络请求增大对服务器的请求量,造成流量拥挤的问题。该方法可以减轻服务器的负载均衡压力,降低耗能。此外,对于混合APP业务可以增强扩展性。
为了避免网络请求的流量拥堵,还可以减少网络请求的发送数量,但是,在实际应用中,为实现应用软件的具体功能,向服务器请求的数据不能减少,因此,本发明实施例提供一种减少网络请求的数量的方法,如图2所示,图2为本发明实施例提供的一种减少网络请求的数量的方法的基本流程示意图。
具体地,如图2所示,步骤S1200之前还包括下述步骤:
S1201、获取每个网络请求的相关度标记,相关度标记用于表示某个应用场景中网络请求的关联程度;
相关联程度表示每个应用场景中多个网络请求相关联的程度,其中,相关联程度包括:网络请求之间发送的时间间隔的长短、网络请求的数据的关联性等等。例如,当用户登录某个APP软件时,在登录的场景中预设了多个网络请求需要发送给服务器,例如,用户的签到记录请求、对未读信息的获取请求、判断用户是否为黑名单用户的请求等等。上述请求均发生于登录场景中,发送时间间隔小于预设值,相关度较高。因此,对网络请求设置相关度标记,其中,相关度标记包括场景标记和关联标记。
以下进行举例说明,在登录场景中,设置用户的签到记录请求的相关度为A-1、对未读信息的获取请求A-2、判断用户是否为黑名单用户的请求A-1,其中,A表示应用场景标记,A后面的数字表示关联标记,当场景标记相同时,关联标记相同表示可以关联,关联标记不同表示不可以关联。
S1202、按照相关度标记对网络请求进行分类,得到多组网络请求;
如上所述,相关度标记包括场景标记和关联度标记。本发明实施例中,按照相关度标记将场景标记相同的网络请求分为一级关联组,在每个一级关联组中将关联度标记相同的网络请求分为多个二级关联组。如此,可以得到多组网络请求。
需要说明的是,每组网络请求中包含的网络请求的个数不作限定,可以为一个,也可以为多个。
S1203、将每组网络请求进行打包,生成待发送的网络请求。
将上述每个二级关联组中的网络请求进行打包,即可得到待发送的网络请求包。需要说明的是,为了确保二级关联组中优先级较高的网络请求能及时得到回应,本发明实施例中,待发送的网络请求的优先级标记可以按照网络请求中优先级程度最高的优先级标记对待发送的网络请求进行标记。
需要解释的是,在对每组网络请求进行打包时,从每组网络请求中选取目标网络请求,将其它的网络请求的请求参数添加到目标网络请求中,例如报头的位置。为了避免修改优先级标记,目标网络请求可以选取优先级程度最高的网络请求。
本发明实施例中,按照场景将多个相关度较高的网络请求合并为一个网络请求,并按照优先级最高的标记对该网络请求进行标记,如此,可以减少网络请求的发送数量,减少服务器的响应数量,降低服务器的负载均衡压力。
本发明实施例提供一种根据优先级标记设置网络请求的发送顺序的方法,如图3所示,图3为本发明实施例提供的一种根据优先级标记设置网络请求的发送顺序的方法的基本流程示意图。
具体地,如图3所示,步骤S1200包括下述步骤:
S1210、根据优先级标记在预先排序的多组网络请求中查找与优先级等级匹配的目标网络请求组;
目标网络请求组为与优先级匹配的网络请求组。本发明实施例中,每个网络请求组中均包括表示其优先级程度的优先级标记,该优先级标记可以作为该网络请求组的识别码,终端或者服务器根据优先级标记查询与该优先级标记相同的网络请求组,并将其作为匹配的目标网络请求组。
在实际应用中,终端发送一次网络请求,服务器对该网络请求响应一次。当众多的终端在同一时刻均向服务器发送网络请求时,会造成流量拥堵,服务器均衡负载压力过大、耗能高,终端不能及时得到服务器的反馈。因此为了解决这一问题,本发明实施例提供一种多组网络请求排序方法,如图4所示,图4为本发明实施例提供的一种多组网络请求的排序方法的基本流程示意图。
具体地,如图4所示,步骤S1210之前还包括下述步骤:
S1211、按照不同的优先级标记设置多个网络请求组;
S1212、将多个网络请求组按优先级标记进行排序。
本发明实施例中,由于每个网络请求均标记有优先级标记,因此可以按照优先级标记设置网络请求组,得到多个按照优先级标记划分的网络请求组,并按照优先级标记所表示的重要程度将该多个网络请求组进行排序。例如,按照优先级标记1、2、3和4将所有的网络请求分为四个组,组1、组2、组3和组4,按照重要程度将四个组排序,得到发送顺序组1、组2、组3和组4。
通过上述方法,即按照优先级标记表示的重要程度将每个网络请求组进行排序,并将具有相同优先级标记的网络请求添加到对应的网络请求组中,可以确保优先级程度较高的网络请求可以得到优先响应,如此,不仅可以满足用户的需求,同时还可以提高服务器响应的速率,避免出现不重要的网络请求对流量造成拥堵。
S1220、将网络请求插入到目标网络请求组中的队尾。
需要说明的是,每个网络请求组中的网络请求按照时间形成队列,对于新获取的网络请求,插入到其队尾即可。
通常情况下,每一个网络请求的发送都需要对应的一个接口。在一些实施方式中,应用软件会经常出现功能和数据的更新,即为实现新功能,新版本的应用软件的网络接口相较于旧版本会出现变化,用户为了实现新功能,需要不断的下载新版本的应用软件,过程繁琐。因此,为了解决上述问题,本发明实施例提供一种按照发送顺序将网络请求发送到服务器的方法,如图5所示,图5为本发明实施例提供的一种按照发送顺序将网络请求发送到服务器的方法的基本流程示意图。
具体地,如图5所示,步骤S1300包括下述步骤:
S1310、获取当前待发送的网络请求的数量;
本发明实施例中,从每个网络请求组中获取当前网络请求的数量,并将每个网络请求组中的数量相加即得到当前待发送的网络请求的数量。
在一些实施方式中,可以通过抓包工具进行网络请求的抓取,例如,常用的抓包工具有fiddler,wires,hark等。通过上述抓包工具可以看到HTTP请求的具体新,例如,post提交的内容,请求头信息等。
S1320、按照数量提取网络接口,以使网络接口与网络请求一一对应;
本发明实施例在提取网络接口时,获取当前配置的网络接口的数量,并将待发送的网络请求的数量与网络接口的数量进行比对,当网络请求数量小于网络接口的数量时,以当前网络接口的数量对每个网络请求进行配置。当网络请求的数量大于网络接口的数量时,计算短缺的网络接口的数目,并从网络接口数据库中提取对应数量的网络接口。
需要说明的是,当网络接口的数目大于网络请求的数目时,按照网络接口的数目配置网络请求,会出现网络接口被闲置的问题,在一些实施方式中,为了解决这一问题,按照预设的时间段回收被闲置的网络接口。
S1330、按照配置的网络接口将网络请求发送给服务器。
为解决上述技术问题本发明实施例还提供一种网络请求的发送装置。具体请参阅图6,图6为本实施例网络请求的发送装置基本结构框图。
如图6所示,一种网络请求的发送装置,包括:获取模块2100、处理模块2200和执行模块2300。其中,获取模块2100,获取多个网络请求信息,其中,网络请求信息中包括按照应用场景划分的网络请求的优先级标记,所述优先级标记用于表示每个应用场景的重要程度;处理模块2200,用于按照所述优先级标记将每个应用场景中的网络请求进行排序,得到发送顺序;执行模块,用于按照所述发送顺序将所述多个网络请求发送到服务器。
网络请求的发送装置通过按照优先级标记设置网络请求的发送顺序,并按照发送顺序来发送网络请求到服务器,如此,对于紧急程度较高的网络请求,可以优先得到服务器的响应,从而避免了不紧急的网络请求增大对服务器的请求量,造成流量拥挤的问题。该方法可以减轻服务器的负载均衡压力,降低耗能。此外,对于混合APP业务可以增强扩展性。
在一些实施方式中,还包括:第一获取子模块,用于获取每个网络请求的相关度标记,所述相关度标记用于表示某个应用场景中网络请求的关联程度;第一处理子模块,用于按照所述相关度标记对所述网络请求进行分类,得到多组网络请求;第一执行子模块,用于将每组网络请求进行打包,生成待发送的网络请求。
在一些实施方式中,所述处理模块包括:第二获取子模块,用于根据所述优先级标记在预先排序的多组网络请求中查找与所述优先级等级匹配的目标网络请求组;第二执行子模块,用于将所述网络请求插入到所述目标网络请求组中的队尾。
在一些实施方式中,还包括:第二处理子模块,用于按照不同的优先级标记设置多个网络请求组;第三处理子模块,用于将所述多个网络请求组按优先级标记进行排序。
在一些实施方式中,所述执行模块包括:第三获取子模块,用于获取当前待发送的网络请求的数量;第四获取子模块,用于按照所述数量提取网络接口,以使所述网络接口与所述网络请求一一对应;第四处理子模块,用于按照配置的网络接口将所述网络请求发送给所述服务器。
为解决上述技术问题,本发明实施例还提供计算机设备。具体请参阅图7,图7为本实施例计算机设备基本结构框图。
如图7所示,计算机设备的内部结构示意图。如图7所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种网络请求的发送方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种网络请求的发送方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图6中获取模块2100、处理模块2200和执行模块2300的具体内容,存储器存储有执行上述模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有网络请求的发送方法中执行所有子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
计算机设备通过按照优先级标记设置网络请求的发送顺序,并按照发送顺序来发送网络请求到服务器,如此,对于紧急程度较高的网络请求,可以优先得到服务器的响应,从而避免了不紧急的网络请求增大对服务器的请求量,造成流量拥挤的问题。该方法可以减轻服务器的负载均衡压力,降低耗能。此外,对于混合APP业务可以增强扩展性。
本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例所述网络请求的发送方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。