CN101902449A - 网络设备之间持续http连接的仿真 - Google Patents

网络设备之间持续http连接的仿真 Download PDF

Info

Publication number
CN101902449A
CN101902449A CN 200910138286 CN200910138286A CN101902449A CN 101902449 A CN101902449 A CN 101902449A CN 200910138286 CN200910138286 CN 200910138286 CN 200910138286 A CN200910138286 A CN 200910138286A CN 101902449 A CN101902449 A CN 101902449A
Authority
CN
China
Prior art keywords
http
server
client
length value
response
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
Application number
CN 200910138286
Other languages
English (en)
Other versions
CN101902449B (zh
Inventor
梁庚荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
UX Ltd
Original Assignee
UX Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by UX Ltd filed Critical UX Ltd
Priority to CN 200910138286 priority Critical patent/CN101902449B/zh
Publication of CN101902449A publication Critical patent/CN101902449A/zh
Application granted granted Critical
Publication of CN101902449B publication Critical patent/CN101902449B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及网络设备之间的持续HTTP连接的仿真。具体地,本发明公开了用于对例如使用传输控制协议(TCP)连接之上的超文本传输协议(HTTP)事务的持续连接进行仿真的系统和方法。通过调整HTTP请求和/或HTTP响应中的内容长度值来维持持续连接。内容长度值与诸如GET动作和POST动作的方法相关联。确定内容长度的值,以便在估计的时段内将连接保持为开启。在该时段超时之前,发送新的HTTP请求或者响应,以便在附加时段内将连接保持为开启。如果连接被过早关闭,则可以缩短估计的时段和/或可以增加内容长度值。网络状况检测器确定诸如带宽之类的网络特性,以便在确定估计时段和内容长度值时使用。

Description

网络设备之间持续HTTP连接的仿真
技术领域
本发明总体上涉及网络,并且更具体地,涉及对网络节点之间的持续HTTP连接进行仿真(emulate)。
背景技术
超文本传输协议(HTTP)是用于在万维网(WWW)上传送数据的重要标准。与独立于所传送的实际数据而进行操作的传输控制协议(TCP)相反,HTTP是OSI(开放系统互连)模型中的应用层协议,其操作与如何传送数据无关。一般地,HTTP允许客户端与诸如服务器或者其他客户端的网络资源进行通信。例如,客户端可以请求存储在服务器上的网页。为此,客户端向服务器进行请求,而服务器发送响应。
HHTP协议的1.0版本(HTTP 1.0)是常用的HTTP协议。HTTP1.0使用的请求/响应范式具有四个阶段:建立TCP连接,客户端HTTP请求,服务器HTTP响应,以及终止TCP连接。由于HTTP是无状态协议,其在四个阶段过程发生之后并不维持连接。因此,对于另一事务,必须重新建立连接。由此,使用HTTP 1.0的通信可能非常慢,因为每当客户端生成新的HTTP请求时,新的TCP连接开启并继而关闭。对于诸如会议应用的实时数据应用而言,这可能导致不佳的性能。
解决该限制的一种技术是,在HTTP响应或者请求内设置Keep Alive(保持活跃)报头。Keep Alive报头不是HTTP 1.0定义的,其指示连接应当为特定数目的HTTP事务保持为开启。尽管Keep Alive技术尝试提供持续超过单个事务的连接,但存在与Keep Alive技术相关联的问题。首先,很多客户端和服务器并不支持Keep Alive技术,特别是那些使用HTTP 1.0的客户端和服务器。第二,Keep Alive技术可能是不稳定的,因为客户端计算机与服务器计算机之间的Keep Alive连接可能不期待地终止。例如,如果Keep Alive报头没有包括在客户端与服务器之间的每个请求和响应中,则连接可能关闭。第三,防火墙和代理服务器经常将客户端和服务器与外部网络隔开,并且阻止建立Keep Alive连接,或是在Keep Alive连接建立之后突然将其关闭。因此,无法确保Keep Alive技术对已有的客户端和服务器是有效的。
因此,需要仿真或者建立持续HTTP连接的系统和方法,以克服上述局限。而且,该系统和方法应当是平台无关的,即客户端和服务器无需特别地支持持续连接。
发明内容
本发明提供用于对持续连接进行仿真的系统和方法,从而解决上述问题。在一个实施方式中,通过调整HTTP请求和/或HTTP响应中的内容长度值,来维持持续的超文本传输协议(HTTP)连接。一般地,内容长度值是包括在HTTP请求或者响应中的报头,其指示消息数据的长度。消息数据可以包括与诸如GET动作或者POST动作的方法相关联的应用数据。确定内容长度的值,以保持HTTP连接在估计的时段内是开启的。在该时段超时之前,发送新的HTTP请求或者响应,以保持HTTP连接在附加时段内是开启的。如果HTTP连接被过早关闭,则可以缩短估计的时段,或者可以增加内容长度值。
在一个实施方式中,一种系统,包括客户端和服务器,其中的至少一个包括用以维持持续连接的持续连接模块。持续连接模块可以为需要低延迟(例如,用于实时性能)的高带宽数据传送的应用(诸如,会议应用)启动持续连接。
在另一实施方式中,持续连接模块还包括网络状况检测器。网络状况检测器使用各种技术(例如,ping)来确定网络的特性(例如,带宽)。该特性被反馈给持续连接模块,以便在确定估计时段和内容长度值时使用。
有益地,通过就像存在持续连接一样进行操作(例如,通过提供高分辨率视频),诸如会议应用的应用可以具有改进的性能。持续连接是平台无关的,因为可以建立持续连接,而无需考虑客户端或者服务器通过Keep-Alive或者需要显式支持的其他技术对持续连接的支持。此外,即使存在代理服务器、防火墙或者其他阻碍,仍然可以实现持续连接。
说明书中所描述的特征和优点不是排他性的,具体地,根据附图、说明书和权利要求书,很多其他特征和优点对于本领域普通技术人员而言将是易见的。而且,应当注意,说明书中所使用的语言原则上为了可读性和教导的目的而选择的,而不是为了描绘或者限制发明主题而选择的。
附图说明
通过结合附图考虑下文的详细描述,可以容易地理解本发明的教导。
图1是示出按照本发明某些实施方式的、用于维持持续超文本传输协议(HTTP)连接的系统的框图。
图2是示出按照本发明某些实施方式的系统的持续连接模块的框图。
图3a、图3b是示出按照本发明某些实施方式的HTTP请求和HTTP响应的示意图。
图4是示出按照本发明某些实施方式的、用于维持持续HTTP连接的方法的流程图。
图5是示出按照本发明某些实施方式的、用于在客户端中维持与服务器的持续HTTP连接的方法的流程图。
图6是示出按照本发明某些实施方式的、用于在服务器中维持与客户端的持续HTTP连接的方法的流程图。
具体实施方式
描述了用于仿真持续连接的系统和方法。类似或者相同的标号可能在附图中使用,并且可以表示类似或者相同的功能。在一个实施方式中,通过调整HTTP请求和/或HTTP响应中的内容长度值来维持持续的超文本传输协议(HTTP)连接。这里使用的“持续HTTP连接”表示在诸如传输控制协议(TCP)连接的底层连接之上进行的HTTP事务,而无须针对新的事务而重新建立连接。事务包括在具有元数据和消息数据字段的数据包中实现的HTTP请求和HTTP响应。一般地,内容长度值是指示消息数据长度的元数据。内容长度值可以在编码中表示为与描述报头(例如,“内容长度”)和值(例如,3495)相对应的键/值配对。消息数据可以包括与诸如GET或者POST动作(例如,用以取回超文本标记语言(或称HTML)页面)的方法相关联的应用数据。注意,在TCP协议上使用HTTP事务仅仅是示例性的,其他实施方式可以使用备选的协议来维持持续连接。
图1是按照本发明某些实施方式的、用于维持持续HTTP连接的系统100的框图。图1的系统100包括客户端110和服务器120,其通过网络106进行通信,但是其他实施方式可以包括其他客户端、服务器以及其他网络节点。例如,系统100可以包括防火墙或者代理服务器。
客户端110可以是能够与服务器120建立连接并交换数据的任何类型的电子设备。例如,客户端110可以是桌面计算机、膝上型计算机、个人数字助理(PDA)或者蜂窝电话。客户端110还包括应用112、持续连接模块130a以及通信模块116。在某些实施方式中,客户端110可以包括其他组件(未示出),诸如处理器(例如,x86平台处理器或者ARM处理器)、存储器(例如,SRAM或者DRAM、硬盘或者闪存)以及操作系统(例如,Windows操作系统或者UNIX操作系统)。此外,服务器120包括应用122、持续连接模块130b以及通信模块126。在某些实施方式中,服务器120还可以存储网页以供客户端110访问,或者主控诸如视频会议应用的分布式应用。
应用112、122可以是任何类型的软件和/或硬件(例如,web浏览器、文字处理应用、电子表格应用或者计算机辅助起草(drafting)应用)。应用112、122可以在分布式计算环境中通过网络106与网络资源和其他应用通信。在一个实施方式中,应用112、122与底层通信协议无关,而是,其依赖于通信模块116来提供跨越网络106的通信信道。在某些实施方式中,应用112、122要求高数据率和低延迟,以用于例如实时应用、会议应用(例如,视频或音频会议)、多媒体应用、数据存储应用等的最优性能。在一个示例中,视频会议应用可以设置为需要高数据传送速率的分辨率和帧率。而且,利用高数据率递送,相关的视频馈送具有较好的质量(例如,较少的丢帧)。
持续连接模块130a、130b可以作为应用112、122(例如,web浏览器)的部分并入,作为通信模块116、126(例如,协议应用)的部分并入,或者作为独立的模块并入。在一个实施方式中,持续连接模块130a、130b可以检测应用112、122何时加载(例如,使用守护进程(daemon)),而在另一实施方式中其由应用112、122来启动(例如,使用功能调用)。
在一个实施方式中,持续连接模块130a、130b维持客户端110与服务器120之间的HTTP连接,直到该连接被显式终止(例如,应用112、122关闭)。在一个实施方式中,持续连接模块130a、130b通过确定内容长度字段的值来维持连接,以便在预定时段(也即,估计的时段)内将连接保持为开启。连接可以保持为开启,而不考虑已经发生了多少HTTP事务。继而,在预定的时间量超时之前,持续连接模块130a、130b持续地发送包,这些包具有经过修改的内容长度值。内容长度值例如可以与通信模块116、126合作实现,或者可以通过创建、解释和修改由通信模块116、126发出的包来实现。
在另一实施方式中,持续连接模块130a、130b在试图重新建立关闭的连接之前检测客户端110或者服务器120是否仍然在线。持续连接模块130a、130b在下文参考图2更为详细地描述。
通信模块116、126例如可以包括以太网卡、无线网卡(例如,IEEE 802.11协议)、网络处理器、协议应用(例如,HTTP应用)等。在一个实施方式中,通信模块116、126将例如来自应用112、122的数据嵌入到适于通过网络106传送的包中(例如,参见图3a、图3b)。例如,通信模块116可以按照OSI网络栈的层来添加TCP/IP报头,诸如内容长度值。网络106可以是用于在客户端110与服务器120之间传输通信(例如,数据)的媒介(例如,互联网、LAN、WAN等)或者蜂窝网络。在一个实施方式中,网络106提供无连接通信信道,用于发送具有元数据和消息数据的数据包。报头可以用来指示消息数据的内容长度。而且,报头可以指示源IP地址和目的IP地址、端口号、时间戳等。网络106可以具有动态状况,诸如当前最小带宽和最大延迟。状况可以根据访问网络的节点数、数据传送的类型等而变化。
图2是示出按照本发明某些实施方式的系统100的持续连接模块130的框图。持续连接模块130包括:连接模块210、HTTP请求模块220、HTTP响应模块230以及网络状况检测器240。在客户端110发起的与服务器120的HTTP通信中,通常有四个步骤:建立TCP连接,发送HTTP请求,发送HTTP响应,以及终止TCP连接。
连接模块210通过从客户端110向服务器120发送请求来建立TCP连接。由此,TCP连接被开启,以便在终止前允许客户端110进行多个HTTP请求,并允许服务器120发送多个HTTP响应。TCP连接可以在诸如端口80的端口上开启。因为HTTP请求模块220和响应模块230之一或者二者进行操作以持续地发送HTTP请求和/或响应,来阻止TCP连接的终止,因此连接模块210进行等待,直到使用HTTP的(OSI应用层)连接超时,此后终止(传输层)TCP连接。
HTTP请求模块220将HTTP请求从客户端110提供给服务器120。在一个实施方式中,HTTP请求模块220发起使用HTTP的持续连接。HTTP请求模块220根据内容长度值来确定客户端110与服务器120将维持连接的估计时段。在该时段超时之前,HTTP请求模块220生成附加的HTTP请求,其具有经过修改的内容长度值。在一个实施方式中,HTTP请求模块220接收连接被过早关闭的通知,并调整其操作以进行响应。在一个实施方式中,可以增大内容长度值,以延长客户端110和服务器120将连接保持为开启的时段。在另一实施方式中,缩短估计的时段,从而使HTTP请求以更高的速率发送。
图3a中示出了示例性HTTP请求310。HTTP请求310包括元数据字段320和消息数据字段330。在一个实施方式中,元数据字段320表示初始行或者状态行。元数据字段320可以包括方法名称字段325以及其他信息,诸如所请求资源的本地路径(也即,URL)、所使用的HTTP的版本(例如,HTTP 1.0)以及其他信息。方法名称325指明所请求事务的类型,诸如GET或者POST动作。在某些实施方式中,元数据字段320包括内容长度字段327,并且还包括内容编码和内容类型。内容长度字段327包括指明消息数据字段330的大小的值(例如,大小可以表示为8位字节的十进制数)。例如,当方法是POST动作时,内容长度字段327中的值指明有多少消息数据从客户端110被发送到服务器120。HTTP请求模块220可以调整内容长度字段327的值,以便在特定的时段内维持HTTP连接。内容编码描述编码的类型,而内容类型描述媒体类型。
再次参考图2,HTTP响应模块230将HTTP响应从服务器120提供给客户端110。在第一实施方式中,HTTP响应模块230通过对从客户端110接收的HTTP请求进行反应,来被动地维持持续HTTP连接。在第二实施方式中,响应模块230通过如下方式来主动地维持持续HTTP连接:基于内容长度值来估计将连接保持为开启的时段,和/或修改内容长度值。如请求模块220一样,响应模块230响应于连接的过早终止而调整参数。
图3b中示出了示例性HTTP响应350。HTTP响应350包括元数据字段360和消息数据字段370。元数据字段360可以包括初始行(或者状态行),用以存储版本、编码和报头行。消息数据字段370可以例如响应于GET动作来存储数据。例如,消息数据字段370可以包括响应于针对URL的HTTP请求310的HTML代码。
在图2中,HTTP请求模块和HTTP响应模块220、230可以在通信期间使用HTTP报头,诸如GET和POST。GET命令是从客户端110向服务器120发送数据的请求。POST命令允许客户端110向服务器120发送数据。在使用GET或者POST命令时,内容长度报头可以是HTTP中的所需报头,没有该报头将导致“411 length required(需要长度)”错误。一般地,内容长度值指明期望多少字节的数据用于传输。在一个实施方式中,通信模块116从持续连接模块130a接收内容长度值。
可选地,网络状况检测器240向HTTP请求模块和HTTP响应模块220、230提供与网络106(图1中所示)相关联的网络状况的反馈。在一个实施方式中,网络状况可以从网络上的节点处获得。在另一实施方式中,网络状况可以使用各种询问来计算,其中询问例如ping请求,其用来测量包例如从客户端110到服务器120的传输所用的时间量。
图4是示出按照本发明一个实施方式的、用于仿真使用HTTP的持续连接的方法400的流程图。由例如客户端110或者服务器120启动(410)会议应用或者其他应用(例如,应用112、122)。会议应用可以指明期望持续连接,或者可以自动激活持续连接。
在客户端与服务器之间建立(420)TCP连接,以提供用于会议应用的通信信道(例如,由连接模块210在客户端110与服务器120之间建立)。使用该TCP连接,在客户端与服务器之间维持(430)持续的HTTP连接。在一个实施方式中,客户端通过修改发送至服务器的HTTP请求中的内容长度参数的值(例如,HTTP请求模块220修改内容长度值字段327)来维持与服务器的持续连接。下文将结合图5进一步详细描述由客户端发起的持续连接。在另一实施方式中,服务器通过修改返回给客户端的HTTP响应中的内容长度参数的值(例如,HTTP响应模块230修改内容长度值字段365)来维持与客户端的持续连接。下文将结合图6进一步详细描述由服务器发起的持续连接。在又一实施方式中,客户端和服务器二者都对维持持续连接有所贡献。在一个实施方式中,可以使用诸如安全套接字层(SSL)协议的附加协议来实现持续连接。
连接保持活跃,直到会议应用终止(440)。一旦会议应用终止,则可以向持续连接模块发送(450)消息。通信模块可以终止(460)TCP连接。
图5是示出按照本发明一个实施方式的、用于由服务器维持持续连接的方法430a的流程图。服务器从客户端接收(510)HTTP请求。在一个实现中,HTTP请求未被客户端修改。
响应模块确定(520)内容长度值(例如,如下面的表1中所示),以便在(理论的)时段内维持与客户端的持续HTTP连接。(预定的或者)实现的时段可以默认各种值(通常等于理论时段的一半),例如对于响应而言是1秒。响应于使用HTTP的持续连接的过早关闭(也即,没有接收到终止连接消息),响应模块可以缩短时段和/或增加内容长度值。可选地,响应模块可以响应于网络状况而进行调整。例如,如表1中所示,较高的带宽可以导致缩短的时段(例如,缩短25%)和增加的内容长度值(例如,从32k字节到64k字节),以便维持使用HTTP的连接。例如使用包括内容长度值的GET或者POST动作来发送(530)HTTP响应。
Figure B2009101382869D0000091
Figure B2009101382869D0000101
当时段接近超时(540)、并且没有接收到(550)使用HTTP的连接终止的消息时,重新开始或者重新建立时段。如果成功地将连接维持为开启(560),则内容长度值可以再次使用。另一方面,如果连接过早关闭(560)(也即,在没有接收到终止连接消息的情况下),则缩短(570)时段的时间量,和/或增加内容长度值。
在某些实施方式中,HTTP响应没有(除了元数据之外的)数据,因为这些响应仅仅是为了维持使用HTTP的连接而生成的。在其他实施方式中,HTTP响应包括在服务器与客户端之间传送的合法数据。在又一实施方式中,仅用于维持HTTP连接的HTTP响应包括随机数据,例如在代理服务器为确保数据被传送而检查该HTTP响应的情况下。
图6是示出按照本发明一种实施方式的、用于由客户端维持持续连接的方法430b的流程图。请求模块确定(620)内容长度值,以便在(理论)时段内维持与服务器的HTTP连接。时段可以默认为各种值。继而,响应于HTTP连接的过早关闭(也即,没有接收到终止连接消息),HTTP请求模块220可以缩短时段中的时间量和/或增加内容长度值。可选地,请求模块可以响应于网络状况而进行调整。例如使用包括内容长度值的GET或者POST动作来发送(630)HTTP请求。
客户端向服务器发送(630)HTTP请求。在一个实施方式中,服务器发送对该请求的HTTP响应,而不对内容长度值进行修改。在服务器也维持持续连接的另一实施方式中,服务器可以调整内容长度值。
在时段超时(640)之前,可以进行查询(650)以继续该连接。如果连接已被过早关闭(660)(也即,没有接收到终止连接消息),则可以缩短(670)时段内的时间量和/或增加内容长度值。如循环630-660所示,发送(630)另一HTTP请求,以重新建立和维持连接。
在此描述的系统和方法的其他变形是可能的。例如,在一个实施方式中,客户端和服务器二者可以进行操作以维持持续连接,而不是只有一个设备如此操作。
在客户端与服务器之间包括代理服务器的另一实施方式中,客户端可以维持与代理服务器的持续连接。一般地,代理服务器可以将客户端与内部网络隔离开,同时代表客户端来访问外部网络上的资源。因此,客户端通过与代理服务器的相同持续连接来对各种服务器进行请求。在一个实施方式中,客户端可以使代理服务器维持与外部网络上的特定服务器的连接。
在一个实施方式中,HTTP可以在持续连接上流水线化。特别地,可以在未接收到HTTP响应的情况下发送多个HTTP请求。类似地,可以针对单个HTTP请求发送多个HTTP响应。
本发明的方法步骤执行的顺序实际上只是示范性的。除非本发明特别指明,否则步骤可以按照任意顺序执行或者并行执行。本发明的方法可以通过在任意类型的单个计算机或者多个计算机上运行的硬件、固件、软件或其结合来执行。实现本发明的软件可以包括存储在任意计算机可读存储介质(例如,ROM、RAM、磁介质、压缩盘、DVD等)中的任意形式的计算机指令(例如,源代码、目标代码、解释代码等)。这种软件的形式可以是在传导介质上传播的载波中所包含的电子数据信号,或者其形式可以是通过光纤传播的光脉冲。
尽管已经示出和描述了本发明的具体实施方式,但是对于本领域技术人员易见的是,在不脱离本发明最广泛方面的情况下,可以进行改变和修改,因此所附权利要求将所有这些改变和修改涵盖在其范围内,只要该改变和修改落入本发明的实质精神内。例如,本发明的系统和方法可以用于在使用任意无状态协议类型而不仅是HTTP协议的客户端计算机和服务器计算机之间建立连接。
在上文描述中,为了阐释的目的,记载了多个特定的细节,以便提供对本发明的透彻理解。然而,对于本领域技术人员易见的是,本发明可以在没有这些特定细节的情况下实施。在其他情况下,结构和设备以框图的形式示出,以避免使本发明模糊不清。
在说明书中,对“一个实施方式”或者“实施方式”的引用表示与该实施方式结合描述的特定特征、结构或者特性包括在本发明的至少一个实施方式中。在说明书各处出现的词语“在一个实施方式中”并不一定表示同一实施方式。
详细描述的某些部分是按照针对计算机存储器内的数据比特的算法或者操作的符号化表示而给出的。这些算法化描述和表示是数据处理领域的技术人员用以最为有效地向本领域的其他技术人员传递其工作实质的手段。在此以及一般地,认为算法是得到期望结果的步骤的有条理的序列。步骤是需要对物理量进行物理操作的那些步骤。通常,尽管不是必须的,这些量的形式是能够被存储、传送、合并、比较和以其他方式操作的电信号或者磁信号。已经证明,主要是出于共同使用的原因,有时将这些信号表示为比特、值、元素、符号、字符、项、数字等是方便的。
然而,应当记住,所有这些以及类似的术语将与适当的物理量相关联,并且仅仅是应用于这些物理量的方便的标示。除非在讨论中明确地特别声明,否则应当理解,在整个说明书中,使用诸如“处理”或者“计算(computing或calculating)”或者“确定”或者“显示”等的讨论表示计算机系统或者类似电子计算设备的动作和过程,其对将计算机系统的寄存器和存储器内表示为物理量(电子量)的数据进行操作和变换为计算机系统存储器或者寄存器或者其他这类信息存储、传输或者显示设备中类似地表示为物理量的其他数据。
本发明还涉及用于执行这里操作的装置。该装置可以针对所需目的而特别构建,或者其可以包括通用计算机,该通用计算机由存储在计算机中的计算机程序选择性地激活或者重配。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于任何类型的磁盘,包括软盘、光盘、CD-ROM、磁光盘、只读存储器(ROM)、随机访问存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或者适合存储电子指令的任意类型的介质,每个介质都耦合至计算机系统总线。
这里给出的算法和操作并不必然涉及任何特定的计算机或者其他装置。根据这里的教导,可以将各种通用系统与程序结合使用,或者可以证明,构建更为专门化的装置来执行方法步骤是方便的。各种这些系统的所需结构通过以下描述是易见的。此外,没有参考任何特定的编程语言来描述本发明。应当意识到,可以使用各种编程语言来实现在此描述的本发明的启示。此外,对于相关领域普通技术人员显然的是,本发明的模块、特征、属性、方法和其他方面可以实现为软件、硬件、固件或三者的任意组合。当然,只要本发明的组件实现为软件,该组件就可以实现为单机程序、较大程序的部分、多个独立程序、静态或者动态链接库、内核可加载模块、设备驱动器和/或计算机编程领域的技术人员现在或者将来知晓的全部以及任何方式。而且,本发明决不限于任何特定操作系统或者环境中的实现。
相关领域的技术人员将会理解,上述实现仅仅是示例性的,在不脱离本发明的实质精神和范围的情况下,可以进行多种改变。因此,所附权利要求旨在涵盖处于本发明实质精神和范围内的所有这些改变和修改。

Claims (21)

1.一种用于维持客户端与服务器之间的持续超文本传输协议(HTTP)连接的计算机实现的方法,包括:
建立传输控制协议(TCP)连接;
接收HTTP请求;
确定内容长度值,所述内容长度值在预定时段内维持使用HTTP的所述连接,所述内容长度值基于所述客户端与所述服务器之间的网络带宽以及所述预定时段二者来调整;
生成针对所述HTTP请求的HTTP响应,每个响应包括所述内容长度值;以及
在与针对所述HTTP请求的先前HTTP响应相关联的所述预定时段超时之前,发送针对所述HTTP请求的所述HTTP响应。
2.如权利要求1的方法,其中生成响应包括:
连续地生成对所述HTTP请求的响应,直到接收到终止所述连接的消息。
3.如权利要求1的方法,其中发送HTTP响应包括:
向所述客户端发送所述HTTP响应,其中所述客户端并不显式地支持持续连接。
4.如权利要求1的方法,其中发送HTTP响应包括:
向所述客户端发送所述HTTP响应,而不使用Keep-Alive报头。
5.如权利要求1的方法,其中独立于发生的多个HTTP事务来维持所述连接。
6.如权利要求1的方法,还包括:
发送ping;以及
响应于没有接收到ping响应而终止所述连接。
7.如权利要求1的方法,还包括:
检测到所述连接已经过早终止;
重新建立所述连接;
缩短所述预定时段;以及
针对所述缩短的预定时段来调整所述内容长度值。
8.如权利要求1的方法,其中建立所述连接包括:
响应于近似实时地传送数据的应用的启动,建立所述连接。
9.如权利要求1的方法,还包括:
通过所述连接发送数据,数据量与所述内容长度值无关。
10.如权利要求1的方法,其中所述HTTP响应包括由所述服务器确定的所述内容长度值,以便在所述预定时段内维持与所述客户端的所述HTTP连接。
11.如权利要求1的方法,其中所述HTTP请求包括由所述客户端确定的所述内容长度值,以便在所述预定时段内维持与所述服务器的使用HTTP的所述HTTP连接。
12.如权利要求1的方法,其中所述HTTP请求是GET请求和POST请求之一。
13.如权利要求1的方法,其中所述客户端和所述服务器的至少一个使用HTTP协议的1.0版本,用于HTTP通信。
14.如权利要求1的方法,其中所述客户端和所述服务器的至少一个使用HTTP协议的1.1版本,用于HTTP通信。
15.如权利要求1的方法,还包括:
对针对所述HTTP请求的所述HTTP响应进行加密。
16.一种用于从客户端维持与服务器的、使用HTTP的持续连接的计算机实现的方法,所述方法包括:
建立连接;
发送HTTP请求,每个HTTP请求包括内容长度值,所述内容长度值被确定用以在预定时段内维持所述连接,所述内容长度值基于所述客户端与所述服务器之间的网络带宽以及所述预定时段二者来调整;以及
在与先前HTTP请求相关联的所述预定时段超时之前,发送所述HTTP请求。
17.如权利要求16的方法,其中发送HTTP请求包括:
向所述服务器发送所述HTTP请求,其中所述服务器并不显式地支持持续连接。
18.如权利要求16的方法,其中发送HTTP请求包括:
向所述服务器发送所述HTTP请求,而不使用Keep-Alive报头。
19.一种用于从服务器维持与客户端的持续HTTP连接的系统,所述系统包括:
客户端;
服务器,其与所述客户端通信,并配置用于建立与所述客户端的连接,所述服务器配置用于:生成针对从所述客户端接收的HTTP请求的响应,每个响应包括在预定时段内维持所述连接的内容长度值,所述内容长度值基于所述客户端与所述服务器之间的网络带宽以及所述预定时段二者来调整,所述服务器配置用于:在与针对所述HTTP请求的先前响应相关联的所述预定时段超时之前,发送针对所述HTTP请求的所述HTTP响应。
20.一种用于从客户端维持与服务器的持续HTTP连接的系统,所述系统包括:
服务器;
客户端,其与所述服务器进行通信,并配置用于建立与所述服务器的连接,所述客户端配置用于:生成发送至所述服务器的HTTP请求,每个HTTP请求包括在预定时段内维持所述连接的内容长度值,所述内容长度值基于所述客户端与所述服务器之间的网络带宽以及所述预定时段二者来调整,所述客户端配置用于:在与先前HTTP请求相关联的所述预定时段超时之前,发送所述HTTP请求。
21.如权利要求20的系统,其中所述服务器是代表所述客户端与外部网络通信的代理服务器,并且其中通过所述持续HTTP连接接收的所述HTTP请求针对所述外部网络上的不止一个服务器。
CN 200910138286 2009-05-31 2009-05-31 网络设备之间持续http连接的计算机实现方法与系统 Expired - Fee Related CN101902449B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910138286 CN101902449B (zh) 2009-05-31 2009-05-31 网络设备之间持续http连接的计算机实现方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910138286 CN101902449B (zh) 2009-05-31 2009-05-31 网络设备之间持续http连接的计算机实现方法与系统

Publications (2)

Publication Number Publication Date
CN101902449A true CN101902449A (zh) 2010-12-01
CN101902449B CN101902449B (zh) 2013-08-07

Family

ID=43227655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910138286 Expired - Fee Related CN101902449B (zh) 2009-05-31 2009-05-31 网络设备之间持续http连接的计算机实现方法与系统

Country Status (1)

Country Link
CN (1) CN101902449B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107454139A (zh) * 2017-06-27 2017-12-08 努比亚技术有限公司 一种实现持久化连接的方法、终端和计算机可读存储介质
CN108390785A (zh) * 2018-02-13 2018-08-10 广东欧珀移动通信有限公司 通信加速方法、装置及终端
CN108599902A (zh) * 2018-02-13 2018-09-28 广东欧珀移动通信有限公司 降低通信时延的方法、装置、用户设备及存储介质
CN112073325A (zh) * 2019-06-10 2020-12-11 阿里巴巴集团控股有限公司 数据拥塞控制及带宽预估方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020003695A (ko) * 2000-06-27 2002-01-15 권혁 하이퍼텍스트 트랜스퍼 프로토콜 상에서 지속적 접속을유지하는 방법
US7216172B2 (en) * 2001-09-25 2007-05-08 Webex Communications, Inc. Systems and methods for establishing quasi-persistent HTTP connections
CN101039187A (zh) * 2006-03-17 2007-09-19 腾讯科技(深圳)有限公司 一种数据下载的方法及其系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107454139A (zh) * 2017-06-27 2017-12-08 努比亚技术有限公司 一种实现持久化连接的方法、终端和计算机可读存储介质
CN108390785A (zh) * 2018-02-13 2018-08-10 广东欧珀移动通信有限公司 通信加速方法、装置及终端
CN108599902A (zh) * 2018-02-13 2018-09-28 广东欧珀移动通信有限公司 降低通信时延的方法、装置、用户设备及存储介质
CN108390785B (zh) * 2018-02-13 2019-06-28 Oppo广东移动通信有限公司 通信加速方法、装置及终端
CN112073325A (zh) * 2019-06-10 2020-12-11 阿里巴巴集团控股有限公司 数据拥塞控制及带宽预估方法

Also Published As

Publication number Publication date
CN101902449B (zh) 2013-08-07

Similar Documents

Publication Publication Date Title
Glaroudis et al. Survey, comparison and research challenges of IoT application protocols for smart farming
US10860567B2 (en) Storing state in a dynamic content routing network
US7577749B1 (en) Emulation of persistent HTTP connections between network devices
KR100295003B1 (ko) 데이타캐싱방법및장치
KR100289520B1 (ko) 웹브라우저애플리케이션의성능향상방법및장치,클라이언트/서버시스템의성능향상방법및장치
US7127720B2 (en) Storing state in a dynamic content routing network
US9032096B2 (en) Reducing the impact of network latency on application performance
JP3491011B2 (ja) 差分化通信システム
US20030061355A1 (en) Systems and methods for establishing quasi-persistent HTTP connections
JP2015130199A (ja) ウェブソケット通信の分散エミュレーションを通してウェブアプリケーションサポートを提供する企業クライアント/サーバーシステム及び方法
US10027563B2 (en) Using status inquiry and status response messages to exchange management information
US11223686B2 (en) Transport channel via web socket for OData
CN101902449B (zh) 网络设备之间持续http连接的计算机实现方法与系统
US10536560B2 (en) System and method for implementing augmented object members for remote procedure call
KR20090009804A (ko) 네트워크 응답 버퍼링 거동을 관리하는 방법 및 그를 이용하는 컴퓨터 시스템
US20060155819A1 (en) Methods and system for using caches
Hu et al. Research and implementation of campus information push system based on WebSocket
US11663058B1 (en) Preemptive filtering of events of an event bus with a deterministic filter
US11973843B2 (en) On demand end user monitoring for automated help desk support
CN117354368A (zh) 七层代理下客户端信息透传方法、装置、设备及存储介质
GB2412769A (en) System for managing cache updates
CN112055083A (zh) 请求处理方法、装置、电子设备和介质
GB2412770A (en) Method of communicating data over a network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130807

Termination date: 20160531