一种静态资源请求处理方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种静态资源请求处理方法及装置。
背景技术
目前,随着网络通信技术的进步和宽带网络的提速,越来越多的用户使用网络页面来交流或获取信息。
为了提升用户体验,各网页运营商需要根据节日、新闻或用户反馈需求等来频繁的更改网页的状态,这就需要通过静态资源请求来实现,网页的静态资源请求主要用来更改网页的显示及网页的功能。而每条静态资源请求的传输均需要服务器与客户端建立对应的超文本传输协议(HyperText Transfer Protocol,HTTP)请求来实现,当网页更改较多时,对应的静态资源请求数量就多,需要建立的HTTP请求连接数就越多。
然而,HTTP请求连接数过多会极大的影响客户端和服务器端对静态资源请求的处理速度,导致处理速度慢的技术问题。
发明内容
本发明提供一种静态资源请求处理方法及装置,用以解决现有技术中HTTP请求连接数过多导致的处理速度慢的技术问题。
一方面,本发明提供了一种静态资源请求的处理方法,包括:
获取N个静态资源请求,N为大于1的整数;
对所述N个静态资源请求进行分类,分为M类静态资源请求,M为小于N的正整数;
将所述M类静态资源请求中的每一类静态资源请求分别进行合并,共合并为M个总静态资源请求;
发送所述M个总静态资源请求至客户端。
可选的,所述对所述N个静态资源请求进行分类,包括:确定所述N个静态资源请求的功能,基于所述功能对所述N个静态资源请求进行分类;或者,确定所述N个静态资源请求的生成时间,基于所述生成时间对所述N个静态资源请求进行分类;或者,确定所述N个静态资源请求的获取来源,基于所述获取来源对所述N个静态资源请求进行分类。
可选的,所述将所述M类静态资源请求中的每一类静态资源请求分别进行合并,包括:将所述每一类静态资源请求中的所有静态资源请求合并在一条总静态资源请求中,以预设符号分隔所述每一类静态资源请求中的每条静态资源请求。
可选的,所述将所述M类静态资源请求中的每一类静态资源请求分别进行合并,包括:通过NGINX服务器和LUA语言,将所述M类静态资源请求中的每一类静态资源请求分别进行合并。
另一方面,提供一种静态资源请求的处理方法,包括:
获取总静态资源请求;
删除所述总静态资源请求中的域名信息;
按预设划分规则,对删除域名信息后的总静态资源请求进行划分,获得多个分请求;
分别执行所述多个分请求。
可选的,所述按预设划分规则,对删除域名信息后的总静态资源请求进行划分,包括:以预设符号为分隔符,对删除域名信息后的总静态资源请求进行划分。
可选的,在所述分别执行所述多个分请求之后,还包括:将执行所述多个分请求的执行结果合并写入缓存。
可选的,在所述将执行所述多个分请求的执行结果写入缓存之后,还包括:对合并后的所述执行结果进行MD5校验以获得K值;当收到K值与获得的所述K值相同的新静态资源请求时,把所述执行结果作为所述新静态资源请求的执行结果写入缓存。
再一方面,提供一种静态资源请求的处理装置,包括:
第一获取模块,用于获取N个静态资源请求,N为大于1的整数;
分类模块,用于对所述N个静态资源请求进行分类,分为M类静态资源请求,M为小于N的正整数;
合并模块,用于将所述M类静态资源请求中的每一类静态资源请求分别进行合并,共合并为M个总静态资源请求;
发送模块,用于发送所述M个总静态资源请求至客户端。
再一方面,提供一种静态资源请求的处理装置,包括
第二获取模块,用于获取总静态资源请求;
删除模块,用于删除所述总静态资源请求中的域名信息;
划分模块,用于按预设划分规则,对删除域名信息后的总静态资源请求进行划分,获得多个分请求;
执行模块,用于分别执行所述多个分请求。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例提供的方法及装置,对多个静态资源请求中的同一类静态资源请求进行合并,再将合并后的总静态资源请求发送至客户端,以减少静态资源请求数量,从而减少需要建立的HTTP请求连接数,进而加快对静态资源请求的处理速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一中静态资源请求的处理方法的流程图;
图2为本发明实施例二中静态资源请求的处理方法的流程图;
图3为本发明实施例三中静态资源请求的处理装置的结构示意图;
图4为本发明实施例四中静态资源请求的处理装置的结构示意图。
具体实施方式
本申请实施例通过提供一种静态资源请求处理方法及装置,用以解决现有技术中HTTP请求连接数过多导致的处理速度慢的技术问题。实现了提高静态资源请求处理速度的技术效果。
本申请实施例中的技术方案,总体思路如下:
获取N个静态资源请求,N为大于1的整数;对所述N个静态资源请求进行分类,分为M类静态资源请求,M为小于N的正整数;将所述M类静态资源请求中的每一类静态资源请求分别进行合并,共合并为M个总静态资源请求;发送所述M个总静态资源请求至客户端。
上述方法通过对多个静态资源请求中的同一类静态资源请求进行合并,再将合并后的总静态资源请求发送至客户端,以减少静态资源请求数量,从而减少需要建立的HTTP请求连接数,进而加快对静态资源请求的处理速度。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供一种静态资源请求的处理方法,如图1所示,所述方法包括:
步骤S101,获取N个静态资源请求,N为大于1的整数;
步骤S102,对所述N个静态资源请求进行分类,分为M类静态资源请求,M为小于N的正整数;
步骤S103,将所述M类静态资源请求中的每一类静态资源请求分别进行合并,共合并为M个总静态资源请求;
步骤S104,发送所述M个总静态资源请求至客户端。
在本申请实施例中,所述方法可以应用于服务器端。
下面,结合图1详细介绍所述静态资源请求的处理方法的实施步骤。
首先,执行步骤S101,获取N个静态资源请求,N为大于1的整数。
需要说明的是,所述N个静态资源请求可以是网页维护人员撰写输入的请求,也可以是接收到的其他电子设备发送的请求,在此不作限制。
然后,执行步骤S102,对所述N个静态资源请求进行分类,分为M类静态资源请求,M为小于N的正整数。
在本申请实施例中,所述对所述N个静态资源请求进行分类,包括:
确定所述N个静态资源请求的功能,基于所述功能对所述N个静态资源请求进行分类;或者,
确定所述N个静态资源请求的生成时间,基于所述生成时间对所述N个静态资源请求进行分类;
确定所述N个静态资源请求的获取来源,基于所述获取来源对所述N个静态资源请求进行分类。
举例来说,当所述N个静态资源请求中有一部分是用于改变网页显示状态的请求,还有一部分是用于改变网页播放音乐的请求,另外还有一部分是用于改变网页交互模式的请求,则可以将所述N个静态资源请求按照功能分为三类。
当然,在具体实施过程中,还可以根据N个静态资源请求所针对更改的网页的网页域名来进行分类,即,将同一网页域名对应的静态资源请求划分为一类。
再下来,执行步骤S103,将所述M类静态资源请求中的每一类静态资源请求分别进行合并,共合并为M个总静态资源请求。
例如,假设12个静态资源请求按照功能分为8个用于网页显示更改和4个用于网页功能更改两大类,则对应可以将所述8个用于网页显示更改的静态资源请求合并为一条请求,将4个用于网页功能更改的静态资源请求合并为另一条请求,合并后共有2条总静态资源请求,只需要建立2条HTTP请求连接,能大大减少需要建立的HTTP请求连接数量。
在本申请实施例中,合并所述静态资源请求的方法较多,下面列举两种为例:
第一种、采用预设分隔符号来划分。
即,所述将所述M类静态资源请求中的每一类静态资源请求分别进行合并,包括:
将所述每一类静态资源请求中的所有静态资源请求合并在一条总静态资源请求中,以预设符号分隔所述每一类静态资源请求中的每条静态资源请求。
具体来讲,所述预设符号可以是分号、逗号、破折号、斜杠或空格等,在此不再一一列举,也不作限制。
例如:需要合并的请求为a1,a2,a3和a4,则以分号为分隔符,将其合并为a1;a2;a3;a4。
第二种,采用预设语句来划分。
例如,需要合并的请求为a1,a2,a3和a4,则采用预设语句“AND”将其合并为a1 ANDa2 AND a3 AND a4。
在本申请实施例中,对静态资源请求的合并主要是通过NGINX服务器和LUA脚本语言来实现的。
再下来,执行步骤S104,发送所述M个总静态资源请求至客户端。
具体来讲,由于通过合并同类的静态资源请求减少了静态资源请求的数量,故发送所述M个总静态资源请求至客户端,只需要建立M条HTTP请求连接,减少了HTTP请求连接的数量,提高了静态资源请求的处理速度。
基于同一发明构思,本申请还提供了与实施例一中静态资源请求的处理方法对应的方法,详见实施例二。
实施例二
本实施例提供了一种静态资源请求的处理方法,如图2所示,所述方法包括:
步骤S201,获取总静态资源请求;
步骤S202,删除所述总静态资源请求中的域名信息;
步骤S203,按预设划分规则,对删除域名信息后的总静态资源请求进行划分,获得多个分请求;
步骤S204,分别执行所述多个分请求。
需要说明的是,本实施例中提供的方法是与实施例一中提供的方法对应的。实施例一的方法主要是对静态资源请求的合并,而本实施例提供的方法是解决如何从合并后的静态资源请求中划分出原来的各条静态资源请求,并执行。
在具体实施过程中,本实施例的方法可以应用于客户端。
下面,结合图2,详细介绍本实施例提供的静态资源请求的处理方法的实施步骤:
首先,执行步骤S201,获取总静态资源请求。
具体来讲,可以是服务器通过与客户端建立的HTTP请求连接,将实施例一中合并后的所述总静态资源请求发送至所述客户端。
然后,执行步骤S202,删除所述总静态资源请求中的域名信息。
具体来讲,由于静态资源请求中除了各条分请求外,还有需要更改的网页的域名信息,以确定需要更改的是哪个网页,在划分出各分请求前,可以先删除所述域名信息。
再下来,执行步骤S203,按预设划分规则,对删除域名信息后的总静态资源请求进行划分,获得多个分请求。
需要说明的是,本实施例中对总静态资源请求进行划分的方法,应该与实施例一中该总静态资源请求的合并方法对应,才能实现准确划分。
举例来说,如果所述总静态资源请求的合并方法为:将所述每一类静态资源请求中的所有静态资源请求合并在一条总静态资源请求中,以预设符号分隔所述每一类静态资源请求中的每条静态资源请求。则对应的,对删除域名信息后的总静态资源请求进行划分的方法为:以所述预设符号为分隔符,对删除域名信息后的总静态资源请求进行划分。
具体来讲,所述预设符号可以是分号、逗号、破折号、斜杠或空格等,在此不再一一列举,也不作限制。
采用预设语句来合并生成总静态资源请求时的划分方法与之类似,在此不再累述。
然后,执行步骤S204,分别执行所述多个分请求。
在本申请实施例中,在所述分别执行所述多个分请求之后,还包括:
将执行所述多个分请求的执行结果合并写入缓存。
进一步,在所述将执行所述多个分请求的执行结果写入缓存之后,还包括:
对合并后的所述执行结果进行MD5校验以获得K值;
当收到K值与获得的所述K值相同的新静态资源请求时,把所述执行结果作为所述新静态资源请求的执行结果写入缓存。
具体来讲,将每次的所述执行结果合并写入缓存,能并于后续再接收到同样的总静态资源请求时,能直接提取缓存中存储的所述执行结果来使用,能极大的减少计算量,提高计算速度。
进一步,为了能便于判断后续接收到的总静态资源请求是否与之前执行过的总静态资源请求为相同的请求,可以对每次的执行结果进行MD5校验以获得该总静态资源请求对应的K值。在后续其他总静态资源请求中可以通过写入K值来帮助客户端判断接收到的总静态资源请求是否曾经接收过。如果后续收到同样K值的请求时直接把执行结果写入缓存,以减少***计算量。
例如,对总静态资源请求A进行MD5校验,获得K值为x时,客户端返回该K值至服务器端,以使服务器端的维护人员获知,则下次再编写同样的总静态资源请求B时,可以写入同样的K值x,当客户端获得总静态资源请求B时,通过提取出K值,就可以判断出总静态资源请求B与总静态资源请求A是同一请求,即将总静态资源请求A的执行结果提取出来,直接使用。
基于同一发明构思,本申请还提供了与实施例一中静态资源请求的处理方法对应的装置,详见实施例三。
实施例三
本实施例提供了一种静态资源请求的处理装置,如图3所示,该装置包括:
第一获取模块301,用于获取N个静态资源请求,N为大于1的整数;
分类模块302,用于对所述N个静态资源请求进行分类,分为M类静态资源请求,M为小于N的正整数;
合并模块303,用于将所述M类静态资源请求中的每一类静态资源请求分别进行合并,共合并为M个总静态资源请求;
发送模块304,用于发送所述M个总静态资源请求至客户端。
在本申请实施例中,所述装置可以是一***立的服务器,也可以是多台服务器组成的服务器群,在此不作限制。
由于本发明实施例三所介绍的装置,为实施本发明实施例一的静态资源请求的处理方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请还提供了与实施例二中静态资源请求的处理方法对应的装置,详见实施例四。
实施例四
本实施例提供了一种静态资源请求的处理装置,如图4所示,所述装置包括:
第二获取模块401,用于获取总静态资源请求;
删除模块402,用于删除所述总静态资源请求中的域名信息;
划分模块403,用于按预设划分规则,对删除域名信息后的总静态资源请求进行划分,获得多个分请求;
执行模块404,用于分别执行所述多个分请求。
在本申请实施例中,所述装置可以为Android***,IOS***或Windows***,在此不作限制。所述装置可以为智能手机,平板电脑或台式机,在此也不作限制。
由于本发明实施例四所介绍的装置,为实施本发明实施例二的静态资源请求的处理方法所采用的装置,故而基于本发明实施例二所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例二的方法所采用的装置都属于本发明所欲保护的范围。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请实施例提供的方法及装置,对多个静态资源请求中的同一类静态资源请求进行合并,再将合并后的总静态资源请求发送至客户端,以减少静态资源请求数量,从而减少需要建立的HTTP请求连接数,进而加快对静态资源请求的处理速度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。