CN103581133B - Web服务器对访问请求发送响应的方法和系统 - Google Patents
Web服务器对访问请求发送响应的方法和系统 Download PDFInfo
- Publication number
- CN103581133B CN103581133B CN201210269626.3A CN201210269626A CN103581133B CN 103581133 B CN103581133 B CN 103581133B CN 201210269626 A CN201210269626 A CN 201210269626A CN 103581133 B CN103581133 B CN 103581133B
- Authority
- CN
- China
- Prior art keywords
- response
- access request
- script
- time
- test script
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2294—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/875—Monitoring of systems including the internet
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种Web服务器对访问请求发送响应的方法和系统,该方法包括:接收对部署在Web服务器上的Web应用程序的访问请求,其中该访问请求对应的响应使用脚本编写;发送测试脚本;接收该测试脚本的响应时间,该响应时间包括该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间;以及根据该测试脚本的响应时间,对该访问请求对应的响应中包含的不同类型的脚本发送不同的响应。该方法和系统能够合理分配Web浏览器和服务器之间的数据流,使得更多类型的客户端可以访问服务器。
Description
技术领域
本发明涉及互联网应用,更具体地,涉及一种Web服务器对访问请求发送响应的方法和系统。
背景技术
目前Web2.0互联网应用程序被广泛使用,而Web2.0互联网应用程序是一种大量使用基于脚本(Script)编写响应的Web应用程序。在网络客户端访问基于脚本编写响应的Web应用程序的会话中,客户端通过网络获得脚本代码,然后通过客户端的浏览器进行解析、展示。因此,在一个会话中,分配给客户端的工作量通常是在会话开始前就确定了,并且这种静态的将工作量分配给客户端的模式不会在会话期间改变。
在实际应用中,多种因素能够动态影响客户端的Web浏览器,从而影响该应用程序所呈现的互动效果。一种因素可能是客户端的实时资源分配,例如,客户端启动或者结束其它应用程序时,Web浏览器获得的实时CPU和内存资源的百分比就会发生改变,会造成呈现的互动效果改变。另外一种因素是网络的状况,例如,当网络带宽小、网速慢的时候,客户端的Web浏览器很久得不到服务器的响应,客户端呈现的互动效果会变差,等等。
发明内容
为了解决现有技术中存在的问题,需要一种Web服务器对访问请求发送响应的方法和系统,该方法和系统能够合理分配Web浏览器和服务器之间的数据流,使得更多类型的客户端可以访问服务器。
根据本发明的一个方面,提供了一种Web服务器对访问请求发送响应的方法,包括:
接收对部署在Web服务器上的Web应用程序的访问请求,其中该访问请求对应的响应使用脚本编写;
发送测试脚本;
接收该测试脚本的响应时间,该响应时间包括该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间;以及
根据该测试脚本的响应时间,对该访问请求对应的响应中包含的不同类型的脚本发送不同的响应。
根据本发明的另一个方面,提供了一种Web服务器对访问请求发送响应的系统,包括:
访问请求接收装置,被配置为接收对部署在Web服务器上的Web应用程序的访问请求,其中该访问请求对应的响应使用脚本编写;
测试脚本发送装置,被配置为发送测试脚本;
测试脚本响应接收装置,被配置为接收该测试脚本的响应时间,该响应时间包括该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间;以及
访问请求响应发送装置,被配置为根据该测试脚本的响应时间,对该访问请求对应的响应中包含的不同类型的脚本发送不同的响应。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图;
图2示出了Wb服务器对访问请求发送响应的方法的流程图;
图3a示出了一个GUI脚本在客户端要展示的界面,图3b示出了图3a对应的逻辑脚本;
图4示出了一个逻辑脚本的例子;
图5示出了四种类型的客户端在客户端能力与网络能力的空间中的空间位置;
图6示出了一种示意性地使用注释语句来表明脚本类型的脚本片段;以及
图7示出了Web服务器对访问请求发送响应的系统700的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU101、RAM102、ROM103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
在现有的Web应用程序中,一般是根据客户端的能力,尽可能让响应脚本在客户端执行。原因是尽量利用客户端的计算能力,避免服务器端计算压力过大。
本发明提出了一种Web服务器对访问请求发送响应的方法,该发明相当于在现有服务器端从技术上增加了脚本在服务器端运行的能力,但并不是让所有脚本都在服务器端运行,而是希望在脚本的负载分配上更加灵活,让脚本的负载在客户端和服务器端之间实现动态分配,从而使web2.0程序能够支持更加广泛的客户端设备。图2示出了Web服务器对访问请求发送响应的方法的流程图,根据图2,
在步骤S201,接收对部署在Web服务器上的Web应用程序的访问请求,其中该访问请求对应的响应使用脚本编写。
Web2.0互联网应用程序是大量使用基于脚本编写响应的Web应用程序,包括javascript、VBscript、HTML5等脚本。这种脚本应用程序响应于客户端的访问请求,发送响应脚本到客户端后,需要客户端的Web浏览器对响应脚本进行解析或者运算后,客户端才能看见该应用程序展示的内容。由于最广泛使用的是Javascript,因此,以下本发明中都以Javasrcipt为例来陈述本发明的技术方案,其它脚本语言实现的Web应用程序,原理是一样的,这里不再赘述。
在步骤S202,发送测试脚本。服务器向客户端发送的测试脚本,可以是一个很小的页面,并且该页面可以根据需求嵌入需要的信息。
一般来说,Javascript应用程序的访问请求响应脚本主要包含两种类型的脚本,一种是GUI脚本(GUI script),一种是逻辑脚本(Logic script)。图3a示出了一个GUI脚本在客户端要展示的界面,该GUI脚本被解析成HTML标签后,长度达到了18K字节(bytes),以此,申请文本中没有显示解析后的HTML标签。图3b示出了图3a对应的逻辑脚本,图4示出了一个逻辑脚本的例子,该例子是一个表单的常用验证,包括输入、输入长度、邮件格式,密码等的验证。
本发明的发明人通过分析发现:在Web浏览器端,GUI脚本被解析后得到的HTML标签,HTML标签的大小要远远大于GUI脚本文件本身的大小,并且,该解析运算复杂,消耗的时间长;逻辑脚本的运行消耗的时间与逻辑的复杂度相关;此外,GUI脚本对客户端是必须的,因为要在客户端呈现界面;而逻辑脚本对客户端不是必须的,可以在客户端执行,也可以在服务端执行。因此,可以考虑对不同类型访问请求的响应脚本采用不同的方式。发送测试脚本的目的就是检测客户端的资源可以有多少为该应用程序服务以及检验服务器端和客户端之间的网络状况,这样才能决定如何发送对网络应用程序的访问响应脚本。测试脚本可能只包含GUI脚本,也可能只包含逻辑脚本,或者包含两种类型的脚本。本发明对此没有限制。
在步骤S203,接收该测试脚本的响应时间,该响应时间包括该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间。实际上,该测试脚本在客户端浏览器中运行的时间是由客户端记录的,可以通过测试页面在运行前后捕获时钟的时间,然后将前后捕获的时间相减来得到测试脚本在客户端浏览器中运行的时间;或者是用其它方式,例如通过间接计算的方式:在服务器端记录收到测试脚本请求的时间A,然后再通过下一次同一个会话中接收测试结果的时间B,A与B之间的时间差T1=脚本运行时间T2+脚本下载时间T3+结果上传时间T4,一般结果上传时间相对而言较小,可忽略;则脚本下载时间约等于网络传输时间,可以被测量,则脚本运行时间T2=T1-T3。
客户端将测试脚本在客户端浏览器中运行的时间返回给服务器端作为测试页面的部分响应,该测试脚本在客户端浏览器中运行的时间就表明了客户端有多少资源分配给该网络应用,测试脚本通过网络传输的时间就表明网络目前的状态,具体来说就是带宽是否大,网速是否快,等等。此外,可以通过在服务器端发送前记录开始时间,并且将该标注时间结合到测试脚本中,一起发送给客户端,客户端接收完毕后记录结束时间,通过计算开始时间与结束时间的差来获得测试脚本通过网络传输的时间,并且返回给服务器端作为测试页面的部分响应。本领域技术人员还可以想到其它4的获得试脚本通过网络传输的时间的方式,例如通过浏览器(客户端)测速插件向服务端发出请求来测速,将测速值存储在cookie、http header或URL中传递给服务端。
在步骤S204,根据该测试脚本的响应时间,对该访问请求对应的响应中包含的不同类型的脚本发送不同的响应。
考虑网速对GUI脚本影响大,而客户端的剩余资源(包括CPU资源和内存资源)对逻辑脚本的影响较大,因此,在一种实施方式中,响应于该测试脚本在客户端浏览器中运行的时间没有超过规定阈值并且该测试脚本通过网络传输的时间没有超过规定阈值,也就是说客户端设备为第一类型的设备,发送该访问请求对应的响应中包含的脚本。这种实施方式中,客户端的剩余资源足够,计算能力强,并且网速快,因此,可以直接将该访问请求对应的响应中包含的脚本发送给客户端,由客户端处理,使得整个系统更简单。本发明中,网速阈值一般情况下大概20~30KB/S,当然,用户可以根据应用的需求自由设置;这里客户端的剩余资源足够、计算能力强,可以理解为客户端能执行较复杂的运算,所以可以让GUI脚本在客户端解析,生成对应的HTML标签,并且客户端执行逻辑脚本。
在一种实施方式中,响应于该测试脚本在客户端浏览器中运行的时间超过规定阈值并且该测试脚本通过网络传输的时间没有超过规定阈值,也就是说客户端设备为第二类型的设备,将该访问请求对应的响应中包含的GUI脚本解析为HTML标签后发送,并运行该访问请求对应的响应中包含的逻辑脚本。这种实施方式中,客户端的剩余资源少,计算能力差,但是网速快,因此,要减少客户端的处理内容,可以增加网络传输内容,因此,将该访问请求对应的响应中包含的GUI脚本解析为HTML标签后,发送解析的HTML标签以及与该访问请求对应的响应中包含的逻辑脚本。这里客户端的剩余资源少,计算能力差可以理解为客户端能执行较简单的运算,这些运算的耗时是用户可以接受的,但执行复杂的运算的耗时,用户无法接受。在这种场景下,客户端不具备执行高运算复杂度的GUI脚本,但可以执行逻辑脚本。
在一种实施方式中,响应于该测试脚本在客户端浏览器中运行的时间没有超过规定阈值,并且该测试脚本通过网络传输的时间超过规定阈值,也就是说客户端设备为第三类型的设备,发送该访问请求对应的响应中包含的GUI脚本,并运行该访问请求对应的响应中包含的逻辑脚本。这种实施方式中,测试脚本在客户端浏览器中运行的时间没有超过规定阈值并且该测试脚本通过网络传输的时间超过规定阈值,说明客户端的剩余资源足够,计算能力强,但是网速慢,因此,要减少传输的内容,因此,发送该访问请求对应的响应中包含的GUI脚本,由客户端解析该GUI脚本。并且,在服务器端运行该访问请求对应的响应中包含的逻辑脚本,从而可以无需发送逻辑脚本,减少传输内容。
在一种实施方式中,响应于该测试脚本在客户端浏览器中运行的时间超过规定阈值并且该测试脚本通过网络传输的时间超过规定阈值,也就是说客户端设备为第四类型的设备,将该访问请求对应的响应中包含的GUI脚本解析为HTML标签后发送,并运行该访问请求对应的响应中包含的逻辑脚本。这种实施方式中,客户端的剩余资源少,计算能力差,并且网速慢,因此,不仅要减少传输的内容,还要减少客户端的处理内容,因此,将该访问请求对应的响应中包含的GUI脚本解析为HTML标签后发送,这样可以减少客户端的处理内容,虽然增加了网络传输内容,但是只要发送HTML标签过去,客户端总还能显示一些内容,避免从客户端使用者的角度来看就仿佛整个客户端根本不响应了一样。并且,在服务器端运行该访问请求对应的响应中包含的逻辑脚本,从而可以无需发送逻辑脚本,不仅减少传输内容,而且减少客户端的处理内容。
图5示出了四种类型的客户端在客户端能力与网络能力的空间的空间位置。
在一种实施方式中,该访问请求对应的响应的脚本中注明了该脚本的类型。程序员是非常清楚脚本的类型的,也就是该脚本是属于GUI脚本还是属于逻辑脚本。在程序员编写程序的时候,可以根据特定的格式编写,或者通过固定格式的注释语句来表明脚本的类型。图6示出了一种示意性地使用注释语句来表明脚本类型的脚本片段。
在一种实施方式中,对于Javascript,服务器可以在部署Web应用程序的时候,通过扫描javascript文件,确定并存储javascript文件中的不同脚本段的脚本类型。javascript文件就是扩展名为js的文件,扫描中可以提取必要的注释语句,或特定的格式,来确定每个javascript文件中使用特定格式或注释语句注明的不同脚本段的脚本类型,即GUI脚本还是逻辑脚本,并存储起来。一种存储方式是使用主哈希表将所有js文件的存储路径作为主键(key),其存储值是一个子哈希表,这个子哈希表的主键(key)是javascript函数名,其存储值是GUI脚本或逻辑脚本的一个标志。当服务端接收到请求要访问某些js文件时,通过它们的文件路径就可通过主哈希表的对应主键找到一个子哈希表,通过遍历这个子哈希表就可以提取出来在这个js文件中哪些javascript函数是GUI脚本,哪些是逻辑脚本。本领域技术人员可以理解,上述javascript文件中不同脚本段的脚本类型存储方式仅仅是一种优选的实施方式,本领域技术人员还可以采用其他方式存储,例如数组,链表等等。
在优选的实施方式中,由于脚本其实都是字符串,从优化性能的角度,可以使用拼接,即将该js文件中的GUI脚本合并为一个脚本字符串,或逻辑脚本合并为一个脚本字符串,并且可以设计一个缓存来存储它们,从而在后续请求该js文件时,可根据输出类型直接从缓存中取出。
在一种实施方式中,可以响应于再次接收到Web应用程序的访问请求,再次发送测试脚本;再次接收该测试脚本的响应时间,该响应时间包括该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间;并且再次根据接收的测试脚本的响应时间,对该访问请求对应的响应中包含的不同类型的脚本发送不同的响应。也就是说,测试脚本可以多次运行,每次使用最近的测试脚本的结果进行响应;在另外一种实施方式中,也可以存储该测试脚本的响应时间;响应于在同一会话中再次接收到Web应用程序的访问请求,根据存储的测试脚本的响应时间,对该访问请求对应的响应中包含的不同类型的脚本发送不同的响应。也就是说,一次测试的结果可以应用于整个会话,或者每次访问都进行测试。
在同一个发明构思下,本发明还公开了一种Web服务器对访问请求发送响应的系统,图7示出了Web服务器对访问请求发送响应的系统700的结构框图,根据图7,系统700包括:访问请求接收装置701,被配置为接收对部署在Web服务器上的Web应用程序的访问请求,其中该访问请求对应的响应使用脚本编写;测试脚本发送装置702,被配置为发送测试脚本;测试脚本响应接收装置703,被配置为接收该测试脚本的响应时间,该响应时间包括该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间;以及访问请求响应发送装置704,被配置为根据该测试脚本的响应时间,对该访问请求对应的响应中包含的不同类型的脚本发送不同的响应。其中所述不同类型的脚本包括GUI脚本以及逻辑脚本。在一种实施方式中,该访问请求对应的响应的脚本中注明了该脚本的类型。并且在优选的实施方式中,所述脚本为Javascript。
在一种实施方式中,访问请求响应发送装置进一步配置为:响应于该测试脚本在客户端浏览器中运行的时间没有超过规定阈值并且该测试脚本通过网络传输的时间没有超过规定阈值,发送该访问请求对应的响应中包含的脚本。
在另一种实施方式中,访问请求响应发送装置进一步配置为:响应于该测试脚本在客户端浏览器中运行的时间超过规定阈值并且该测试脚本通过网络传输的时间没有超过规定阈值,将该访问请求对应的响应中包含的GUI脚本解析为HTML标签,发送解析的HTML标签以及与该访问请求对应的响应中包含的逻辑脚本。
在又一种实施方式中,访问请求响应发送装置进一步配置为:响应于该测试脚本在客户端浏览器中运行的时间没有超过规定阈值,并且该测试脚本通过网络传输的时间超过规定阈值,发送该访问请求对应的响应中包含的GUI脚本,并运行该访问请求对应的响应中包含的逻辑脚本。
在再一种实施方式中,访问请求响应发送装置进一步配置为:响应于该测试脚本在客户端浏览器中运行的时间超过规定阈值并且该测试脚本通过网络传输的时间超过规定阈值,对该访问请求对应的响应中包含的GUI脚本解析为HTML标签后发送,并运行该访问请求对应的响应中包含的逻辑脚本。
在一种实施方式中,系统700还包括(图7未示出):存储装置,被配置为存储该测试脚本的响应时间;并且其中所述访问请求响应发送装置进一步配置为:响应于在一次会话中再次接收该Web应用程序的访问请求,根据存储的测试脚本的响应时间,对该再次接收的访问请求对应的响应中包含的不同类型的脚本发送不同的响应。
在一种实施方式中,系统700还包括(图7未示出):部署装置,被配置为响应于服务器部署Web应用程序,通过扫描javascript文件,确定并存储javascript文件中的不同脚本段的脚本类型。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种Web服务器对访问请求发送响应的方法,包括:
接收对部署在Web服务器上的Web应用程序的访问请求,其中该访问请求对应的响应使用脚本编写;
发送测试脚本;
接收该测试脚本的响应时间,该响应时间包括该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间;
基于该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间确定该访问请求的响应类型;以及
发送对该访问请求的响应,其中该响应使用确定的该访问请求的响应类型。
2.根据权利要求1所述的方法,其中所述脚本包括GUI脚本以及逻辑脚本。
3.根据权利要求2所述的方法,其中该访问请求对应的响应的脚本中注明了该脚本的类型。
4.根据权利要求2所述的方法,所述脚本为Javascript。
5.根据权利要求2-4之一所述的方法,其中所述基于该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间确定该访问请求的响应类型;发送对该访问请求的响应,该响应使用确定的该访问请求的响应类型包括:
响应于该测试脚本在客户端浏览器中运行的时间没有超过规定阈值并且该测试脚本通过网络传输的时间没有超过规定阈值,发送第一类型的响应,其中第一类型的响应中包括该访问请求对应的响应中包含的脚本。
6.根据权利要求2-4之一所述的方法,其中所述基于该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间确定该访问请求的响应类型;发送对该访问请求的响应,该响应使用确定的该访问请求的响应类型包括:
响应于该测试脚本在客户端浏览器中运行的时间超过规定阈值并且该测试脚本通过网络传输的时间没有超过规定阈值,将该访问请求对应的响应中包含的GUI脚本解析为HTML标签,发送第二类型的响应,其中第二类型的响应中包括解析的HTML标签以及与该访问请求对应的响应中包含的逻辑脚本。
7.根据权利要求2-4之一所述的方法,其中所述基于该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间确定该访问请求的响应类型;发送对该访问请求的响应,该响应使用确定的该访问请求的响应类型包括:
响应于该测试脚本在客户端浏览器中运行的时间没有超过规定阈值,并且该测试脚本通过网络传输的时间超过规定阈值,发送第三类型的响应,其中第三类型的响应中包括该访问请求对应的响应中包含的GUI脚本,并运行该访问请求对应的响应中包含的逻辑脚本。
8.根据权利要求2-4之一所述的方法,其中所述基于该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间确定该访问请求的响应类型,发送对该访问请求的响应,该响应使用确定的该访问请求的响应类型包括:
响应于该测试脚本在客户端浏览器中运行的时间超过规定阈值并且该测试脚本通过网络传输的时间超过规定阈值,发送第四类型的响应,其中第四类型的响应中将该访问请求对应的响应中包含的GUI脚本解析为HTML标签,并运行该访问请求对应的响应中包含的逻辑脚本。
9.根据权利要求1-4之一所述的方法,其中还包括:
存储该测试脚本的响应时间;以及
响应于在一次会话中再次接收该Web应用程序的访问请求,根据存储的测试脚本的响应时间,基于该存储的测试脚本的响应时间中测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间确定该再次接收的访问请求的响应类型;
发送对该再次接收的访问请求的再次响应,该再次响应使用确定的该再次接收的访问请求的响应类型。
10.根据权利要求4所述的方法,其中还包括:
响应于服务器部署Web应用程序,通过扫描javascript文件,确定并存储javascript文件中的不同脚本段的脚本类型。
11.一种Web服务器对访问请求发送响应的系统,包括:
访问请求接收装置,被配置为接收对部署在Web服务器上的Web应用程序的访问请求,其中该访问请求对应的响应使用脚本编写;
测试脚本发送装置,被配置为发送测试脚本;
测试脚本响应接收装置,被配置为接收该测试脚本的响应时间,该响应时间包括该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间;以及
访问请求响应发送装置,被配置为基于该测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间确定该访问请求的响应类型;以及发送对该访问请求的响应,其中该响应使用确定的该访问请求的响应类型。
12.根据权利要求11所述的系统,其中所述脚本包括GUI脚本以及逻辑脚本。
13.根据权利要求12所述的系统,其中该访问请求对应的响应的脚本中注明了该脚本的类型。
14.根据权利要求12所述的系统,所述脚本为Javascript。
15.根据权利要求12-14之一所述的系统,其中所述访问请求响应发送装置进一步配置为:
响应于该测试脚本在客户端浏览器中运行的时间没有超过规定阈值并且该测试脚本通过网络传输的时间没有超过规定阈值,发送第一类型的响应,其中第一类型的响应中包括该访问请求对应的响应中包含的脚本。
16.根据权利要求12-14之一所述的系统,其中所述访问请求响应发送装置进一步配置为:
响应于该测试脚本在客户端浏览器中运行的时间超过规定阈值并且该测试脚本通过网络传输的时间没有超过规定阈值,将该访问请求对应的响应中包含的GUI脚本解析为HTML标签,发送第二类型的响应,其中第二类型的响应中包括解析的HTML标签以及与该访问请求对应的响应中包含的逻辑脚本。
17.根据权利要求12-14之一所述的系统,其中所述访问请求响应发送装置进一步配置为:
响应于该测试脚本在客户端浏览器中运行的时间没有超过规定阈值,并且该测试脚本通过网络传输的时间超过规定阈值,发送第三类型的响应,其中第三类型的响应中包括该访问请求对应的响应中包含的GUI脚本,并运行该访问请求对应的响应中包含的逻辑脚本。
18.根据权利要求12-14之一所述的系统,其中所述访问请求响应发送装置进一步配置为:
响应于该测试脚本在客户端浏览器中运行的时间超过规定阈值并且该测试脚本通过网络传输的时间超过规定阈值,发送第四类型的响应,其中第四类型的响应中将该访问请求对应的响应中包含的GUI脚本解析为HTML标签,并运行该访问请求对应的响应中包含的逻辑脚本。
19.根据权利要求11-14之一所述的系统,其中还包括:
存储装置,被配置为存储该测试脚本的响应时间;并且
其中所述访问请求响应发送装置进一步配置为:响应于在一次会话中再次接收该Web应用程序的访问请求,根据存储的测试脚本的响应时间,基于该存储的测试脚本的响应时间中测试脚本在客户端浏览器中运行的时间,以及该测试脚本通过网络传输的时间确定该再次接收的访问请求的响应类型;以及
发送对该再次接收的访问请求的再次响应,该再次响应使用确定的该再次接收的访问请求的响应类型。
20.根据权利要求14所述的系统,其中还包括:
部署装置,被配置为响应于服务器部署Web应用程序,通过扫描javascript文件,确定并存储javascript文件中的不同脚本段的脚本类型。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210269626.3A CN103581133B (zh) | 2012-07-31 | 2012-07-31 | Web服务器对访问请求发送响应的方法和系统 |
US13/939,613 US9219800B2 (en) | 2012-07-31 | 2013-07-11 | Method and system for a web server transmitting a response to an access request |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210269626.3A CN103581133B (zh) | 2012-07-31 | 2012-07-31 | Web服务器对访问请求发送响应的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103581133A CN103581133A (zh) | 2014-02-12 |
CN103581133B true CN103581133B (zh) | 2017-04-05 |
Family
ID=50026571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210269626.3A Expired - Fee Related CN103581133B (zh) | 2012-07-31 | 2012-07-31 | Web服务器对访问请求发送响应的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9219800B2 (zh) |
CN (1) | CN103581133B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581133B (zh) * | 2012-07-31 | 2017-04-05 | 国际商业机器公司 | Web服务器对访问请求发送响应的方法和系统 |
CN104468288B (zh) * | 2015-01-04 | 2018-04-27 | 中国联合网络通信集团有限公司 | 终端网络数据测试方法及装置 |
CN106227659B (zh) * | 2016-07-21 | 2019-02-05 | 珠海市魅族科技有限公司 | 一种数据同步方法、系统及装置 |
CN108509455B (zh) * | 2017-02-28 | 2021-12-24 | 百度在线网络技术(北京)有限公司 | 数据表处理方法和装置 |
US10445221B2 (en) * | 2018-03-08 | 2019-10-15 | Sauce Labs Inc. | Automated application testing system |
CN109324965B (zh) * | 2018-09-18 | 2022-03-04 | 郑州云海信息技术有限公司 | 一种监测flock导致客户端崩溃的自动化测试方法 |
US10710239B2 (en) | 2018-11-08 | 2020-07-14 | Bank Of America Corporation | Intelligent control code update for robotic process automation |
CN110825648B (zh) * | 2019-11-21 | 2023-08-25 | 新华三技术有限公司 | 测试脚本类型的确定方法、装置、通用测试仪及存储介质 |
CN113709252B (zh) * | 2021-09-01 | 2022-06-21 | 东南大学 | 基于网页嵌入式脚本代码的在线内部网络环境扫描方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7392321B1 (en) * | 2001-05-30 | 2008-06-24 | Keynote Systems, Inc. | Method and system for evaluating quality of service for transactions over a network |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600789A (en) * | 1992-11-19 | 1997-02-04 | Segue Software, Inc. | Automated GUI interface testing |
US5812436A (en) * | 1994-10-20 | 1998-09-22 | Tandem Computers Incorporated | Method and apparatus for testing and analyzing the conformance of a proposed set of requirements for a proposed network management application |
US5881219A (en) * | 1996-12-26 | 1999-03-09 | International Business Machines Corporation | Random reliability engine for testing distributed environments |
US6078956A (en) * | 1997-09-08 | 2000-06-20 | International Business Machines Corporation | World wide web end user response time monitor |
US6178449B1 (en) * | 1997-11-26 | 2001-01-23 | International Business Machines Corporation | Apparatus and method for measuring transaction time in a computer system |
US6286046B1 (en) * | 1997-12-22 | 2001-09-04 | International Business Machines Corporation | Method of recording and measuring e-business sessions on the world wide web |
US6993747B1 (en) * | 1999-08-30 | 2006-01-31 | Empirix Inc. | Method and system for web based software object testing |
US6775824B1 (en) * | 2000-01-12 | 2004-08-10 | Empirix Inc. | Method and system for software object testing |
AU2001255441A1 (en) | 2000-04-17 | 2001-10-30 | Circadence Corporation | System and method for implementing application -independent functionality within a network infrastructure |
US20020184363A1 (en) * | 2001-04-20 | 2002-12-05 | Steven Viavant | Techniques for server-controlled measurement of client-side performance |
US7127503B2 (en) | 2001-10-10 | 2006-10-24 | Juniper Networks, Inc. | Computer networking system, device, and method for improved speed in web page rendering |
US7458019B2 (en) | 2004-01-20 | 2008-11-25 | International Business Machines Corporation | System and method for creating and rendering client-side user interfaces via custom tags |
US7954050B2 (en) | 2004-06-25 | 2011-05-31 | Icesoft Technologies Canada Corp. | Systems and methods for rendering and increasing portability of document-based user interface software objects |
US7346807B1 (en) * | 2004-07-07 | 2008-03-18 | Sprint Communications Company L.P. | Optimizing transaction data for load testing |
US8239826B2 (en) * | 2004-07-16 | 2012-08-07 | International Business Machines Corporation | Automating modular manual tests including framework for test automation |
US7519007B2 (en) * | 2005-04-01 | 2009-04-14 | International Business Machines Corporation | Method utilizing a single agent on a non-origin node for measuring the roundtrip response time of web pages with embedded HTML frames over a public or private network |
CN101193007A (zh) * | 2006-11-28 | 2008-06-04 | 国际商业机器公司 | 统一资源定位符命令测试方法、场景测试方法和相应设备 |
US7877732B2 (en) * | 2006-11-29 | 2011-01-25 | International Business Machines Corporation | Efficient stress testing of a service oriented architecture based application |
US7793154B2 (en) * | 2006-11-30 | 2010-09-07 | International Business Machines Corporation | Method and implementation for automating processes using data driven pre-recorded transactions |
US8473914B2 (en) * | 2007-06-19 | 2013-06-25 | International Business Machines Corporation | Semi-automated update of application test scripts |
US8677141B2 (en) | 2007-11-23 | 2014-03-18 | Microsoft Corporation | Enhanced security and performance of web applications |
US8365147B2 (en) * | 2008-02-27 | 2013-01-29 | Accenture Global Services Limited | Test script transformation architecture |
US20090228314A1 (en) * | 2008-03-06 | 2009-09-10 | International Business Machines Corporation | Accelerated Service Delivery Service |
US8266592B2 (en) * | 2008-04-21 | 2012-09-11 | Microsoft Corporation | Ranking and optimizing automated test scripts |
US8229884B1 (en) * | 2008-06-04 | 2012-07-24 | United Services Automobile Association (Usaa) | Systems and methods for monitoring multiple heterogeneous software applications |
US8516037B2 (en) | 2008-06-16 | 2013-08-20 | International Business Machines Corporation | Methods for dynamic partitioning of applications in client-server environments |
US8875102B1 (en) * | 2009-03-12 | 2014-10-28 | Google Inc. | Multiple browser architecture and method |
US8990779B2 (en) * | 2009-08-11 | 2015-03-24 | Sap Se | Response time measurement system and method |
US8140904B2 (en) * | 2009-11-02 | 2012-03-20 | Verizon Patent And Licensing Inc. | Application portal testing |
US8490056B2 (en) * | 2010-04-28 | 2013-07-16 | International Business Machines Corporation | Automatic identification of subroutines from test scripts |
US8745600B2 (en) * | 2011-07-21 | 2014-06-03 | Hewlett-Packard Development Company, L.P. | Inserting test scripts |
CN103581133B (zh) * | 2012-07-31 | 2017-04-05 | 国际商业机器公司 | Web服务器对访问请求发送响应的方法和系统 |
-
2012
- 2012-07-31 CN CN201210269626.3A patent/CN103581133B/zh not_active Expired - Fee Related
-
2013
- 2013-07-11 US US13/939,613 patent/US9219800B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7392321B1 (en) * | 2001-05-30 | 2008-06-24 | Keynote Systems, Inc. | Method and system for evaluating quality of service for transactions over a network |
Also Published As
Publication number | Publication date |
---|---|
US9219800B2 (en) | 2015-12-22 |
CN103581133A (zh) | 2014-02-12 |
US20140040347A1 (en) | 2014-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103581133B (zh) | Web服务器对访问请求发送响应的方法和系统 | |
CN106648945B (zh) | 一种接口数据测试方法、装置及电子设备 | |
CN110858172A (zh) | 一种自动化测试代码生成方法和装置 | |
CN111447170B (zh) | 数据处理方法及其系统、计算机系统及计算机可读介质 | |
CN105095367B (zh) | 一种客户端数据的采集方法和装置 | |
CN110286917A (zh) | 文件打包方法、装置、设备及存储介质 | |
CN109992406A (zh) | 图片请求方法、响应图片请求的方法及客户端 | |
CN105718276A (zh) | 提供apk下载的方法和装置以及nginx服务器 | |
CN108334641A (zh) | 采集用户行为数据的方法、系统、电子设备、存储介质 | |
CN103116645A (zh) | 移动设备浏览网页的方法及装置 | |
CN109873732B (zh) | 用于代理服务器的测试方法和装置 | |
CN107766307A (zh) | 一种表单元素联动的方法和设备 | |
CN104408178A (zh) | Web控件加载装置和方法 | |
CN109788251A (zh) | 视频处理方法、装置及存储介质 | |
CN103139298B (zh) | 一种传输网络数据的方法和装置 | |
CN113434384B (zh) | 一种压力测试方法和装置 | |
CN111767498B (zh) | 一种实现文件信息共享的方法和装置 | |
US20140215035A1 (en) | Distribution of application components among devices | |
CN107608858A (zh) | 信息处理系统、方法和装置 | |
CN112131095B (zh) | 压力测试方法和装置 | |
CN109766228A (zh) | 一种基于接口的线上验证方法和装置 | |
CN109901892A (zh) | 一种动态属性验证的方法和装置 | |
CN112579428B (zh) | 接口测试的方法、装置、电子设备和存储介质 | |
CN107247661A (zh) | 支持对应用的安装包进行自动化验证的方法和系统 | |
CN108737133A (zh) | 用于cdn静态网络修复的方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170405 |