CN103561082A - 压缩请求的处理方法及服务器 - Google Patents
压缩请求的处理方法及服务器 Download PDFInfo
- Publication number
- CN103561082A CN103561082A CN201310527084.XA CN201310527084A CN103561082A CN 103561082 A CN103561082 A CN 103561082A CN 201310527084 A CN201310527084 A CN 201310527084A CN 103561082 A CN103561082 A CN 103561082A
- Authority
- CN
- China
- Prior art keywords
- compression request
- server
- stage
- pretreatment stage
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明公开了一种压缩请求的处理方法及服务器,该压缩请求的处理方法包括:服务器接收客户端发送的压缩请求,其中,该压缩请求为客户端检测到待请求的业务量大于预定值时所生成的;在预处理阶段对接收到的压缩请求进行解析,获得非压缩数据;以及在内容处理阶段将获得的非压缩数据发送给超文本预处理器,由超文本预处理器对接收到的非压缩数据进行处理。本发明实施例借助Nginx服务器的阶段机制,将需要进行解压缩等大计算量的操作在预处理阶段利用Lua来实现,在内容处理阶段将非压缩数据交由PHP来完成最终的处理,使得Lua和PHP可以协同运行,从而可以高效地实现对压缩请求的解压缩。
Description
技术领域
本发明涉及计算机技术,具体涉及一种压缩请求的处理方法及服务器。
背景技术
移动终端与计算设备(例如,计算机)之间传输数据通常采用数据线进行传输。采用数据线进行传输,也就是在移动终端和计算机之间连接上数据线,从计算机上选择要传送到移动终端上的文件,发送到移动终端上。这种传输的优点是传输速度快,缺点就是麻烦,对microUSB接口有磨损。
移动终端与计算机之间传送数据的另一种方式是采用无线传输。对于无线传输而言,主要有以下情况:
1)有无线路由
这种方式是移动终端通过wifi连到路由,计算机通过wifi或网线连到路由;在移动终端上用websharing、虚拟数据线、文件大师等软件开通ftp服务,计算机上用浏览器打开ftp后,进行文件传输。
2)没有无线路由,计算机有无线网卡
a.无线网卡支持mywifi技术
把计算机设为wifi热点(xp下手工设置,win7下手工设置或用connectify软件),移动终端通过wifi连到计算机;在移动终端上用websharing、虚拟数据线、文件大师等软件开通ftp服务,计算机上用浏览器打开ftp后进行文件传输。
b.无线网卡不支持mywifi技术
把移动终端wifi热点打开,计算机通过wifi连到移动终端;在移动终端上用websharing、虚拟数据线、文件大师等软件开通ftp服务,计算机上用浏览器打开ftp后进行文件传输。
Nginx(engine x)是一款轻量级的Web服务器,其特点是占有内存少,并发能力强。
超文本预处理器(PHP)是一种通用开源脚本语言,其语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。
目前,Nginx与PHP是最流行的Web组合,有时客户端需要传递数据,但因为数据体积比较大,一方面需要很长的传输时间,另一方面降低了用户的体验,所以希望在客户端将数据压缩后再传递,然后服务器端接收到数据解压缩后再处理。实际上Nginx目前已经有了若干个和压缩相关的模块,但它们都是和HTTP响应相关的模块,而我们需要的是和HTTP请求相关的模块。
由于PHP内建有解压缩(gzdecode)方法,所以本身有能力解压缩压缩请求。如果通过PHP内建的gzdecode方法来解压缩压缩请求,虽然没有实现难度,但是鉴于PHP本身的性能并不高,同时解压缩是一个很消耗CPU的操作,所以在大访问量的情况下,PHP会成为解压缩性能的瓶颈。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的压缩请求的处理方法及服务器。
根据本发明的一个方面,提供了一种压缩请求的处理方法,包括:
服务器接收客户端发送的压缩请求,其中,该压缩请求为所述客户端检测到待请求的业务量大于预定值时所生成的;
在预处理阶段对接收到的所述压缩请求进行解析,获得非压缩数据;以及
在内容处理阶段将获得的所述非压缩数据发送给超文本预处理器,由所述超文本预处理器对接收到的所述非压缩数据进行处理。
根据本发明的另一方面,提供了一种服务器,包括:
接收模块,适于接收客户端发送的压缩请求,其中,该压缩请求为所述客户端检测到待请求的业务量大于预定值时所生成的;
解析模块,适于在预处理阶段对接收到的所述压缩请求进行解析,获得非压缩数据;以及
处理模块,适于在内容处理阶段将获得的所述非压缩数据发送给超文本预处理器,由所述超文本预处理器对接收到的所述非压缩数据进行处理。
本发明实施例借助Nginx服务器的阶段机制,将需要进行解压缩等大计算量的操作在预处理阶段利用Lua来实现,在内容处理阶段将非压缩数据交由PHP来完成最终的处理,使得Lua和PHP可以协同运行,从而可以高效地实现对压缩请求的解压缩。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的压缩请求的处理方法的流程图;
图2示出了根据本发明另一个实施例的压缩请求的处理方法的流程图;
图3示出了根据本发明一个实施例的压缩请求的处理方法的阶段示意图;
图4示出了根据本发明一个实施例的服务器的结构示意图;
图5示出了根据本发明另一个实施例的服务器的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的压缩请求的处理方法的流程图。如图1所示,该方法包括:
步骤S101、服务器接收客户端发送的压缩请求,其中,该压缩请求为所述客户端检测到待请求的业务量大于预定值时所生成的;
客户端检测到待请求的业务量大于预定值即客户端检测到待请求的业务量较大时,将待请求的业务信息生成一个压缩请求,然后向服务器发送该压缩请求;上述预定值可以根据需要设置,待请求的业务包括各种类型的业务,例如手机升级业务、数据下载业务等;上述压缩请求可以为Gzip格式,Gzip格式是GNUzip的缩写,发送Gzip格式的压缩请求可以缩减请求大小,加快传输速度;
步骤S102、在预处理阶段对接收到的压缩请求进行解析,获得非压缩数据;
上述服务器可以为Nginx服务器,而Nginx服务器本身有一个阶段(Phases)机制,具体地,一个压缩请求可以分成好多个阶段,比如预处理(access)阶段和内容处理(content)阶段,其中,access阶段用来对请求做一些预处理;content阶段用来处理最终的响应数据;
在预处理阶段可以使用脚本语言对接收到的压缩请求进行解析,例如,可以使用脚本语言例如Lua调用数据压缩库(zlib)或者使用Lua调用外部函数接口(FFI)对接收到的压缩请求进行解析;当然也可以使用其他类型的脚本语言例如perl替代Lua;其中,lua是用标准C语言编写的,代码简洁优美,几乎在所有操作系统和平台上都可以编译运行,它的优点是小巧和灵活,而且又是动态语言且是解释执行的,所以适合用在嵌入式环境里;由于Lua的解释器是预编译性质的,所以明显比其他的脚本语言快许多,这也是本实施例选择Lua作为优选脚本语言的原因之一;由于Lua很容易被C/C++代码调用,也可以反过来调用C/C++的函数,所以Lua在应用程序中可以被广泛应用,并且容易理解和维护;另外,Lua有一个同时进行的即时编译器(JIT)项目,提供在特定平台上的即时编译功能,这将给Lua带来更加优秀的处理性能;
另外,因为Nginx自身有一个比较好的插件机制,所以在预处理阶段可以通过C语言或其他语言创建一个封装zlib的解压缩模块,通过该解压缩模块中的zlib来解压缩压缩请求中的Gzip数据。不过如果通过C语言创建解压缩模块的方法来解压缩Gzip请求,势必要求程序员要能够驾驭C语言,这本身是一个不低的技术门槛,所以此方案存在一定的实现难度,同时使用C语言实现的解压缩模块,其可维护性并不好,后期的部署、升级等等工作都很繁琐;
步骤S103、在内容处理阶段将获得的非压缩数据发送给超文本预处理器(PHP),由PHP对接收到的非压缩数据进行处理;
由于Nginx服务器在处理压缩请求时,会先运行access阶段然后进入到content阶段,而步骤S102中在access阶段会完成压缩请求的解析,将数据还原成非压缩状态,然后Nginx服务器会正常进入到content阶段,将非压缩数据交给PHP,由PHP完成最终的处理,这样Lua和PHP就可以协同运行了。
步骤S104、向客户端返回提示信息。
该步骤S104为可选步骤,服务器对部分类型的业务例如手机升级业务、数据下载业务处理后会向对应的客户端返回提示信息,例如升级提示信息、下载状态信息等;但对于部分类型的业务进行处理后,可能不需要返回提示信息。
本实施例中,通过在Nginx服务器内嵌高性能脚本语言Lua的方式,保证了预处理阶段对接收到的压缩请求的解析性能,虽然使用Lua脚本语言进行程序开发,但是在性能上并不逊色于C语言,同时代码的可维护性大大提升。
由此可见,在Nginx服务器结合PHP的环境下,由于PHP本身存在一些短板,所以尽量避免用它去实现诸如解压缩等大计算量的功能,通过在Nginx服务器内嵌Lua,借助Lua的高性能,可以保证高效率地实现诸如解压缩等大计算量的功能,最后借助Nginx本身的Phases机制,让Lua和PHP协同运行,从而保证压缩请求的处理性能。
图2示出了根据本发明另一个实施例的压缩请求的处理方法的流程图,该方法可以应用在手机助手升级业务上。如图2所示,该方法包括:
步骤S201、服务器接收客户端发送的Gzip格式的压缩请求,该压缩请求包括终端侧安装业务的应用包名和版本号;
通常情况下,用户每个手机都会安装很多应用,包括自己安装的和系统内置的,加起来大概有一百到两百个左右,手机助手有一个功能是查询该手机有哪些应用需要升级,例如,以有线方式为例,计算机端主动调用服务器端的接口,将手机上的软件包名,版本号通知服务器端;服务器端返回对应的最新版本号,apk软件的下载地址URL;计算机端判断哪些软件需要升级后,就开始下载调用公司的公共下载模块进行下载。
当手机助手检测到需要升级的业务应用较多时,需要把本机安装的应用包名和版本号以Gzip压缩请求的形式发送到服务器,由于Gzip压缩请求可以将请求大小缩减至1/10左右的大小,从而可以提升响应速度。
手机助手可以位于手机终端上,也可以位于计算机上。
具体地,服务器可以获取计算机的设备标识和移动设备的终端数据。而后确定移动设备认证通过后,服务器可以构建所述设备标识和所述终端数据的映射关系,从而建立所述计算机和所述移动设备的关联关系。
其中,所述设备标识用于标识一个计算机,如,计算机的IP地址,网卡地址和MID值等。其中,MID(Mobile Internet Device,移动互联网设备)值是通过移动设备的硬件的编号计算出的唯一的特征值。
所述终端数据是移动设备的相关数据,如移动设备的名称,移动设备的国际移动设备身份码(International Mobile Equipment Identity,IMEI),移动设备的型号等,此外,若移动设备是手机,则对应的终端数据还可以包括该手机的手机号码。其中,所述IMEI可以唯一标识一个移动设备。
本发明实施例中,可以将所述映射关系保存于关联信息表中,所述关联信息表包括:设备标识、国际移动设备身份码、手机号码和连接创建时间等。
其中,关联信息表的一种示例结构可以是:
其中,“客户端ID”指代计算机,“设备ID”指代移动设备。
计算机和移动设备在连接建立前后,传送请求、响应等消息时,消息的相关数据也可以存储在服务器的数据库中,对应的数据库表可以是:
上述仅是本发明实施例的一种具体实施方式,在实际处理中会由于需求、数据库等的不同而不同,不应理解为是对本发明的限制。
因此,在本实施例中,客户端可以为手机,即位于手机终端上的手机助手在检测到手机上需要升级的业务应用较多时,把该手机上安装的应用包名和版本号以Gzip压缩请求的形式发送到服务器;客户端也可以为计算机,即手机通过USB线或其他方式与计算机相连,当手机与计算机相连后,计算机会记录该手机上安装的应用信息,从而使得位于计算机上的手机助手在检测到手机上需要升级的业务应用较多时,将该手机上安装的应用包名和版本号以Gzip压缩请求的形式发送到服务器;由于手机上网的速度通常不如计算机,因此,通过计算机向服务器发送压缩请求比通过手机向服务器发送压缩请求速度更快,效率更高;另外,在手机不能上网的情况下或将手机从计算机拔出的情况下,也可以通过能上网的计算机向服务器发送压缩请求,且效率较高;
步骤S202、设置配置文件;
在本实施例中,需要设置nginx服务器的配置文件,该配置文件包括预处理阶段执行的脚本文件、FastCGI的配置文件等内容,具体示例如下:
其中,gzip.lua为预处理阶段执行的脚本文件,FastCGI是一个常驻(long-live)型的公共网关接口(CGI),可以一直执行着,其在激活后不会每次都要花费时间去创建(fork)一个进程,这也是它与CGI的主要区别;
设置上述配置文件的目的是为了在nginx服务器接收到Gzip格式的压缩请求后,可以按照预处理阶段和内容处理阶段的先后顺序进行执行,其对应的阶段示意图如图3所示;
步骤S203、在预处理阶段对接收到的压缩请求进行解析,获得非压缩数据;
在该实施例中,在预处理阶段可以使用脚本语言Lua调用zlib对接收到的压缩请求进行解析,具体示例如下:
另外,在预处理阶段还可以使用Lua调用FFI对接收到的压缩请求进行解析,具体示例如下:
上述两个解析过程的基本原理相似,可以根据客观情况来选择使用,但不管选择哪种解析过程,均可以将对应的解析程序命名为gzip.lua,以备在Access阶段调用;
步骤S204、在内容处理阶段将获得的非压缩数据发送给超文本预处理器,由超文本预处理器对接收到的上述非压缩数据进行处理;
经过上述步骤S201-203可以高效地解压缩Gzip格式的压缩请求,但是由于PHP才是最终数据的使用方,所以需要将数据从Lua过渡给PHP,因为Lua和PHP都是运行在Nginx服务器上的,而Nginx服务器本身有一个Phases机制,具体地,一个压缩请求可以分成好多个阶段,比如用来对请求做一些预处理的access阶段,用来处理最终的响应数据的content阶段;PHP通常是运行在content阶段的,而Lua代码可以运行在access阶段;Nginx服务器在实际处理请求时,会先运行access阶段,Lua代码在此阶段完成Gzip请求的解析,把压缩数据还原成非压缩状态,然后Nginx会正常进入到content阶段,通过FastCGI将非压缩数据交由PHP,PHP获得非压缩数据后就可以根据应用包名和版本号来查询是否有对应的升级信息,处理,如图3所示,Lua和PHP就可以协同运行了;当然,也可以将FastCGI替换为CGI,但这样会降低处理效率;
步骤S205、向客户端返回升级提示信息。PHP查询到有对应的升级信息后,向客户端返回升级提示信息,该升级提示信息包括需要升级的应用包名和版本号,例如可以以弹窗的方式告知手机用户,以便手机用户获知哪些业务应用可以升级。
在本实施例中,借助Nginx服务器的Phases机制将需要进行解压缩等大计算量的操作在access阶段利用Lua来实现,在content阶段将非压缩数据交由PHP来完成最终的处理,使得Lua和PHP可以协同运行,从而可以高效地实现压缩请求的解压缩。
图4示出了根据本发明一个实施例的服务器的结构示意图。如图4所示,该服务器包括接收模块41、解析模块42和处理模块43,其中:
接收模块适于接收客户端发送的压缩请求,该压缩请求为上述客户端检测到待请求的业务量大于预定值时所生成的;解析模块适于在预处理阶段对接收到的上述压缩请求进行解析,获得非压缩数据;处理模块适于在内容处理阶段将获得的上述非压缩数据发送给超文本预处理器,由上述超文本预处理器对接收到的上述非压缩数据进行处理。
具体地,客户端检测到待请求的业务量大于预定值时,将待请求的业务信息生成一个压缩请求,然后向服务器发送该压缩请求;上述预定值可以根据需要设置,待请求的业务包括各种类型的业务,例如手机升级业务、数据下载业务等;上述压缩请求可以为Gzip格式,发送Gzip格式的压缩请求可以缩减请求大小,加快传输速度。
上述解析模块在预处理阶段可以使用脚本语言或插件对接收到的上述压缩请求进行解析。上述脚本语言包括Lua语言和Perl语言等,具体地,可以使用脚本语言例如Lua调用数据压缩库(zlib)或者使用Lua调用外部函数接口(FFI)对接收到的压缩请求进行解析,具体实现示例可参见方法实施例中步骤S203的相关描述;当然也可以使用其他类型的脚本语言替代Lua;其中,lua是用标准C语言编写的,几乎在所有操作系统和平台上都可以编译运行,它的优点是小巧和灵活,而且又是动态语言且是解释执行的,所以适合用在嵌入式环境里;由于Lua的解释器是预编译性质的,所以明显比其他的脚本语言快许多,这也是本实施例选择Lua作为优选脚本语言的原因之一;由于Lua很容易被C/C++代码调用,也可以反过来调用C/C++的函数,所以Lua在应用程序中可以被广泛应用,并且容易理解和维护。另外,因为该服务器自身有一个比较好的插件机制,所以在预处理阶段可以通过C语言或其他语言创建一个封装zlib的解压缩模块,通过该解压缩模块中的zlib来解压缩压缩请求中的Gzip数据。不过如果通过C语言创建解压缩模块的方法来解压缩Gzip请求,势必要求程序员要能够驾驭C语言,这本身是一个不低的技术门槛,所以此方案存在一定的实现难度,同时使用C语言实现的解压缩模块,其可维护性并不好,后期的部署、升级等等工作都很繁琐。
该服务器可以为Nginx服务器或其他类型的服务器,由于Nginx服务器在处理压缩请求时,会先运行access阶段然后进入到content阶段,而在access阶段会完成压缩请求的解析,将数据还原成非压缩状态,然后会正常进入到content阶段,在content阶段通过FastCGI将非压缩数据交给PHP,由PHP完成最终的处理,这样Lua和PHP就可以协同运行了。
上述FastCGI是一个常驻型的CGI,可以一直执行着,其在激活后不会每次都要花费时间去创建(fork)一个进程;虽然FastCGI也可以由CGI或其他功能模块来替代,但由于CGI在激活后每次都要花费时间去创建(fork)一个进程,所以会大大降低处理的效率,从而降低上述服务器的解压缩性能。
上述解析模块通过高性能的脚本语言Lua对压缩请求进行解析,保证了对接收到的压缩请求的解析性能,虽然使用Lua脚本语言进行程序开发,但是在性能上并不逊色于C语言,同时代码的可维护性大大提升。
另外,对于某些类型的业务,需要向客户端返回提示信息,因此,上述处理模块还可以在由超文本预处理器对接收到的上述非压缩数据进行处理之后,向客户端返回提示信息,该提示信息包括升级提示信息、下载状态提示信息等。
由于通常情况下用户的每个手机都会安装很多应用(大概有一百到两百个左右),当作为客户端的手机或计算机上的手机助手查询到手机上需要升级的业务应用较多时,会将手机上安装的应用包名和版本号以压缩请求的形式发送到服务器,然后通过该服务器的解析模块获得非压缩数据,通过服务器的处理模块对该非压缩数据进行处理,然后向客户端返回升级提示信息,由于该升级提示信息中包括需要升级的业务的应用包名和版本号,因此手机用户可以获知哪些业务应用可以升级。
当客户端为计算机时,如果用户在该计算机上使用了多个手机,则该计算机会记录一个列表,在该列表中保存有最近使用过的10次手机的信息,查询到使用次数最多的手机型号信息,将该手机型号信息对应的手机上安装的应用包名和版本号添加到加密的文件中,如果用户重启该计算机,或者是间隔10个小时,计算机可以将加密的文件中对应手机的应用包名和版本号提取出来,生成一个压缩请求去服务器端查询,服务器端查询到对应的升级信息后会返回给客户端,客户端通过弹窗告诉手机用户哪些应用可以升级。使用计算机作为客户端可以大大提高压缩请求的处理效率。
进一步地,上述服务器还可以包括设置模块44,如图5所示,该设置模块适于在上述解析模块在预处理阶段对接收到的上述压缩请求进行解析之前,设置配置文件。
该配置文件包括预处理阶段执行的脚本文件、FastCGI的配置文件等内容,该配置文件的格式可参见方法实施例中步骤S202中的相关示例,设置上述配置文件的目的是为了接收模块接收到压缩请求后,可以按照图3所示的阶段进行处理。
上述服务器解析压缩请求的过程可参见图1-图3,此处不赘述。
上述服务器,借助Phases机制将需要进行解压缩等大计算量的操作在access阶段通过解析模块利用Lua来实现,在content阶段将非压缩数据交由PHP来完成最终的处理,使得Lua和PHP可以协同运行,从而可以高效地实现对压缩请求的解压缩。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的服务器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明还公开了A1、一种压缩请求的处理方法,包括:
服务器接收客户端发送的压缩请求,其中,该压缩请求为所述客户端检测到待请求的业务量大于预定值时所生成的;
在预处理阶段对接收到的所述压缩请求进行解析,获得非压缩数据;以及
在内容处理阶段将获得的所述非压缩数据发送给超文本预处理器,由所述超文本预处理器对接收到的所述非压缩数据进行处理。
A2、根据A1所述的方法,所述由所述超文本预处理器对接收到的所述非压缩数据进行处理之后,该方法还包括:
向所述客户端返回提示信息,所述提示信息包括升级提示信息。
A3、根据A2所述的方法,所述压缩请求包括终端侧安装业务的应用包名和版本号,所述升级提示信息包括需要升级的业务的应用包名和版本号。
A4、根据A1-A3任一所述的方法,所述在预处理阶段对接收到的所述压缩请求进行解析之前,该方法还包括:
设置配置文件,以便所述服务器按照预处理阶段和内容处理阶段的先后顺序进行执行。
A5、根据A1-A3任一所述的方法,所述在预处理阶段对接收到的所述压缩请求进行解析,包括:
在预处理阶段使用脚本语言或插件对接收到的所述压缩请求进行解析。
A6、根据A5所述的方法,所述在预处理阶段使用脚本语言对接收到的所述压缩请求进行解析,包括:
在预处理阶段使用脚本语言Lua调用数据压缩库zlib或者使用所述Lua调用外部函数接口FFI对接收到的所述压缩请求进行解析;或者
所述在预处理阶段使用插件对接收到的所述压缩请求进行解析,包括:
在预处理阶段创建封装zlib的解压缩模块,通过所述解压缩模块对接收到的所述压缩请求进行解析。
本发明还公开了B7、一种服务器,包括:
接收模块,适于接收客户端发送的压缩请求,其中,该压缩请求为所述客户端检测到待请求的业务量大于预定值时所生成的;
解析模块,适于在预处理阶段对接收到的所述压缩请求进行解析,获得非压缩数据;以及
处理模块,适于在内容处理阶段将获得的所述非压缩数据发送给超文本预处理器,由所述超文本预处理器对接收到的所述非压缩数据进行处理。
B8、根据B7所述的服务器,所述处理模块,还适于在由所述超文本预处理器对接收到的所述非压缩数据进行处理之后,向所述客户端返回提示信息,所述提示信息包括升级提示信息。
B9、根据B8所述的服务器,所述压缩请求包括终端侧安装业务的应用包名和版本号,所述升级提示信息包括需要升级的业务的应用包名和版本号。
B10、根据B7所述的服务器,该服务器还包括:
设置模块,适于在所述解析模块在预处理阶段对接收到的所述压缩请求进行解析之前,设置配置文件,以便所述服务器按照预处理阶段和内容处理阶段的先后顺序进行执行。
B11、根据B7所述的服务器,所述解析模块,具体适于:
在预处理阶段使用脚本语言或插件对接收到的所述压缩请求进行解析。
B12、根据B11所述的服务器,所述解析模块,具体适于:
在预处理阶段使用脚本语言Lua调用数据压缩库zlib或者使用所述Lua调用外部函数接口FFI对接收到的所述压缩请求进行解析;或者
在预处理阶段创建封装zlib的解压缩模块,通过所述解压缩模块对接收到的所述压缩请求进行解析。
B13、根据B7-B12任一所述的服务器,所述服务器包括NGIX服务器。
Claims (10)
1.一种压缩请求的处理方法,包括:
服务器接收客户端发送的压缩请求,其中,该压缩请求为所述客户端检测到待请求的业务量大于预定值时所生成的;
在预处理阶段对接收到的所述压缩请求进行解析,获得非压缩数据;以及
在内容处理阶段将获得的所述非压缩数据发送给超文本预处理器,由所述超文本预处理器对接收到的所述非压缩数据进行处理。
2.根据权利要求1所述的方法,所述由所述超文本预处理器对接收到的所述非压缩数据进行处理之后,该方法还包括:
向所述客户端返回提示信息,所述提示信息包括升级提示信息。
3.根据权利要求2所述的方法,所述压缩请求包括终端侧安装业务的应用包名和版本号,所述升级提示信息包括需要升级的业务的应用包名和版本号。
4.根据权利要求1-3任一权利要求所述的方法,所述在预处理阶段对接收到的所述压缩请求进行解析之前,该方法还包括:
设置配置文件,以便所述服务器按照预处理阶段和内容处理阶段的先后顺序进行执行。
5.根据权利要求1-3任一权利要求所述的方法,所述在预处理阶段对接收到的所述压缩请求进行解析,包括:
在预处理阶段使用脚本语言或插件对接收到的所述压缩请求进行解析。
6.根据权利要求5所述的方法,所述在预处理阶段使用脚本语言对接收到的所述压缩请求进行解析,包括:
在预处理阶段使用脚本语言Lua调用数据压缩库zlib或者使用所述Lua调用外部函数接口FFI对接收到的所述压缩请求进行解析;或者
所述在预处理阶段使用插件对接收到的所述压缩请求进行解析,包括:
在预处理阶段创建封装zlib的解压缩模块,通过所述解压缩模块对接收到的所述压缩请求进行解析。
7.一种服务器,包括:
接收模块,适于接收客户端发送的压缩请求,其中,该压缩请求为所述客户端检测到待请求的业务量大于预定值时所生成的;
解析模块,适于在预处理阶段对接收到的所述压缩请求进行解析,获得非压缩数据;以及
处理模块,适于在内容处理阶段将获得的所述非压缩数据发送给超文本预处理器,由所述超文本预处理器对接收到的所述非压缩数据进行处理。
8.根据权利要求7所述的服务器,所述处理模块,还适于在由所述超文本预处理器对接收到的所述非压缩数据进行处理之后,向所述客户端返回提示信息,所述提示信息包括升级提示信息。
9.根据权利要求8所述的服务器,所述压缩请求包括终端侧安装业务的应用包名和版本号,所述升级提示信息包括需要升级的业务的应用包名和版本号。
10.根据权利要求7所述的服务器,该服务器还包括:
设置模块,适于在所述解析模块在预处理阶段对接收到的所述压缩请求进行解析之前,设置配置文件,以便所述服务器按照预处理阶段和内容处理阶段的先后顺序进行执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310527084.XA CN103561082B (zh) | 2013-10-30 | 2013-10-30 | 压缩请求的处理方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310527084.XA CN103561082B (zh) | 2013-10-30 | 2013-10-30 | 压缩请求的处理方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103561082A true CN103561082A (zh) | 2014-02-05 |
CN103561082B CN103561082B (zh) | 2017-01-18 |
Family
ID=50015232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310527084.XA Active CN103561082B (zh) | 2013-10-30 | 2013-10-30 | 压缩请求的处理方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103561082B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468226A (zh) * | 2014-12-18 | 2015-03-25 | 山东中创软件工程股份有限公司 | 基于Nginx的配置方法及装置 |
CN105338115A (zh) * | 2015-11-26 | 2016-02-17 | 上海晶赞科技发展有限公司 | 数据服务器 |
CN108197281A (zh) * | 2018-01-10 | 2018-06-22 | 武汉斗鱼网络科技有限公司 | 基于Nginx服务器的图片处理方法、存储介质、设备及系统 |
CN112988499A (zh) * | 2019-12-16 | 2021-06-18 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN114125071A (zh) * | 2021-11-23 | 2022-03-01 | 北京人大金仓信息技术股份有限公司 | 数据压缩传输方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527654A (zh) * | 2009-04-20 | 2009-09-09 | 中兴通讯股份有限公司 | 一种网管系统中的数据传输方法及系统 |
US8271689B2 (en) * | 2002-02-01 | 2012-09-18 | Netcordant, Inc. | System and method for partial data compression and data transfer |
CN102750152A (zh) * | 2012-06-21 | 2012-10-24 | 新浪网技术(中国)有限公司 | 一种基于描述语言生成多种编程语言的应用的方法及装置 |
CN103235732A (zh) * | 2013-04-22 | 2013-08-07 | 四三九九网络股份有限公司 | 一种批量解析flash小游戏ActionScript的方法和装置 |
-
2013
- 2013-10-30 CN CN201310527084.XA patent/CN103561082B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8271689B2 (en) * | 2002-02-01 | 2012-09-18 | Netcordant, Inc. | System and method for partial data compression and data transfer |
CN101527654A (zh) * | 2009-04-20 | 2009-09-09 | 中兴通讯股份有限公司 | 一种网管系统中的数据传输方法及系统 |
CN102750152A (zh) * | 2012-06-21 | 2012-10-24 | 新浪网技术(中国)有限公司 | 一种基于描述语言生成多种编程语言的应用的方法及装置 |
CN103235732A (zh) * | 2013-04-22 | 2013-08-07 | 四三九九网络股份有限公司 | 一种批量解析flash小游戏ActionScript的方法和装置 |
Non-Patent Citations (3)
Title |
---|
卢守东: "基于PHP与PKZIP的ZIP文件的上传与解压", 《商场现代化》 * |
朱爱兵: "Linux+Apache+Php环境下实现Zip、Rar文件解压缩", 《电脑知识与技术》 * |
郭佳: "浅谈PHP中RAR压缩文件的处理", 《中国科技信息》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468226A (zh) * | 2014-12-18 | 2015-03-25 | 山东中创软件工程股份有限公司 | 基于Nginx的配置方法及装置 |
CN104468226B (zh) * | 2014-12-18 | 2018-04-17 | 山东中创软件工程股份有限公司 | 基于Nginx的配置方法及装置 |
CN105338115A (zh) * | 2015-11-26 | 2016-02-17 | 上海晶赞科技发展有限公司 | 数据服务器 |
CN108197281A (zh) * | 2018-01-10 | 2018-06-22 | 武汉斗鱼网络科技有限公司 | 基于Nginx服务器的图片处理方法、存储介质、设备及系统 |
CN112988499A (zh) * | 2019-12-16 | 2021-06-18 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
US11445008B2 (en) | 2019-12-16 | 2022-09-13 | Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd. | Data processing methods, electronic devices, and storage media |
CN112988499B (zh) * | 2019-12-16 | 2022-10-21 | 阿波罗智联(北京)科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN114125071A (zh) * | 2021-11-23 | 2022-03-01 | 北京人大金仓信息技术股份有限公司 | 数据压缩传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103561082B (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713034B2 (en) | Updating web resources | |
CN103150513B (zh) | 拦截应用程序中的植入信息的方法及装置 | |
CN104063239B (zh) | 移动终端的应用程序更新方法及服务器、客户端 | |
CN105100191A (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
CN104077162A (zh) | 移动终端应用模板的更新、发布方法及装置 | |
CN106325847B (zh) | 基于iOS平台获取应用程序功能的方法和装置 | |
CN103561082A (zh) | 压缩请求的处理方法及服务器 | |
CN106406961A (zh) | 一种基于浏览器加载、提供应用程序的方法、装置 | |
CN103647816A (zh) | 一种应用软件升级的方法及装置 | |
CN103294514A (zh) | 系统软件版本集成方法、编译服务器及系统 | |
CN102917059A (zh) | 一种客户端及其下载应用的方法 | |
CN104111855A (zh) | 一种基于Lua的iOS客户端功能动态更新的方法 | |
EP3238061B1 (en) | Computer readable storage media for dynamic service deployment and methods and systems for utilizing same | |
CN103595770A (zh) | Sdk实现文件下载的方法与装置 | |
CN109766099A (zh) | 前端源码编译方法、装置、存储介质及计算机设备 | |
CN109933350A (zh) | 在应用中嵌入代码的方法、装置及电子设备 | |
CN103607376A (zh) | 一种兼容协议的方法及装置 | |
CN104699511A (zh) | 插件升级方法及装置 | |
CN103581249A (zh) | 一种信息推送方法、系统及客户端 | |
CN103595769A (zh) | Sdk实现文件上传的方法与装置 | |
CN104063247A (zh) | 一种应用程序的调用方法和系统 | |
CN103281297A (zh) | 企业信息安全管理系统与方法 | |
CN105554136A (zh) | 备份数据还原方法、装置及系统 | |
CN108600378B (zh) | 一种文件下载方法、装置、终端和存储介质 | |
CN103957234A (zh) | 浏览器中下载文件的发送方法和浏览器装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220801 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |