浏览请求的处理方法、装置及系统
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种浏览请求的处理方法、装置及系统。
背景技术
通常一个服务端可以与多个客户端对应,从而接收到多个由客户端发送的浏览请求,但是服务端的处理能力有限,有时不能同时将接收到的多个浏览请求全部处理完成。此时,可以将浏览请求添加到请求处理队列中进行等待,当所述服务端存在空闲时,所述请求处理队列中的浏览请求按照FIFO(First In First Out,先进先出)的方式逐个被所述服务端处理。
然而,在实际应用中,不同的浏览请求的有不同的要求,有的浏览请求需要尽快处理,有的则不需要。例如用户主动发起的浏览请求,可能对耗时的要求相对较高,需要尽快处理。若仍然采用上述方法处理浏览请求,在服务端的处理能力有限的背景下,不需要尽快处理的浏览请求会占用有限的服务端处理资源,使得需要尽快处理的浏览请求不能得到尽快的处理。
发明内容
本申请实施例的目的在于提供一种浏览请求的处理方法、装置及系统,以实现尽快处理优先级高的浏览请求。
根据本发明实施例的一个方面,提供了一种浏览请求的处理方法,其包括:
将客户端浏览请求放置在请求处理队列中,所述浏览请求中包括优先级标识;
按照所述请求处理队列中浏览请求的优先级标识对应的优先级,对所述浏览请求进行处理。
根据本发明实施例的另一个方面,提供了一种浏览请求的处理方法,其包括:
根据浏览请求的优先级,生成优先级标识;
将所述优先级标识添加至所述浏览请求中,以使服务端根据所述浏览请求中的所述优先级标识对应的优先级,对所述浏览请求进行处理。
根据本发明实施例的又一个方面,提供了一种浏览请求的处理装置,其包括:
接入模块,用于将客户端浏览请求放置在请求处理队列中,所述浏览请求中包括优先级标识;
处理模块,用于按照所述请求处理队列中浏览请求的优先级标识对应的优先级,对所述浏览请求进行处理。
根据本发明实施例的再一个方面,提供了一种浏览请求的处理装置,其包括:
标识生成模块,用于根据浏览请求的优先级,生成优先级标识;
标识添加模块,用于将所述优先级标识添加至所述浏览请求中,以使服务端根据所述浏览请求中的所述优先级标识对应的优先级,对所述浏览请求进行处理。
根据本发明实施例的还一个方面,提供了一种浏览请求的处理系统,其包括:
客户端,用于根据浏览请求的优先级,生成优先级标识;将所述优先级标识添加至所述浏览请求中;
服务端,用于将客户端浏览请求放置在请求处理队列中,所述浏览请求中包括优先级标识;按照所述请求处理队列中浏览请求的优先级标识对应的优先级,对所述浏览请求进行处理。
本申请实施例提供的浏览请求的处理方法、装置及系统,通过将包括的优先级标识的客户端浏览请求放置在请求处理队列中,按照所述请求处理队列中浏览请求的优先级标识对应的优先级,对所述浏览请求进行处理,从而可以将优先级高的浏览请求尽快地进行处理,进而减少优先级高的浏览请求的耗时,提高了用户的满意度。
附图说明
图1为本申请实施例提供的一种浏览请求的处理方法流程示意图;
图2为本申请实施例提供的一种步骤S12的具体实现方法流程示意图;
图3为本申请实施例提供的另一种步骤S12的具体实现方法流程示意图;
图4为本申请实施例提供的又一种步骤S12的具体实现方法流程示意图;
图5为本申请实施例提供的一种步骤S125的具体实现方法流程示意图;
图6为本申请实施例提供的另一种浏览请求的处理方法流程示意图;
图7为本申请提供的一种根据浏览请求确定优先级标识的方法流程示意图;
图8为本申请实施例提供的一种浏览请求的处理装置结构示意图;
图9为本申请实施例提供的接入模块放置浏览请求的流程示意图;
图10本申请实施例提供的一种将浏览请求分派至用户线程的流程示意图;
图11为本申请实施例提供另一种浏览请求的处理装置结构示意图;
图12为本申请实施例提供的一种浏览请求的处理系统的结构示意图。
具体实施方式
以下将配合图式及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
实施例一
图1为本申请实施例提供的一种浏览请求的处理方法流程示意图,本实施例主要描述了服务端的实现方式。如图1所示,其包括:
S11、将客户端浏览请求放置在请求处理队列中,所述浏览请求中包括优先级标识。
本实施例一具体实现中,服务端可以包括多个服务进程,服务进程内部可以以多线程的方式处理浏览请求,当服务端不存在空闲时,即服务端内部不存在空闲的用户线程时,服务端可以将浏览请求放置在请求处理队列中进行等待。
服务端可以获得浏览请求,浏览请求可以为基于网络协议(如http协议)传送的数据,优先级标识可以为添加在浏览请求字段中的一个值,优先级标识可以添加到浏览请求字段的前端,从而方便服务端进行读取。
S12、按照所述请求处理队列中浏览请求的优先级标识对应的优先级,对所述浏览请求进行处理。
本实施例中,浏览请求中包括的优先级标识与浏览请求的优先级相对应,服务端读取出浏览请求中包括的优先级标识后,可以通过优先级标识,确定浏览请求的优先级。从而可以按照浏览请求的优先级,选择优先级高的浏览请求进行优先处理,进而避免优先级低的浏览请求占用有限的服务端处理资源。
另外,需要说明的是,本实施例中的步骤S11以及步骤S12仅通过共享请求处理队列来传递浏览请求,并无其他关联。
本申请实施例提供的浏览请求的处理方法,通过将包括的优先级标识的客户端浏览请求放置在请求处理队列中,按照所述请求处理队列中浏览请求的优先级标识对应的优先级,对所述浏览请求进行处理,从而可以将优先级高的浏览请求尽快地进行处理,进而减少优先级高的浏览请求的耗时,提高了用户的满意度。
实施例二
具体地,本实施例在上述实施例的基础上,对浏览请求中的优先级标识进行具体说明,本实施例中,优先级标识可以包括:场景优先级标识、网络接入点优先级标识、用户组别优先级标识中至少其一。
当优先级标识包括场景优先级标识时,所述浏览请求的场景优先级标识为客户端根据生成所述浏览请求的触发场景确定。客户端发起的浏览请求的场景不同,对耗时方面的要求也不同。场景优先级标识对应的优先级可以随着浏览请求的耗时要求的变高而升高。
下面通过几种不同的场景对耗时要求的不同进行举例说明。
场景一、用户操作客户端进行主动触发而生成的浏览请求,对耗时的要求较高,对应的优先级也较高,例如,用户在浏览器的地址栏内进行输入、用户点击书签、用户点击历史、用户点击页面内的链接而生成的浏览请求等。
场景二、某些应用产生的预读请求,耗时的要求相对较低,对应的优先级也较低,比如小说阅读类别的网页应用,在浏览一个页面中的小说章节时,只要保证用户在看完本章节之前或者用户点击“下一章”的按钮前,完成对下一章的预读即可,耗时的要求相对较低。
场景三、某些页面中,例如新闻类页面、购物页面等,加载评论的浏览请求,由于评论并不影响网页的查看效果,因此加载评论的浏览请求耗时的要求相对较低,对应的优先级也较低。
场景四、页面外联的图片资源请求,由于加载的图片应用于不同的方面,耗时的要求也不同,例如对外联的验证码图片资源请求,耗时的要求相对较高,对应的优先级也较高;对页面外联的普通图片资源请求,耗时的要求相对较低,对应的优先级也较低。
当优先级标识包括网络接入点优先级标识时,所述浏览请求的网络接入点优先级标识可以根据生成所述浏览请求的客户端的网络接入方式确定。具体地,客户端所处的网络接入点网络速度不同,比如网速较低的2G网络,网速适中的3G网络,网速较快的4G/Wifi网络,用户浏览请求最终的响应速度也会有所不同,可以根据响应速度的不同确定浏览请求的优先级。网络接入点优先级标识对应的优先级可以随网络接入点网络速度的变慢而升高。
具体地,客户端的网络接入点可以通过接入点标识管理器确定,接入点标识管理器在客户端启动后,可以基于系统API(Application Programming Interface,应用程序编程接口)的调用来动态识别客户端所在的终端设备(如电脑、手机等)的接入点信息。同时,还可以监控移动设备的接入点切换/变化信息,从而保证确定的网络接入点的信息是准确的、实时的。
当优先级标识包括用户组别优先级标识时,所述浏览请求的用户组别优先级标识可以根据生成所述浏览请求的客户端对应的用户组别确定。例如,通过不同的浏览业务确定用户的组别、VIP与非VIP用户组别、不同国家地区的用户组别、浏览业务与不同运营商的商务合作而划分的用户组别等,不同的用户组别可以确定不同的用户组别优先级标识,不同的用户组别优先级标识对应的优先级也不同。
具体地,用户组别可以通过用户组别识管理器确定,用户组别识管理器在客户端启动后,可以根据客户端保存的信息或者与客户端管理后台的通信对用户所在的组别进行识别。用户组别仅需要识别一次,在后续进行验证即可,不需要在每次请求处理过程中重复识别。另外,如果用户组别不能识别(或者尚未对该用户进行分组),则作为“缺省用户组”。
则本实施例中,参见图2,所述步骤S12包括:
S121、根据所述优先级标识以及预设的计算规则,计算所述请求处理队列中所述浏览请求的优先级。
例如,优先级可以基于服务端中的不同的优先级标识的权重进行综合计算而得出。
S122、根据所述优先级对所述各浏览请求进行处理。
通过预设的计算规则计算优先级时,服务端可以通过更改预设的计算规则,对计算得到的浏览请求的优先级进行调整,从而使得所述浏览请求的优先级更加符合用户的需求。
下述通过一些优先级标识的具体设定示例,对服务端计算优先级进行说明。
在具体实例中,优先级标识包括:场景优先级标识、网络接入点优先级标识、用户组别优先级标识。浏览请求中的优先级标识为添加至浏览请求中的一个无符号双字节整形值(即一个包括16位的二进制值)。
具体地,对于场景优先级标识,处于无符号双字节整形值的第1-5位,同时可以设定场景优先级标识的取值区间为1-31;另外,对于一些典型的场景,场景优先级标识可以设定如下:
对于用户触发的浏览请求,场景优先级标识可以设为21;对于验证码图片请求,场景优先级标识可以设为19;对于浏览器页面解析触发的外联Javascript资源请求,场景优先级标识可以设为17;对于浏览器页面解析触发的外联CSS资源请求,场景优先级标识可以设为15;对于预读请求,场景优先级标识可以设为13;对于浏览器页面Ajax执行触发的请求,场景优先级标识可以设为11;对于浏览器页面普通图片的加载请求,场景优先级标识可以设为9。
具体地,对于网络接入点优先级标识,处于无符号双字节整形值的第6-8位,同时可以设定网络接入点优先级标识的取值区间为1-7;另外,对于一些典型的网络接入点,网络接入点优先级标识可以设定如下:
若网络接入点为4G/Wifi,网络接入点优先级标识可以设为6;若网络接入点为3G,网络接入点优先级标识可以设为4;若网络接入点为基于3G网络的热点,网络接入点优先级标识可以设为3;若网络接入点为2G,网络接入点优先级标识可以设为2;若网络接入点为基于2G网络的热点,网络接入点优先级标识可以设为1;若不能识别网络接入点,网络接入点优先级标识可以设为4。
具体地,对于用户组别优先级标识,处于无符号双字节整形值的第9-14位,可以设定用户组别优先级标识的取值区间为1-31;另外,本实施例暂不对用户组别进行设置,用户组别优先级标识均记为1(暂时作为任意用户组)。
无符号双字节整形值的第15-16位作为预留,以备后继扩展。
另外,优先级标识还包括紧急优先级标识,此时无符号双字节整形值为255。紧急优先级标识可以用来标识urgent(紧急)的请求,服务端可以将紧急优先级标识对应的浏览请求直接作为最高优先级的浏览请求进行处理。
具体范例请参见表一
表一
表一中为基于上述设定,服务端可以根据优先级标识对应的无符号双字节整形值确定的场景优先级标识、网络接入点优先级标识、用户组别优先级标识,以及根据预设的计算规则计算得到的优先级的范例,对于表一中的优先级标识,服务端的计算规则如下:服务端计算后得到的优先级=场景优先级标识*2+网络接入点优先级标识+用户组别优先级标识,其中,2为所述场景优先级标识的权重,所述网络接入点优先级标识和所述用户组别优先级标识的权重均为1。另外需要说明的是表一中的数字均为十进制数字。
当然,上述的设定、计算公式等仅用作举例说明,并不作为本申请的限定,本领域的技术人员可疑根据上述示例,无需付出创造性劳动即可确定出其他实施方案,这些技术方案也属于本申请的保护范围内。
实施例三
图3为本申请实施例提供的另一种步骤S12的具体实现方法流程示意图,本实施例主要描述了服务端的实现方式。
如图3所示,上述实施例中的所述步骤S12包括:
S123、按照所述浏览请求放置时的先后顺序,扫描预设数量的浏览请求。
由于服务端最新获取的浏览请求可以放置在请求处理队列的头部,则可以确定请求处理队列的尾部的浏览请求的时间戳是最早的。此时,可以从请求处理队列的尾部开始扫描浏览请求。当然,浏览请求还可以通过其他方式放置在请求处理队列中,例如,放置在请求处理队列的尾部等,也可以从请求处理队列的头部开始扫描浏览请求。
另外需说明的是,本实施例中的所述预设数量可以根据业务需求确定,具体地,业务需求可以通过用户线程数的限定值、平均每个浏览请求在用户线程的处理耗时、繁忙时段服务端获得的浏览请求的并发量等确定。
由于只有服务端存在空闲,即服务端存在空闲线程时,才能够实现对浏览请求的处理。在本实施例的具体实现中,在所述步骤S123之前,还可以包括:
判断所述服务端是否存在空闲;若所述服务端存在空闲,则执行步骤S123;若服务端不存在空闲,则不执行步骤S123。
通过判断服务端是否存在空闲,再根据判断结果确定是否执行步骤S123,可以减少服务端运行的进程。
若所述请求处理队列为空,则无需执行步骤S123,从而进一步减少服务端运行的进程。在本实施例的具体实现中,在所述步骤S123之前,还可以包括:
判断所述请求处理队列是否为空;若所述请求处理队列不为空,则执行步骤S123;若请求处理队列为空,则直接结束。本实施例具体实现中,还可以预先设置一优先级扫描触发阈值,从而进一步减少服务端运行的进程。当所述请求处理队列中的所述浏览请求数量超过所述预先设定的优先级扫描触发阈值时,则执行步骤S123。具体地,所述优先级扫描触发阈值设定为1,即当所述请求处理队列中有多于1个浏览请求等待处理时,执行步骤S123。
若所述请求处理队列中的所述浏览请求并未发生变化,即所述请求处理队列中的所述浏览请求未增加也未减少,则无需执行步骤S123,从而进一步减少服务端运行的进程。在本实施例的具体实现中,在所述步骤S123之前,还可以包括:
判断所述请求处理队列中的所述浏览请求是否发生变化,若发生变化,则执行步骤S123;若未发生变化,则直接执行步骤S124。
S124、按照所述优先级,对被扫描的所述预设数量的浏览请求中的至少一浏览请求进行处理。
具体地,所述浏览请求可以按照优先级分派到用户线程进行处理;若空闲的用户线程包括多个,则可以选取与空闲的用户线程的数量相同的、优先级最高的浏览请求,分派到空闲的用户线程进行处理。
例如,可以设请求处理队列中包括浏览请求A、浏览请求B、浏览请求C、浏览请求D、浏览请求E,五个浏览请求,浏览请求E处于请求处理队列头部,浏览请求A处于请求处理队列尾部。按照请求处理队列中从头到尾的排列顺序,被扫描前的五个浏览请求依次为:浏览请求E(优先值设为30)、浏览请求D(优先值设为25)、浏览请求C(优先值设为18)、浏览请求B(优先值设为26)、浏览请求A(优先值设为23)。
多次扫描请求处理队列后,按照浏览请求的优先级顺序,浏览请求被处理顺序依次是浏览请求E,浏览请求B,浏览请求D,浏览请求A,浏览请求C;而按照现有技术中FIFO的方式进行处理,浏览请求被处理顺序依次是浏览请求A,浏览请求B,浏览请求C,浏览请求D,浏览请求E。此时可以发现,优先级最高的浏览请求E被优先进行处理,与按照严格的FIFO的方式进行处理相比,优先级最高的浏览请求E的耗时变低。
另外,原本应该第一个被处理的浏览请求A现在是第四个被处理的浏览请求,在浏览请求A被处理前,若请求处理队列中不断新增优先级高于浏览请求A的浏览请求,则可能出现浏览请求A一直不被处理的情况。
因此,本实施例具体实现中,参见图4,步骤S124之后,还可以包括:
S125、提高所述请求处理队列中被扫描过且并未被处理的所述浏览请求的优先级。
提高后的优先级可以作为下次扫描时浏览请求对应的优先级。通过提高被扫描过且并未被处理的浏览请求的优先级,可以避免浏览请求一直不被处理的情况出现。
具体地,如图5所示,上述步骤S125包括:
S1251、为所述请求处理队列中被扫描过且并未被处理的所述浏览请求添加动态优先级标识。
S1252、根据所述浏览请求被扫描前的优先级以及所述动态优先级标识,提高被扫描过、且并未被处理的所述浏览请求的优先级。
所述动态优先级标识的添加,可以补偿浏览请求在请求处理队列中消耗的等待时间。具体地,动态优先级标识可以根据浏览请求与请求处理队列尾部的距离、或者扫描的预设数量确定。
本实施例中,可以设动态优先级标识=扫描的预设数量–浏览请求与请求处理队列尾部的距离。假设扫描的预设数量为5,如果未选中的请求位于请求处理队列尾部(即倒数第一个浏览请求,此浏览请求与请求处理队列尾部的距离为0),则其所获得的该次动态优先级累加值为5(5-0);如果是倒数第二个浏览请求,则其所获得的该次动态优先级累加值为4(5-1);如果是倒数第五个浏览请求,则其所获得的该次动态优先级累加值为1(5-4)。
确定动态优先级标识后,可以根据所述浏览请求被扫描前的优先级以及所述动态优先级标识确定提高后的优先级,作为浏览请求下次被扫描时的优先级,此处,可以将确定的提高后的优先级命名为处理优先级。
以下仍然以请求处理队列中包括浏览请求A、浏览请求B、浏览请求C、浏览请求D、浏览请求E五个浏览请求,浏览请求E处于请求处理队列头部,浏览请求A处于请求处理队列尾部,同时设扫描的预设数量为5,另外,可以设处理优先级(即提高后的优先级)为优先级标识对应的优先级以及后续添加的动态优先级标识的和。
则按照请求处理队列中从头到尾的排列顺序,请求处理队列被扫描前的五个浏览请求依次为:浏览请求E(优先级设为30)、浏览请求D(优先级设为25)、浏览请求C(优先级设为18)、浏览请求B(优先级设为26)、浏览请求A(优先级设为23);由于五个浏览请求均为被扫描过,则五个浏览请求的动态优先级标识均为0,对应的,五个浏览请求第一次被扫描时的优先级即为以上设定的优先级。
第一次扫描后,选取浏览请求E(优先级最高)进行处理,其他四个未处理的浏览请求按照扫描前的位置添加动态优先级标识,按照上述动态优先级标识的添加方法,浏览请求D的动态优先级标识添加至2,处理优先级也对应增加为27;浏览请求C的动态优先级标识添加至3,处理优先级也对应增加为21;浏览请求B的动态优先级标识添加至4,处理优先级也对应增加为30;浏览请求A的动态优先级标识添加至5,处理优先级也对应增加为28。
第二次扫描后,选取浏览请求B(优先级最高)进行处理,其他三个未处理的浏览请求继续添加动态优先级标识,按照上述动态优先级标识的添加方法,浏览请求D的动态优先级标识添加至4,处理优先级也对应增加为29;浏览请求C的动态优先级标识至6,处理优先级也对应增加为24;浏览请求A的动态优先级标识添加至10,处理优先级也对应增加为33。
第三次扫描后,选取浏览请求A(优先级最高)进行处理,其他两个未处理的浏览请求继续添加动态优先级标识,按照上述动态优先级标识的添加方法,浏览请求D的动态优先级标识添加至7,处理优先级也对应增加为32;浏览请求C的动态优先级标识添加至10,处理优先级也对应增加为28。
第四次扫描后,选取浏览请求D(优先级最高)进行处理,剩余的浏览请求C的动态优先级标识添加至15,处理优先级也对应增加为33。
第五次扫描,由于只剩下一个浏览请求C,则不再进行扫描,直接对剩余的浏览请求C进行处理。
在根据所述浏览请求被扫描前的优先级以及所述动态优先级标识,提高被扫描过、且并未被处理的所述浏览请求的优先级后,该请求处理队列中的浏览请求处理顺序依次是浏览请求E,浏览请求B,浏览请求A,浏览请求D,浏览请求C。对比而言,仅按照优先级标识对应的优先级来进行处理,浏览请求被处理顺序依次是浏览请求E,浏览请求B,浏览请求D,浏览请求A,浏览请求C;仅按照现有技术中FIFO的方式进行处理,浏览请求被处理顺序依次是浏览请求A,浏览请求B,浏览请求C,浏览请求D,浏览请求E。
根据所述浏览请求被扫描前的优先级以及所述动态优先级标识,提高被扫描过、且并未被处理的所述浏览请求的优先级,可以在保证优先级高的浏览请求可以被较快处理的同时,也可以保证优先级低的浏览请求可以在有限的扫描次数内,通过提高优先级而被选取,从而可以避免由于不断有新增的优先级高的浏览请求而使得优先级低的浏览请求一直不能处理的情形。
下面对上述根据所述浏览请求被扫描前的优先级以及所述动态优先级标识,提高被扫描过、且并未被处理的所述浏览请求的优先级的方法进行举例说明。
初始场景仍然如上述设定,则初始状态如下:浏览请求E(优先级设为30)、浏览请求D(优先级设为25)、浏览请求C(优先级设为18)、浏览请求B(优先级设为26)、浏览请求A(优先级设为23)。
在此基础上,可以假定每个浏览请求处理的耗时都是固定且相等的,为0.5秒,用t_req表示;假设五个浏览请求之间的时间戳差异可忽略不计;假设每隔0.2秒(用t_thread表示)会有空闲的用户线程。
按照原来的FIFO的方式进行处理,浏览请求被处理顺序依次是浏览请求A,浏览请求B,浏览请求C,浏览请求D,浏览请求E。则浏览请求A从进入队列到完成处理的耗时T_a为0.7秒(t_req+t_thread*1),浏览请求B从进入队列到完成处理的耗时T_b为0.9秒(t_req+t_thread*2),以此类推,浏览请求E从进入队列到完成处理的耗时T_e为1.5秒(t_req+t_thread*5)。
在根据所述浏览请求被扫描前的优先级以及所述动态优先级标识,提高被扫描过、且并未被处理的所述浏览请求的优先级后,该请求处理队列的浏览请求被处理顺序依次是浏览请求E,浏览请求B,浏览请求A,浏览请求D,浏览请求C。则浏览请求E从进入队列到完成处理的耗时Te’为0.7秒(t_req+t_thread*1);浏览请求B从进入队列到完成处理的耗时T_b’为(t_req+t_thread*2),以此类推,浏览请求C从进入队列到完成处理的耗时T_c’为1.5秒(t_req+t_thread*5)。
由上述可知,优先级最高的浏览请求E的耗时减少最明显,优先级中的浏览请求B、浏览请求D耗时保持不变,优先级低的浏览请求A、浏览请求C的耗时有所增加。但处理五个浏览请求的耗时总数值(均为1.5秒)并没有发生变化。
但按照前述可知,对于优先级高的请求,应该缩短耗时来提高用户的满意度;例如,对于用户输入地址所触发的页面请求,用户等待的最长时间一般在2秒左右;而页面由于执行Ajax而触发的加载某些评论数据的请求,用户等待的最长时间可以在5秒左右,因此,本实施例中,可以按照浏览请求的优先级高的浏览请求进行优先处理,并通过添加动态优先级标识,将优先级较低的浏览请求的耗时控制在一定范围内,具体可以通过统计不同的优先级区间对应的耗时分布来确定。
需要另外说明的是,本申请中的实施例二与实施例三均为步骤S12按照所述请求处理队列中浏览请求的优先级标识对应的优先级,对所述浏览请求进行处理的具体实现方式,这两个实施例中的实现方式可以仅存在其中之一,也可以同时存在,同时存在时,需要先实行本实施例二中的技术方案,再实行实施例三中的技术方案。
实施例四
图6为本申请实施例提供的另一种浏览请求的处理方法流程示意图,本实施例主要描述了客户端的实现方式。如图6所示,其包括:
S61、根据浏览请求的优先级,生成优先级标识;
客户端生成的浏览请求可以包括多种不同的请求,例如,按照请求是否是用户主动触发来区分,客户端生成的浏览请求可以被分为主请求以及子请求,主请求为由于用户主动触发客户端而生成的请求,子请求可以为客户端在进行页面解析时生成的浏览请求。不同的浏览请求,对应不同的优先级,例如主请求的优先级可能较高,子请求的优先级可能较低,根据浏览请求的优先级,可以生成优先级标识。
S62、将所述优先级标识添加至所述浏览请求中,以使服务端根据所述浏览请求中的所述优先级标识对应的优先级,对所述浏览请求进行处理。
具体地根据所述浏览请求中的所述优先级标识对应的优先级,对所述浏览请求进行处理的方法可以参考上述服务端的相关实施例,本实施例在此不再赘述。
本申请实施例提供的浏览请求的处理方法,通过根据浏览请求的优先级,生成优先级标识,并将所述优先级标识添加至所述浏览请求中,从而可以将优先级高的浏览请求尽快地进行处理,进而减少优先级高的浏览请求的耗时,提高了用户的满意度。
实施例五
本实施例是在上述实施例的基础上,针对客户端,对将优先级标识添加到浏览请求中进行的详细说明。
本实施例中,优先级标识可以包括:场景优先级标识、网络接入点优先级标识、用户组别优先级标识中至少其一。
当优先级标识包括场景优先级标识时,客户端可以根据生成所述浏览请求的触发场景确定所述浏览请求的场景优先级标识。客户端发起的浏览请求的场景不同,对耗时方面的要求也不同。场景优先级标识对应的优先级可以随着浏览请求的耗时要求的变高而升高。
下面通过几种不同的场景对耗时要求的不同进行举例说明。
场景一、用户操作客户端进行主动触发而生成的浏览请求,对耗时的要求较高,对应的优先级也较高,例如,用户在浏览器的地址栏内进行输入、用户点击书签、用户点击历史、用户点击页面内的链接而生成的浏览请求等。
场景二、某些应用产生的预读请求,耗时的要求相对较低,对应的优先级也较低,比如小说阅读类别的网页应用,在浏览一个页面中的小说章节时,只要保证用户在看完本章节之前或者用户点击“下一章”的按钮前,完成对下一章的预读即可,耗时的要求相对较低。
场景三、某些页面中,例如新闻类页面、购物页面等,加载评论的浏览请求,由于评论并不影响网页的查看效果,因此加载评论的浏览请求耗时的要求相对较低,对应的优先级也较低。
场景四、页面外联的图片资源请求,由于加载的图片应用于不同的方面,耗时的要求也不同,例如对外联的验证码图片资源请求,耗时的要求相对较高,对应的优先级也较高;对页面外联的普通图片资源请求,耗时的要求相对较低,对应的优先级也较低。
当优先级标识包括网络接入点优先级标识时,可以根据生成所述浏览请求的客户端的网络接入方式确定所述浏览请求的网络接入点优先级标识。具体地,客户端所处的网络接入点网络速度不同,比如网速较低的2G网络,网速适中的3G网络,网速较快的4G/Wifi网络,用户浏览请求最终的响应速度也会有所不同,可以根据响应速度的不同确定浏览请求的优先级。网络接入点优先级标识对应的优先级可以随网络接入点网络速度的变慢而升高。
具体地,客户端的网络接入点可以通过接入点标识管理器确定,接入点标识管理器在客户端启动后,可以基于系统API(Application Programming Interface,应用程序编程接口)的调用来动态识别客户端所在的终端设备(如电脑、手机等)的接入点信息。同时,还可以监控移动设备的接入点切换/变化信息,从而保证确定的网络接入点的信息是准确的、实时的。
当优先级标识包括用户组别优先级标识时,可以根据生成所述浏览请求的客户端对应的用户组别确定所述浏览请求的用户组别优先级标识。例如,通过不同的浏览业务确定用户的组别、VIP与非VIP用户组别、不同国家地区的用户组别、浏览业务与不同运营商的商务合作而划分的用户组别等,不同的用户组别可以确定不同的用户组别优先级标识,不同的用户组别优先级标识对应的优先级也不同。
具体地,用户组别可以通过用户组别识管理器确定,用户组别识管理器在客户端启动后,可以根据客户端保存的信息或者与客户端管理后台的通信对用户所在的组别进行识别。用户组别仅需要识别一次,在后续进行验证即可,不需要在每次请求处理过程中重复识别。另外,如果用户组别不能识别(或者尚未对该用户进行分组),则作为“缺省用户组”。
所述优先级标识还可以包括紧急优先级标识,当优先级标识为紧急优先级标识时,服务端需要优先处理所述请求处理队列中的所述紧急优先级标识对应的浏览请求。
确定优先级标识后,客户端可以在客户端与服务端定义的交互协议中,通过定义新的协议字段来添加优先级标识,在添加优先级标识时,可以将优先级标识添加至浏览请求的前端,从而方便服务端进行读取。
若所述浏览请求基于http协议(通过post或者get)进行传输,当浏览请求通过post方式实现时,所述优先级标识可以添加至所述浏览请求的请求字段(header)中,或者添加在所述浏览请求承载的请求数据(body)中,以使服务端根据所述浏览请求中的所述优先级标识对应的优先级,对所述浏览请求进行处理;当浏览请求通过get的方式实现时,优先级标识可以添加至浏览请求的query参数中。由于http协议属于现有技术中网络传输的通用协议,因此,浏览请求基于http协议进行传输可以提高本申请提供的浏览请求处理方法的通用性。当然,在本申请的其他实现中,也可以浏览请求通过scoket的方式进行传输。
当优先级标识添加至所述浏览请求的请求字段(header)中时,可以在请求字段(header)中新增一个字段“X-req-prior”作为优先级标识字段,字段值可以是一个无符号双字节整型值,也可以为其他字节的整形值。
若浏览请求的实现方式为http post方式,将优先级标识添加至所述浏览请求的请求字段(header)中,可以让服务端在未接收浏览请求承载的请求数据(body)前就能够识别出浏览请求的优先级,同时,还可以通过与无线运营商或者固网提供商,在http请求传输层面按照优先级标识优先进行传输。
当优先级标识添加至所述浏览请求承载的请求数据(body)中时,可以在浏览请求的传输过程中,有效地减少添加的优先级标识被某些网关(例如安全级别较高的网关)过滤掉的可能性。但是服务端必须接收部分浏览请求承载的请求数据(body),才能够识别出浏览请求的优先级,且浏览器客户端需要保证该协议字段放置在请求body数据的最前端,才可以方便服务端进行识别。
本实施例中,以客户端为浏览器客户端、浏览请求为需云中转的浏览请求、浏览请求的实现方式为http post方式为例,对优先级标识包括场景优先级标识、网络接入点优先级标识、用户组别优先级标识时,根据浏览请求确定优先级标识的方法进行示例性说明,具体如图7所示,其包括:
S71、浏览器客户端内核触发需要云中转的浏览请求;
S72、识别浏览请求的触发场景,确定场景优先级标识;
S73、通过用户组别识别管理器检查用户所属的组别,根据用户所属的组别确定用户组别优先级标识;逻辑上,每次生成云中转浏览请求时,均对提供用户组别信息的接口进行查询,以进行验证。
S74、通过接入点标识管理器确定客户端的接入点信息,从而确定网络接入点优先级标识;逻辑上,每次生成云中转浏览请求后,均对接入点信息接口进行查询。
S75、按照预设的格式,将上述三种优先级标识进行汇总,添加到云中转浏览请求的“X-req-prior”字段中。
实施例六
图8为本申请实施例提供的一种浏览请求的处理装置结构示意图,如图8所示,其包括:
接入模块81用于将客户端浏览请求放置在请求处理队列中,所述浏览请求中包括优先级标识;处理模块82用于按照所述请求处理队列中浏览请求的优先级标识对应的优先级,对所述浏览请求进行处理。
可选地,本实施例中,所述优先级标识包括:场景优先级标识、网络接入点优先级标识、用户组别优先级标识中至少其一。
可选地,本实施例中,处理模块82包括:优先级计算单元,用于根据所述优先级标识以及预设的计算规则,计算所述请求处理队列中浏览请求的优先级;第一处理子单元,用于根据所述优先级对所述浏览请求进行处理。
可选地,本实施例中,处理模块82包括:扫描单元,用于按照所述浏览请求放置时的先后顺序,扫描预设数量的浏览请求;第二处理子单元,用于按照所述优先级,对被扫描的所述预设数量的浏览请求中的至少一浏览请求进行处理。
可选地,本实施例中,还包括:优先级提高单元,用于提高所述请求处理队列中被扫描过且并未被处理的所述浏览请求的优先级。
可选地,本实施例中,优先级提高单元包括:动态优先级标识添加子单元,用于为所述请求处理队列中被扫描过且并未被处理的所述浏览请求添加动态优先级标识;动态优先级标识处理子单元,用于根据所述浏览请求被扫描前的优先级以及所述动态优先级标识,提高被扫描过、且并未被处理的所述浏览请求的优先级。
可选地,本实施例中,所述优先级标识包括紧急优先级标识,处理模块82包括:紧急处理单元,用于优先处理所述请求处理队列中的所述紧急优先级标识对应的浏览请求。
本申请实施例提供的浏览请求的处理装置,在将包括的优先级标识的客户端浏览请求放置在请求处理队列中后,可以按照所述请求处理队列中各浏览请求的优先级标识对应的优先级,对所述各浏览请求进行处理,从而可以将优先级高的浏览请求尽快地进行处理,进而减少优先级高的浏览请求的耗时,提高了用户的满意度。
图9以接收的浏览请求的请求字段中新增一个字段“X-req-prior”作为优先级标识字段为例,对接入模块具体如何将浏览请求放置在请求处理队列中的流程进行说明。具体地,如图9所示,其包括:
S91、接入模块接收到一个新的客户端浏览请求;
S92、读取浏览请求的请求字段;
S93、从请求字段中提取出作为优先级标识的“X-req-prior”字段值;
S94、按照预设的计算规则,计算出优先级;
S95、把浏览请求的数据以及优先级封装后,放置在请求处理队列的队列头部。
通过将计算后的优先级与浏览请求进行封装,再放置在请求处理队列中,可以在后续直接读取浏览请求的优先级,不必再根据优先级标识进行计算,提高了处理速度。
参见图10,对具体如何将浏览请求分派至用户线程进行说明。如图10所示,其包括:
S101、检测是否有空闲的用户线程;若有,则执行以下步骤S102;
S102、检查请求处理队列是否为空,若否,则执行步骤S103,若是,则完成该次分派处理;
S103、检查请求处理队列中的请求数是否超过Trigger_threshold(即上述的请求优先级触发阈值),若是,则执行步骤,若否,则执行步骤S104;
S104、沿用FIFO的处理方式,完成该次分派处理;
S105、从请求处理队列的尾部向前扫描预设数量的浏览请求,如果请求处理队列中的请求数M小于预设数量,则扫描M个浏览请求,计算处理优先级;
S106、判断是否存在处理优先级最高的浏览请求,若是,则执行步骤S107,若否,则执行步骤S108;
S107、提取处理优先级最高的浏览请求,发送到空闲的用户线程;
S108、提取请求处理队列尾部的请求,发送到空闲的用户线程;
S109、对该次扫描过且未处理的浏览请求,计算并添加动态优先级标识,完成该次分派处理。
实施例七
图11为本申请实施例提供另一种浏览请求的处理装置结构示意图,如图11所示,其包括:标识生成模块111,用于根据浏览请求的优先级,生成优先级标识;标识添加模块112,用于将所述优先级标识添加至所述浏览请求中,以使服务端根据所述浏览请求中的所述优先级标识对应的优先级,对所述浏览请求进行处理。
可选地,本实施例中,所述优先级标识包括场景优先级标识、网络接入点优先级标识、用户组别优先级标识中至少其一。
可选地,本实施例中,标识生成模块111包括:场景优先级标识生成单元,用于根据生成所述浏览请求的触发场景确定所述浏览请求的场景优先级标识。
可选地,本实施例中,标识生成模块111包括:网络接入点优先级标识生成单元,用于根据生成所述浏览请求的客户端的网络接入方式确定所述浏览请求的网络接入点优先级标识。
可选地,本实施例中,标识生成模块111包括:用户组别优先级标识生成单元,用于根据生成所述浏览请求的客户端对应的用户组别确定所述浏览请求的用户组别优先级标识。
可选地,本实施例中,添加模块112包括:http协议添加单元,用于若所述浏览请求基于http协议进行传输,则所述优先级标识添加至所述浏览请求的请求字段中,或者添加在所述浏览请求承载的请求数据中,以使服务端根据所述浏览请求中的所述优先级标识对应的优先级,对所述浏览请求进行处理。
可选地,本实施例中,所述优先级标识包括紧急优先级标识,添加模块112包括:紧急优先级标识添加单元,用于将所述紧急优先级标识添加至所述浏览请求中,以使所述服务端优先处理所述请求处理队列中的所述紧急优先级标识对应的浏览请求。
本申请实施例提供的浏览请求的处理装置,通过根据浏览请求的优先级,生成优先级标识,并将所述优先级标识添加至所述浏览请求中,从而可以将优先级高的浏览请求尽快地进行处理,进而减少优先级高的浏览请求的耗时,提高了用户的满意度。
实施例八
图12为本申请实施例提供的一种浏览请求的处理系统的结构示意图,如图12所示,其包括客户端121、服务端122,客户端121与服务端122通信连接;客户端121,用于根据浏览请求的优先级,生成优先级标识,将所述优先级标识添加至所述浏览请求中;服务端122,用于将客户端浏览请求放置在请求处理队列中,所述浏览请求中包括优先级标识,按照所述请求处理队列中浏览请求的优先级标识对应的优先级,对所述浏览请求进行处理。
本实施例中,客户端121可以为手机、电脑、平板电脑安装的应用软件(如浏览器)等,本实施例在此不进行限定。
本实施例中,服务端122大多通过集群的方式进行部署,每个集群有多台硬件设备,每个硬件设备上可以运行多个服务进程,服务进程可以用于处理浏览请求。当然,服务端122也可以是其他的形式,如只有一台硬件设备等。
本申请实施例提供的浏览请求的处理系统,通过客户端根据浏览请求的优先级,生成优先级标识,并将所述优先级标识添加至所述浏览请求中,通过服务端将优先级较高的浏览请求进行优先处理,从而可以将优先级高的浏览请求尽快地进行处理,进而减少优先级高的浏览请求的耗时,提高了用户的满意度。
此外,本领域技术人员应该能够理解,上述的单元以及模块划分方式仅是众多划分方式中的一种,如果划分为其他单元或模块或不划分块,只要信息对象的具有上述功能,都应该在本申请的保护范围之内。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。