基于http请求的数据处理方法和装置的制造方法

文档序号:9375376阅读:446来源:国知局
基于http请求的数据处理方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种基于HTTP请求的数据处理方法和
目.ο
【背景技术】
[0002]随着计算机技术的发展和用户数量的增多,服务器接收的用户请求也变得日益增多。在单位时间内处理的用户请求数和对用户请求的响应时间为评价服务器的重要指标。提供更快的响应速度和服务更多的请求,有着非常重大的意义。
[0003]现有的服务器在HTTP (Hyper Text Transfer Protocol,超文本传输协议)请求到来后,可采用阻塞式1 (Input/Output,输入输出)处理方式或非阻塞式1处理。阻塞式1处理,一个连接一直占用一个线程处理1直到网络连接关闭。此线程空闲时间不能为其它连接发来的请求服务。非阻塞式1处理,在读写事件不能执行时会放弃线程,整个处理过程会有大量的线程切换,线程切换时,系统需要恢复线程相关的数据状态,准备线程运行数据,是一个高消耗的动作,造成响应时间的延长。

【发明内容】

[0004]基于此,有必要针对上述技术问题,提供一种基于HTTP请求的数据处理方法和装置,提高响应时间和响应数量之间的平衡。
[0005]一种基于HTTP请求的数据处理方法,所述方法包括:
[0006]接收客户端发送的HTTP请求,建立与所述客户端的网络连接,所述客户端为一个或多个;
[0007]判断HTTP请求对应的读事件是否具备执行条件,如果具备,则为具备读事件执行条件的HTTP请求分配线程;
[0008]在通过所述线程响应事件的过程中,当读和/或写事件不具备执行条件时,等待所述读和/或写事件具备执行条件,继续通过所述线程响应事件。
[0009]在其中一个实施例中,所述方法还包括:
[0010]将响应完毕的HTTP请求对应的线程返回至线程池。
[0011]在其中一个实施例中,所述判断HTTP请求对应的读事件是否具备执行条件的步骤之前,还包括:建立事件驱动线程;
[0012]所述判断HTTP请求对应的读事件是否具备执行条件的步骤包括:
[0013]所述事件驱动线程接收客户端发送的数据;
[0014]当第一 HTTP请求对应的数据具备读事件执行条件时,为所述第一 HTTP请求分配线程。
[0015]在其中一个实施例中,所述网络连接为持久连接或非持久连接。
[0016]在其中一个实施例中,通过Servlet引擎接收客户端发送的HTTP请求。
[0017]一种基于HTTP请求的数据处理装置,所述装置包括:
[0018]连接模块,用于接收客户端发送的HTTP请求,建立与所述客户端的网络连接,所述客户端为一个或多个;
[0019]分配模块,用于判断HTTP请求对应的读事件是否具备执行条件,如果具备,则为具备读事件执行条件的HTTP请求分配线程;
[0020]响应模块,用于在通过所述线程响应事件的过程中,当读和/或写事件不具备执行条件时,等待所述读和/或写事件具备执行条件,继续通过所述线程响应事件。
[0021]在其中一个实施例中,所述装置还包括:
[0022]返回模块,用于将响应完毕的HTTP请求对应的线程返回至线程池。
[0023]在其中一个实施例中,所述装置还包括:
[0024]建立模块,用于建立事件驱动线程;
[0025]所述分配模块还用于所述事件驱动线程接收客户端发送的数据,当第一 HTTP请求对应的数据具备读事件执行条件时,为所述第一 HTTP请求分配线程。
[0026]在其中一个实施例中,所述网络连接为持久连接或非持久连接。
[0027]在其中一个实施例中,所述连接模块通过Servlet引擎接收客户端发送的HTTP请求。
[0028]上述基于HTTP请求的数据处理方法和装置,通过接收客户端发送的HTTP请求,建立与客户端的网络连接,客户端为一个或多个,判断HTTP请求对应的读事件是否具备执行条件,如果具备,则为具备读事件执行条件的HTTP请求分配线程,在通过线程响应事件的过程中,当读和/或写事件不具备执行条件时,等待读和/或写事件具备执行条件,继续通过线程响应事件。只有HTTP请求对应的读事件具备执行条件,才会为HTTP请求分配线程,避免分配线程后读事件不能执行使得线程空闲的情况,提高了线程的利用率,使得线程可服务于更多的请求,在读写事件不能执行时继续保持线程,避免线程切换时,系统需要恢复线程相关的数据状态,准备线程运行数据造成的响应时间的延长,加快了响应的速度,提高了响应时间和响应数量之间的平衡。
【附图说明】
[0029]图1为一个实施例中基于HTTP请求的数据处理方法的注程图;
[0030]图2为一个实施例中分配线程的流程图;
[0031]图3为一个具体的实施例中HTTP请求的数据处理方法的注程图;
[0032]图4为一个实施例中基于HTTP请求的数据处理装置的结构框图;
[0033]图5为另一个实施例中基于HTTP请求的数据处理装置的结构框图;
[0034]图6为再一个实施例中基于HTTP请求的数据处理装置的结构框图。
【具体实施方式】
[0035]在一个实施例中,如图1所示,提供了一种基于HTTP请求的数据处理方法,应用于服务器中,包括以下步骤:
[0036]步骤S110,接收客户端发送的HTTP请求,建立与客户端的网络连接,客户端为一个或多个。
[0037]具体的,当客户端需要服务器提供服务时,会向服务器发送HTTP请求,HTTP请求是指从客户端到服务器端的请求消息。包括:消息首行中,对资源的请求方法、资源的标识符及使用的协议。http属于Tcp/ip模型中的应用层协议,当客户端与服务器通信时,服务器先建立与客户端的网络连接。由于服务器可服务于多个客户端,在有多个客户端时,分别与各个客户端建立网络连接。一个客户端可以向服务器发送多个请求。
[0038]步骤S120,判断HTTP请求对应的读事件是否具备执行条件,如果具备,则为具备读事件执行条件的HTTP请求分配线程。
[0039]具体的,当客户端传送了数据,服务器需要读取的时候,系统会发出读事件消息,当外部传入的数据已经被硬件处理,软件可以读取,并且传入的数据已经符合HTTP请求需要的数据,则读事件具备执行条件,否则如果数据只接收到部分不符合HTTP请求需要的完整数据或软件还不能读取数据,则为读事件不具备执行条件。由于同一时间服务器可接收到多个HTTP请求,会判断哪些HTTP请求对应的数据满足读事件执行条件,对于满足读事件执行条件的HTTP请求,会为其分配对应的线程。本实施例中,对于读事件具备执行条件时,才会分配线程,而不是在HTTP请求到来时就分配线程,分配线程的先后顺序是按照满足读事件的执行条件来分配,避免分配线程后读事件不能执行使得线程空闲的情况,提高了线程的利用率。
[0040]步骤S130,在通过线程响应事件的过程中,当读和/或写事件不具备执行条件时,等待读和/或写事件具备执行条件,继续通过线程响应事件。
[0041]具体的,在通过线程响应事件的过程中,如果此时发生读数据不够,和/或者写数据不能完成,系统并不放弃此线程,而是等待读和/或写事件具备执行条件,然后继续通过此线程响应事件。客户端/服务器执行读和/或写事件时,一般是由于网络或者系统处理能力才会导致阻塞,这种阻塞时间往往非常短,如果此时放弃线程会得不偿失,导致处理过程出现大量的线程切换,线程切换时,系统需要恢复线程相关的数据状态,准备线程运行数据,造成响应时间的延长。本实施例在读和/或写事件不具备执行条件时,等待读和/或写事件具备执行条件,避免了大量的线程切换耗时,加快了响应的速度。
[0042]本实施例中,通过接收客户端发送的HTTP请求,建立与客户端的网络连接,客户端为一个或多个,判断HTTP请求对应的读事件是否具备执行条件,如果具备,则为具备读事件执行条件的HTTP请求分配线程,在通过线程响应事件的过程中,当读和/或写事件不具备执行条件时,等待读和/或写事件具备执行条件,继续通过线程响应事件。只有HTTP请求对应的读事件具备执行条件,才会为HTTP请求分配线程,避免分配线程后读事件不能执行使得线程空闲的情况,提高了线程的利用率,使得线程可服务于更多的请求,在读写事件不能执行时继续保持线程,避免线程切换时,系统需要恢复线程相关的数据状态,准备线程运行数据造成的响应时间的延长,加快了响应的速度,提高了响应时间和
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1