CN1132113C - 使用http的计算机网络的性能优化 - Google Patents
使用http的计算机网络的性能优化 Download PDFInfo
- Publication number
- CN1132113C CN1132113C CN97181465A CN97181465A CN1132113C CN 1132113 C CN1132113 C CN 1132113C CN 97181465 A CN97181465 A CN 97181465A CN 97181465 A CN97181465 A CN 97181465A CN 1132113 C CN1132113 C CN 1132113C
- Authority
- CN
- China
- Prior art keywords
- server
- network
- request
- client computer
- client
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供了提高计算机网络(208),特别是连接用户到万维网的网络的性能的系统和方法。通过减少客户机(252)在给服务器(256)发送请求到接收到一个响应之间所经历的传输延迟而提高性能。可以通过在网络接入设备(254)上的一个代理器(260)维护一个连接超高速缓冲存储器以便更快响应对服务器(256)建立网络连接的请求。另外,该代理器可以维护一个信息超高速缓冲存储器以便更快响应获取一个已被修改的对象的请求。可以单独或者结合实现这些增强措施和在此间叙述的其它增强措施以通过节省在计算机网络部件之间的往返时间而减少给服务器发送请求时涉及的传输延迟。
Description
本发明涉及提高联网计算机系统的性能,特别涉及提高访问因特网上万维网(Web)的计算机系统的性能。
因特网是一个为世界范围内通信信息、思想和消息提供通路的网络。虽然因特网已为学术界使用数十年之久,但直到最近才对因特网及其上的信息的兴趣开始剧增。万维网对因特网普及的增加起到重要部分的原因,也许是因为浏览器的用户友好的图形用户接口(“GUI”),它能容易地用于访问万维网。
万维网使超文本文件可为因特网的用户使用。超文本文件不像一本书一样线性提供信息,而是用链接或指针提供读者其它位址,以便使用户可以从一个位址跳到另一个。万维网上的超文本文件通过超文本传输协议(“HTTP”)的客户机/服务器协议访问。
因特网使用传输控制协议/网际协议(“TCP/IP”)将非常不同和不相似的系统连成网络。在视窗3.X环境下,浏览器通常使用动态链接库WINSOCK.DLL与以基于TCP/IP的因特网通信。虽然因特网的硬件主干网是在教育、研究、政府和商业领域中的大型计算机系统之间一系列高速通信链路,但是大量访问万维网的用户使用的浏览器,是通过较慢或较弱的链路(例如通过模拟电话线连接的28.8K的调制解调器)连接到与因特网联网的网络接入设备。
网络接入设备通常具有一个对因特网的高速连接(例如以1.54MB的T-1连接)。网络接入设备可以是一个远程访问服务器以允许远程用户连接到内部网络和因特网资源。这种远程访问服务器,LanRoverTM访问交换远程访问服务器,由马萨诸塞州的Bedford市的Shiva公司生产。其它类型的网络接入设备由因特网服务提供商(“ISP”)使用,以提供客户机对因特网的访问。这样,网络接入设备在运行浏览器的计算机和为用户提供所谓的存在点(point of presence-POP)的万维网服务器之间通过网络连接。
一般来说网络性能会受到阻碍,因为在用户和其POP之间的网络链路通常比POP和万维网服务器之间的网络链路带宽低很多。另外,在客户机等待来自万维网的响应的同时,在常规网络中存在相当数量的传输延迟。因此,需要有提高计算机网络性能的系统和方法,优选不需要修改现有浏览器。
本发明提供提高计算机网络-特别是连接用户到万维网的网络-性能的系统和方法。可以通过减少客户机在发送对服务器的请求和接收到响应之间经历到的传输延迟来提高网络性能。可以由一个在网络接入设备上的代理器(agent)维持一个连接超高速缓冲存储器来更快响应对服务器的网络连接的连接请求。另外,该代理器可以维持一个信息超高速缓冲存储器以更快响应获得曾被修改的目标的请求。可以单独或者结合实现这些增强,通过节省代理器和服务器之间的往返时间来减少在发送对服务器各个请求中涉及的传输延迟。本发明补充由浏览器和其它部件(例如代理服务器)提供的超高速缓冲存储。
还可以通过由网络接入设备根据对HTTP请求的分析给万维网服务器或者代理服务器发送HTTP请求来提高网络性能。然后万维网浏览器可以透明地使用一个代理服务器,不必专门给代理服务器发送请求。
另外,可以通过有效地增加在客户机和网络接入设备之间的弱链路的有效带宽来提高网络性能。一个客户机钩(client hook)截取客户机对服务器的请求,并修改该客户机请求来提高性能。然后把修改后的请求发送到代理器,代理器从修改后的请求重建客户机请求并把该客户机请求发送到服务器。例如,可以把多个客户机请求组合为一个修改后的请求,或者把单个客户机请求智能压缩以便更有效地使用弱链路。
在一个实施例中,本发明提供一种由在一个位于客户机和服务器之间的计算机网络中的代理器执行的方法,以提高客户机和服务器之间的性能,该方法包括步骤:从客户机接收一个第一请求以打开到服务器的一个单一网络连接;发送多个请求到服务器以打开到该服务器的多个网络连接;从该客户机接收一个第二请求;使用多个网络连接中的一个发送该第二请求到服务器。因此,响应客户机打开单一网络连接的第一请求打开到服务器的多个网络连接。
在另一实施例中,本发明提供一种由在一个位于客户机和服务器之间的计算机网络中的代理器执行的方法,以提高客户机和服务器之间的性能,该方法包括步骤:从客户机接收一个第一请求以从服务器获取一个在特定的时间印记后已被修改的对象;发送该第一请求到服务器;从该服务器接收一个第一响应,说明该对象在特定时间印记后还未被修改;发送该第一响应到客户机;在超高速缓冲存储器中存储该对象的标识符和一个时间印记;从该客户机接收一个第二请求以从服务器获取一个在特定时间印记后被修改的对象;如果存储在超高速缓冲存储器中的时间印记在从当前时间开始的一个预定时间量内,则发送一个第二响应到服务器,说明该对象在特定时间印记后还未被修改,而不给服务器发送第二请求。
在另一个实施例中,本发明提供一种由在一个位于客户机和万维网和代理服务器之间的计算机网络中的代理器执行的方法,以提高客户机和万维网服务器之间的性能,该方法包括步骤:从客户机接收一个HTTP请求;根据该HTTP请求发送该HTTP请求到万维网服务器或者代理服务器,代理服务器存储该万维网服务器上的可用信息。因此,客户机不需被修改或配置来使用该代理服务器。
在另一个实施例中,本发明提供一种方法,使用客户机计算机上的客户机钩以及在客户机计算机和服务器之间的代理器以提高在客户机计算机上的客户机和服务器之间的性能,包括步骤:客户机钩截取从客户机到服务器的请求;客户机钩修改该客户机请求;客户机钩发送修改后的请求到代理器;代理器根据修改后的请求重建客户机的请求;代理器发送客户机请求到服务器。客户机钩可以截取客户机请求以打开对该服务器的网络连接并立即响应,以便该客户机不必等待网络连接被打开的响应。代理器可以在需要时打开该网络连接或存储打开的网络连接的超高速缓冲存储器到该服务器。另外,客户机钩可以截取客户机请求来将信息压缩为不同于前一请求信息的变化。代理器具有存储的先前的信息并从这一变化重建开始信息(hew information)。这样,在客户机钩和代理器之间的通信提高了客户机和服务器之间的通信性能。
本发明的特征是不必修改客户机或服务器而提高性能。由于不需修改万维网浏览器,所以能够实现透明地提高浏览器的性能而不管所使用的浏览器。本发明的其它特征和优点在阅读本说明书和附图的其余部分后将十分明显。
图1表示用于执行本发明实施例的软件的一个计算机系统的例子;
图2表示用于执行本发明实施例的软件的一个典型计算机系统的系统方框图;
图3表示通过因特网连接的多个计算机的图;
图4表示通过包括代理器的网络接入设备连接到一个万维网服务器的浏览器的方框图;
图5表示响应打开一个单一网络连接的请求而打开到服务器的多个网络连接的过程的高层流程图;
图6表示使用超高速缓冲存储器响应打开一个单一网络连接的请求而打开到服务器的多个网络连接的另一过程的流程图;
图7A和7B表示使用超高速缓冲存储器提高获取服务器上已被修改的对象的请求的性能的过程的流程图;
图8表示周期刷新在图7A和7B中使用的超高速缓冲存储器中信息的过程的流程图。
图9是一个通过网络接入设备连接到一个万维网服务器的浏览器的方框图,它使用一个代理服务器来提高性能;
图10表示根据一个HTTP请求引导该HTTP请求到万维网服务器或代理服务器的过程的流程图;
图11是通过网络接入设备连接到一个万维网服务器的浏览器的方框图,其中一个客户机钩截取来自浏览器的请求;
图12表示一个客户机钩的立即响应过程的流程图,响应打开对服务器一个网络连接的请求已经打开了网络连接;
图13表示代理器的一个过程的流程图,该代理器接收来自客户机钩的一个请求,它包括一个客户机请求和一个该请求要发送到的服务器的标识符;
图14表示代理器存储一个头标和从头标之间的差别重建另一头标的过程的流程图;
图15表示客户机钩和代理器提高头标传输性能过程的流程图。
在下面的叙述中,本发明将参考提高使用对网络存取设备弱链接的万维网浏览器性能的优选实施例说明。然而,本发明不限制于任何特定实施例或计算机网络。因此,下面实施例的叙述仅为说明的目的而并不加以限制。
图1表示用于执行本发明实施例的软件的一个计算机系统的例子。图1表示一个计算机系统1,它包括监视器3、屏幕5、机箱7、键盘9和鼠标11。鼠标11可以具有一个或多个按钮,例如鼠标按钮13。机箱7内安放一个CD-ROM驱动器15、系统存储器和可以用于存储和检索包括实现本发明的计算机代码的软件程序、用于本发明的数据的硬盘驱动器(见图2),等等。虽然所示CD-ROM17是作为示例的计算机可读存储介质,但是也可以使用其它计算机可读存储介质,包括软盘、磁带、快速存储器、系统存储器和硬盘驱动器。机箱7还安放熟悉的计算机部件(未示出),例如中央处理器、系统存储器、硬盘等。
图2表示用于执行本发明的一个实施例的软件的计算机系统1的系统方框图。如同图1,计算机系统1包括监视器3和键盘9。计算机系统1进一步包括各种子系统,诸如中央处理器102、系统存储器104、I/O控制器106、显示适配器108、可拆卸盘112(例如CD-ROM驱动器)、固定盘116(例如硬盘驱动器)、网络接口118和扬声器120。适用于本发明的其它计算机系统可以包括另外的或者较少子系统。例如,另一计算机系统可以包括多于一个的处理器102(亦即一个多处理器系统)或一个超高速缓冲存储器。
诸如122的箭头表示计算机系统1的系统总线结构。然而,这些箭头是用以表示连接各子系统的任何互联方案。例如,可以使用一个局部总线来连接中央处理器到系统存储器和显示适配器。图2所示计算机系统1只是适用于本发明的计算机系统的一个例子。适用于本发明的子系统的其它配置对熟悉本技术领域的人来说十分明显。
本发明的优选实施例提高万维网浏览器(或客户机)对因特网上的万维网的访问的性能。图3表示通过因特网相连的多个计算机。计算机202、204和206由因特网208互联,因特网是在世界范围内位于教育、研究和商业计算机站点之间一系列高速通信链路。因特网计算机使用TCP/IP作为通信协议。
万维网使用HTTP客户机/服务器协议,它是一种请求-响应协议,HTTP事务处理包括4个步骤:连接、请求、响应、拆除连接。在连接阶段,客户机打算打开对服务器的网络连接。除另外说明外,HTTP打算使用服务器的端口80用于此连接。建立连接包括从客户机请求打开网络连接到服务器和服务器响应报告网络连接已经打开的一个往返时间。虽然此间的讨论集中于HTTP的1.0版本,但是本发明不局限于HTTP的任何版本或特定HTTP。
在网络连接被打开之后,客户机可以在请求阶段发送一个HTTP请求到服务器。请求阶段包括往返时间的一半,其为该请求从客户机前往服务器。一旦服务器接收到该请求,则服务器通过在响应阶段发送对该客户机的响应来响应。如同请求一样,响应阶段包括往返时间的一半,其为响应从服务器到客户机。
拆除连接阶段关闭对服务器的网络连接。这一阶段包括往返时间的一半,并可以以许多不同方式发生。服务器可以在响应发出后关闭该连接,或者由客户机通过发送一个停止序列(例如用户点击浏览器的停止按钮或回退/向前按钮)。常规浏览器在屏幕的状态行显示四阶段之一。
术语“客户机”和“服务器”是相对的术语。客户机是一个实体,它向一个服务器发出请求,而服务器通常给该客户机响应。然而,这些符号是请求-响应特定的,而并不指示这些实体的作用是固定的。在优选实施例中,客户机是一个浏览器,而服务器是一个万维网服务器。浏览器可以在类似于图1和图2所示计算机上执行。服务器可以是类似的计算机,但通常是功能上强大得多的系统,包括更快的子系统和更多存储容量。
图4是通过包括一个代理器的网络接入设备连接到万维网服务器的浏览器的方框图。所示计算机网络包括一个万维网浏览器252、网络接入设备254和万维网服务器256。该浏览器经由网络协议(例如TCP/IP)栈258、通过一条链路与网络接入设备通信。浏览器和网络协议堆栈驻留在客户机计算机系统中。网络接入设备通常是一个电子箱,可以包括图2所示的某些子系统。万维网服务器驻留在通常为远程计算机系统的服务器中。
网络接入设备包括一个代理器260。代理器是一个包括本发明实施例的程序。代理器的计算机代码可以驻留在任何计算机可读存储介质,包括动态随机存取存储器、电子可擦写可编程只读存储器、或快速存储器,仅举几例。在优选实施例中,代理器驻留在由马萨诸塞州Bedford市Shiva公司生产的LanRoverTM存取交换远程访问服务器中。
图5表示响应打开一个单一网络连接的请求打开对服务器多个网络连接的过程的高层流程图。所示过程由在网络接入设备上的一个代理器执行。在步骤302,该代理器接收到一个打开到服务器单一网络连接的客户机请求。
响应打开到服务器的单一网络连接的客户机请求,在步骤304,代理器发送多个请求给服务器,打开对该服务器的多个网络连接。这样,响应客户机打开一个单一网络连接的请求而打开对该服务器的多个网络连接。优选地,代理器保持网络连接。一旦打开一个网络连接,代理器将从服务器接收一个响应,并把该响应发送给客户机。然后,该客户机将通过打开的网络连接发布对该服务器的一个请求,其由代理器接收。在步骤306,代理器使用打开的网络连接发送后继的客户机请求给服务器。
经常是代理器要接收另外对该服务器打开单一网络连接的客户机请求。由于该代理器先前打开多个网络连接,因此代理器立即响应,说明网络连接已经可用,这样节省了在代理器和服务器之间的往返时间。然后客户机通过打开的网络连接发布后继的客户机请求。代理器可以存储打开的网络连接到超高速缓冲存储器,将参考图6对其详细叙述。
为简单起见,此间的讨论叙述代理器与单一客户机浏览器和单一万维网服务器的相互作用。然而,在实际上,代理器通常与多个客户机和多个万维网服务器通信。本发明的方法并不孤立地单独提高每一个别客户机的性能。例如,一个客户机可以通过发布打开一个单一网络连接的请求而打开对服务器的多个网络连接。接着,另一客户机可以请求打开对同一服务器的一个单一网络连接。代理器然后可以立即把一个网络连接授与该客户机,因为网络连接已经打开。这样,一个客户机的动作也可以导致提高其它客户机的性能。代理器优选打开对该服务器的另一网络连接来替换已经被使用的一个。
图6表示使用超高速缓冲存储器响应打开一个单一网络连接的请求打开对服务器的多个网络连接的另一过程的流程图。在该实施例中,代理器维护对该服务器(或多个服务器)的网络连接的超高速缓冲存储器。在步骤352,代理器接收打开对该服务器单一网络连接的客户机请求。
在步骤354,代理器扫描超高速缓冲存储器寻找打开的对服务器的网络连接。如果在步骤356在超高速缓冲存储器中不存在对服务器的打开的网络连接的话,则代理器给服务器发送一个打开一个网络连接的请求。虽然本实施例在此点打开一个单一网络连接,并随后判定连接超高速缓冲存储是否改善了性能,但是在另外的实施例中,代理器给服务器发送多个请求要求打开多个网络连接而旁路随后的判定。
如果在超高速缓冲存储器中存在对该服务器可用的打开的网络连接的话,则代理器给客户机发送一个响应,说明网络连接被打开。该客户机使用这一打开的网络连接给服务器发送一个客户机请求,该请求由代理器在步骤360发送给服务器。
在步骤362,代理器判定对该服务器的网络连接超高速缓冲存储是否改善了性能。这一判定可从许多因素确定,包括该代理器在超高速缓冲存储器中的“命中”的次数、维护该超高速缓冲存储器需要的开销、服务器是否能响应该连接“保持打开”(亦即持续连接)的请求而允许该网络连接保持打开,等等。代理器可以请求服务器“保持打开”该连接,但是实践这一请求却由服务器决定。
在步骤364,代理器检查超高速缓冲存储器中对服务器的所有网络连接是否在使用。如果连接超高速缓冲存储确实改善了性能以及所有对服务器的网络连接都在使用的话,则代理器在步骤366给服务器至少发送一个请求,要求打开一个网络连接。如果确定多个网络连接改善了性能的话,则可以打开对服务器的多个连接。例如,在超高速缓冲存储器中具有预定数目(例如,用户指定的或由代理器在监视性能时确定的)的对一个服务器打开的网络连接也许是有利的。如果打开的连接数少于该预定数,则代理器至少发送一个请求,要求打开对该服务器的一个网络连接。
在一个优选实施例中,超高速缓冲存储器存储所有网络连接和一个指示符,指明该网络连接被打开、在使用或是关闭。在代理器打开网络连接时,它们被标记为“打开”。当代理器接收到打开对服务器的一个网络连接的请求且当超高速缓冲存储器中有一个对该服务器打开的网络连接时,则代理器标记该网络连接为“正在使用”或“被使用”。当代理器从服务器接收到超高速缓冲存储器中的网络连接已经关闭时,则代理器标记该网络连接为“关闭”。
在另一个实施例中,超高速缓冲存储器只存储打开的网络连接。每次在超高速缓冲存储器中的一个网络连接被使用或者关闭时,代理器从超高速缓冲存储器中清除该网络连接。代理器也可以给服务器发送一个请求,要求打开一个网络连接以替换从超高速缓冲存储器中清除的网络连接。
在常规网络系统中,当一个客户机希望从服务器获取一个对象时需要在该客户机和服务器之间两个往返时间:一个是打开连接,一个是获取对象。而在本发明中,可以避免在代理器和服务器之间的一次往返时间,这样将总时间减少为在客户机和服务器之间一个半的往返时间。这样明显提高客户机的性能。
图7A和7B表示使用超高速缓冲存储器在一个对象被修改后提高请求获取服务器上该对象的性能的过程的流程图。利用HITP,客户机能够请求服务器发送一个从指定时间和日期以来还未被修改的对象。为方便起见,这一指定的时间和日期下面将称为时间印记。更具体说,一个HTTP获取消息的头标可以包括一个具有指定“是否自...以来被修改”(If-Modified-Since)的字段和在另一字段的时间印记的头标。如果服务器确定该对象自该指定时间印记以来还未被修改,则服务器不需发送该对象到该客户机,而只需发布一个未修改(304)响应。
虽然浏览器可以使用本特征来维护它自己的超高速缓冲存储器,但是本发明的一个代理器使用该特征维护一个信息超高速缓冲存储器以进一步提高该计算机网络的性能。一般来说,可以使用两个客户机请求来建立信息超高速缓冲存储器和一个第三客户机请求来实现性能的提高。为完整起见,下面假定浏览器在自己的超高速缓冲存储器中没有希望的对象。
在图7A中的步骤402,代理器接收一个客户机请求,要求从服务器获取一个对象。代理器然后发送该客户机请求到服务器。在步骤404,代理器从服务器获取该对象并将其发送给客户机。常规浏览器具有一个用于存储用于未来参考(例如当用户重新访问该万维网页面时)的对象的超高速缓冲存储器。浏览器超高速缓冲存储器包括指示在超高速缓冲存储器中的对象的传播的时间印记。
当客户机想要在其超高速缓冲存储器中的一个对象时,浏览器发送一个请求,要求获取该对象,如果该对象自在浏览器超高速缓冲存储器中指定的时间印记以来已经被修改的话。在步骤406,代理器接收该请求并将其发送给服务器。
在步骤408,代理器从服务器接收一个响应(304),指明该对象自时间印记以来未曾被修改。代理器发送该响应给客户机。代理器在步骤410在超高速缓冲存储器中存储该对象的一个标识符和当前时间印记(亦即在服务器指示该对象还未改变时的时间印记)。这一当前时间印记被用作该对象未被修改时的时间的估计。超高速缓冲存储器可以是包括该对象的地址(例如一个标识符)、在浏览器超高速缓冲存储器中该对象的时间印记和当前时间印记的一张表。代理器不需在该超高速缓冲存储器中存储该对象。
如果该对象已被修改的话,则代理器在步骤412接收一个请求从服务器中获取该对象。代理器通过扫描超高速缓冲存储器来确定该请求是否指定在其超高速缓冲存储器中的一个对象。由于上述前一客户机请求同一对象,并且接收到一个未被修改的响应,因此该对象在超高速缓冲存储器中被指定。
现在参考图7B,在步骤414代理器判定,策略是否指示在浏览器的超高速缓冲存储器中的该对象足够为当前的。所谓策略可以是当前时间印记与超高速缓冲存储器中当服务器最后指示该对象未被修改时的时间印记的比较。如果在这两个时间印记之间的差别在一个预定数量的时间内,则在浏览器超高速缓冲存储器中的该对象是足够当前的。预定时间可以由管理员设定或者由代理器预先设定。可以应用另外的策略考虑。如果服务器不经常改变自己的内容(例如由代理器通知),则可以延长该时间数量。另一方面,如果服务器确实经常改变其内容(例如股票行情),则可以缩短该时间数量。这样,对一个仍为当前的对象的时间量可以是对服务器,万维网页或统一资源定位器(“URL”)特有的。
在步骤416,代理器确定浏览器的超高速缓冲存储器中的该对象足够当前,而且该代理器发送一个未修改响应给客户机。代理器响应该客户机而不给服务器发送请求,从而节省在代理器和服务器之间的一次往返时间。
如果代理器确定浏览器的超高速缓冲存储器不足够新,则在步骤418代理器发送一个请求从服务器获取一个对象,如果该对象已被修改的话。这样,代理器发送客户机请求给服务器。在步骤420,当代理器接收到服务器的一个响应时,该代理器发送该响应给客户机。在步骤422,代理器根据该响应更新超高速缓冲存储器。例如,代理器可以存储当前时间印记到超高速缓冲存储器中,以指示在这一时间点服务器指示该对象还未被修改。如果收到该对象的新的副本,则代理器可更新超高速缓冲存储器中的时间印记,指示浏览器接收到该对象的最后时间。
利用本发明,用于请求已被修改的对象的一个客户机的时间可以从在该客户机到服务器之间的一次往返时间减少到在该客户机和代理器之间的一次往返时间(暂时忽略连接和拆除连接时间)。虽然在超高速缓冲存储器中的条目是客户机特有的,然而本发明对发出请求以获取已被修改的对象的客户机提供明显的性能改善。
图8表示周期刷新在图7A和7B中使用的超高速缓冲存储器中信息的一个过程的流程图。在步骤452,代理器周期地(例如使用一个定时器)获取超高速缓冲存储器中一个对象的标识符。然后在步骤454代理器判定该对象是否足够新。这可以由代理器通过进行和客户机请求获取已被修改的对象的同样的计算来实现。
如果该对象不够新,则在步骤456代理器给服务器发送一个请求,要求获取该对象,如果它已被修改的话。这一请求起源于代理器而非客户机。然后在步骤458代理器根据服务器的响应更新其超高速缓冲存储器。如果服务器响应该对象还未被修改,则代理器可以更新该对象保持未被修改的时间的估计。反之,如果服务器发送该对象的一个新的副本,则代理器通常抛弃该新对象并且更新超高速缓冲存储器,指示该对象已被修改。在另一实施例中,代理器可以存储该对象的新副本以便满足未来的客户机请求。
在步骤460,客户机判定是否有在超高速缓冲存储器中标识的另外对象。如果有的话,则代理器试图为该对象更新超高速缓冲存储器。通过周期地更新超高速缓冲存储器,客户机浏览器的性能将会提高,因为可以更多取消在代理器和服务器之间的往返时间。
图9是一个浏览器的方框图,该浏览器通过使用一个代理服务器的网络接入设备连接到一个万维网服务器以提高性能。所示计算机网络包括一个万维网浏览器502、网络接入设备504和一个万维网服务器506。浏览器通过一条链路经由一个网络协议堆栈508与网络接入设备通信。浏览器和网络协议堆栈驻留在客户机计算机系统中。而万维网服务器驻留在通常为远程计算机系统的服务器中。
网络接入设备包括一个代理器510。所示代理器是一个程序,它接收HTTP请求并把它们引导到万维网服务器或者代理服务器512。该代理器通常接收几种协议的消息,但是这里的讨论集中于HTTP消息。代理服务器是一个计算机系统,它存储来自万维网服务器的可用信息。一般来说,从代理服务器访问信息可能比从万维网服务器更快。
虽然代理服务器的使用已经公知,但是常规系统需要客户机指定HTTP消息是发送到万维网服务器还是代理服务器。在本发明中,客户机无需明确指定该代理服务器使其性能由于使用了该代理服务器而得以提高。本发明的代理器根据对HTTP请求的分析发送该HTTP消息给万维网服务器或者代理服务器。
图10表示根据请求引导一个HTTP请求到万维网服务器或者代理服务器的过程的流程图。在步骤552,代理器从客户机接收一个HTTP请求。在步骤554代理器分析该HTTP请求。这一分析可以包括判定该请求是获取信息还是发布信息。发布信息的请求可以送给万维网服务器。然而,获取信息的请求可以送往代理服务器。也可以有其它包括判定该信息是否可能驻留在代理服务器中的因素。
如果在步骤556确定该HTTP请求可以由代理服务器服务,则在步骤558代理器发送该HTTP请求到代理服务器。代理器也可以在该请求被送往代理服务器之前需要转换该请求为一个不同的协议。否则,在步骤560,代理器发送该HTTP请求到万维网服务器。
本发明允许客户机得到代理服务器的益处而无需被修改来明确发送请求到代理服务器。这样,代理服务器可以被改变或由对网络接入设备进行的改变而修改,而客户机保持不变。
图11表示通过网络接入设备连接到一个万维网服务器的浏览器的方框图,其中一个客户机钩截取来自浏览器的请求。所示计算机网络包括一个万维网浏览器602、网络接入设备604和一个万维网服务器606。浏览器通过一条链路经由一个网络协议堆栈608与网络接入设备通信。在带有浏览器和网络协议堆栈的客户机计算机系统上有一个客户机钩610,该客户机钩截取浏览器和网络协议堆栈之间的呼叫。
在优选实施例中,客户机钩使用DLL链截取浏览器和网络协议堆栈之间的呼叫。例如,重命名动态链接库WINSOCK.DLL为WINSOCKZ.DLL。新的WINSOCK.DLL安装在客户机计算机系统中,它具有和在原来的WINSOCK.DLL中同样名字的例程。然而,新的WINSOCK.DLL在其例程(亦即客户机钩)中有在呼叫被执行之前对之截取的指令。在许多实例中,WINSOCK.DLL的许多例程在该例程的某一点调用WINSOCKZ.DLL中的例程。
网络接入设备包括一个代理器612。所示代理器是一个程序,它从该客户机钩接收HTTP请求。客户机钩和代理器以这样一种方式通信来提高计算机网络的性能而无需修改该客户机。因此,用户自由选择浏览器而仍可明显提高性能。
一般来说,客户机钩截取从客户机到服务器的HTTP请求。客户机钩修改来自客户机的HTTP请求并将修改后的请求发送给代理器。代理器接收修改后的请求,并根据修改后的请求从客户机重建原来的HTTP请求。然后代理器从客户机发送该HTTP请求到服务器。不要求客户机钩和代理器通过HTTP通信。然而,正是在客户机钩和代理器之间的通信提高在客户机和服务器之间通信的性能。
可以使用图11所示计算机网络来提高许多过程的性能。例如,可以改善打开对服务器网络连接的过程。另外,可以增强在对服务器的请求内发送头标的过程。但是这些只是本发明的几个例子,后面将参考图12-15详细叙述。
图12表示客户机钩的一个立即响应过程的流程图,该响应说明响应打开对服务器一个网络连接的请求,该网络连接已经打开。在步骤622,客户机钩截取打开对服务器一个网络连接的客户机请求。在步骤624,客户机钩立即响应客户机,一个伪网络连接已经打开。伪网络连接不是实际网络连接,但是允许客户机开始下一客户机请求。
在步骤626,客户机钩截取指定伪网络连接的对服务器的客户机请求。在步骤628,客户机钩发送该客户机请求和服务器标识符到代理器。服务器标识符(例如地址)从打开一个网络连接的客户机请求中获得。由于客户机钩和代理器在计算机网络中通信,因此不需要在这两者之间的消息符合HTTP。这样,所使用的实际协议可以为实际链路而优化。
图13表示从客户机钩接收一个请求的代理器的一个过程的流程图,客户机钩包括该客户机的一个请求应和一个该请求应送往的服务器的标识符。在步骤652,代理器从包括一个服务器标识符的客户机钩接收一个请求。代理器从客户机钩接收请求,不必首先接收要求打开对服务器一个网络连接的一个HTTP客户机请求。
在步骤654,代理器产生并发送一个HTTP请求给服务器,要求打开一个网络连接。优选地,代理器请求持续的网络连接。服务器由从客户机钩接收到的标识符标识。一旦代理器从服务器接收到网络连接已经打开的响应,则在步骤656代理器产生并给服务器发送一个HTTP请求形式的客户机请求。
代理器可以发送一个HTTP请求以打开对服务器的一个网络连接。代理器还可以维护一个网络连接的超高速缓冲存储器,其已在参考图6的说明中叙述。以这种方式,可以消除在代理器和服务器之间的往返时间。
本发明以许多方式提高性能。当打开对服务器的一个网络连接时可以消除在客户机和代理器之间的往返时间。这一点也许特别有意义,因为该链路可能是在该计算机网络中的弱链路。另外,在客户机钩和代理器之间的协议不限制为HTTP,因此它可以更加优化。
图14表示代理器存储一个头标和从头标之间的差别重建另一头标的过程的流程图。最初,客户机钩截取客户机请求并将其发送给代理器。下面将要说明,客户机钩和代理器之间的通信在其优化时优选不是HTTP。另外,虽然所述实施例是针对请求中的头标,但是本发明可用于请求中的任何信息。
当代理器接收客户机钩的一个请求时,在步骤672代理器存储其头标。然后代理器产生并给服务器发送一个相应HTTP请求。在步骤674,代理器接收客户机钩的另一请求,其包含前一头标和这一头标之间的差别。头标之间的差别现在不是HTTP中头标的标准格式。
在步骤676,代理器使用存储的头标及其差别为客户机钩的当前请求重建头标。在步骤678,代理器使用重建的头标产生和给服务器发送一个相应的HTTP请求。
头标通常包括关于浏览器的信息(例如名字和版本号)、可接受的数据格式等,类似一个多用途因特网邮寄扩展(“MIME”)头标。因此,头标的大部分在不同请求间不改变。在本发明中,一个HTTP请求可以从几百字节减少为不到20字节。这一点特别有意义,因为在客户机钩和代理器之间的链路通常是计算机网络中的弱链路。下面详细叙述这一过程的实现。
图15表示提高头标传输性能的客户机钩和代理器的一个过程的流程图。在步骤702,客户机钩截取对服务器的一个客户机请求,该请求包括客户机钩存储的一个头标。该客户机请求是一个HTTP请求,而客户机钩在给代理器发送该客户机请求时使用更加优化的协议(亦即非HTTP)。
在步骤704,客户机钩给代理器发送客户机请求以便传输给服务器。一旦代理器接收到该客户机请求,则代理器在步骤706存储客户机请求中头标的副本。如果客户机请求不是HTTP,则代理器产生一个相应的HTTP客户机请求。在步骤708,代理器发送该客户机请求到服务器。
在步骤710,客户机钩截取客户机对服务器的一个请求,它包含一个头标。在步骤712,客户机钩修改该客户机请求,使其包括一个指定在该头标和前一头标之间差别的头标。这样,客户机请求将包含头标之间的差别。
在步骤714,代理器接收修改后的客户机请求。利用修改后的客户机请求,在步骤716,代理器从存储的头标和头标之间的差重建头标。代理器产生一个HTTP请求,它相应于客户机请求并包括重建的头标。在步骤718,代理器发送该客户机请求到服务器。
本发明以多种方式提高性能。当打开对服务器的一个网络连接时,可以消除客户机和代理器之间的往返时间。这一点可能特别有意义,因为在客户机钩和代理器之间的链路可能比代理器和服务器之间的链路慢许多。另外,在客户机钩和代理器之间的协议不限制为HTTP,因此这可能更加优化。
虽然上面是本发明的优选实施例的完整说明,但是可以使用各种替代、修改和等价物。显然,本发明在进行适当修改后同样可应用于上述实施例。例如,虽然分别说明各实施例,但是可以结合多个实施例以进一步提高性能。因此,上述说明不应视为是用以限制本发明的范围,本发明的范围由所附权利要求的边界定义再加上等价方法的全部范围。
Claims (67)
1.在一个计算机网络中由在该计算机网络中客户机和服务器之间的一个代理器执行的方法,用以提高客户机和服务器之间的性能,所述方法包括步骤:
接收一个客户机的第一请求打开对服务器的一个单一网络连接;
给服务器发送多个请求打开对该服务器的多个网络连接;
接收该客户机的一个第二请求;
使用多个网络连接中的一个给服务器发送第二请求;
其中对服务器的多个网络连接是响应客户机要求打开一个单一网络连接的第一请求而打开的。
2.权利要求1所述方法,进一步包括步骤:
接收客户机要求打开对服务器的一个单一网络连接的第三请求;
给客户机发送一个响应,说明网络连接被打开;
接收客户机的一个第四请求;
使用先前响应第一请求获得的多个网络连接中的一个发送第四请求到服务器。
3.权利要求2所述方法,进一步包括的步骤有:给服务器发送请求,要求打开对该服务器的一个网络连接,以便替换正被使用的多个网络连接中的一个。
4.权利要求1所述方法,进一步包括在网络连接的一个超高速缓冲存储器中存储多个网络连接的步骤。
5.权利要求4所述方法,进一步包括步骤:
接收客户机一个第三请求,要求打开对该服务器的一个单一网络连接;
扫描超高速缓冲存储器以判定在该超高速缓冲存储器中是否存在对该服务器打开的网络连接;
如果在该超高速缓冲存储器中存在一个打开的网络连接,则给客户机发送一个响应,说明已经打开一个网络连接,以此使该被打开的网络连接被使用。
6.权利要求5所述方法,进一步包括步骤:
判定网络连接超高速缓冲存储是否提高了客户机和服务器之间的性能;
如果网络超高速缓冲存储提高了性能,则给服务器发送一个请求,要求打开对该服务器的一个网络连接,以便在超高速缓冲存储器中存储另一打开的网络连接来替换被使用的网络连接。
7.权利要求4所述方法,进一步包括步骤:
确定存储在超高速缓冲存储器中对服务器打开的网络连接的数目;
如果打开的网络连接数目小于一个预定数目,则给服务器发送一个请求,要求打开对该服务器的一个网络连接,以便在超高速缓冲存储器中存储另一打开的网络连接。
8.权利要求4所述方法,进一步包括步骤:
判定超高速缓冲存储器中一个对服务器打开的网络连接是否已经关闭;
如果在超高速缓冲存储器中有一个关闭的网络连接,则给服务器发送一个请求,要求打开对该服务器的一个网络连接,以便在超高速缓冲存储器中存储一个打开的网络连接。
9.权利要求5所述方法,进一步包括从超高速缓冲存储器中清除使用过的网络连接的步骤。
10.权利要求5所述方法,进一步包括步骤:给服务器发送一个请求,要求打开对该服务器的一个网络连接,以便在超高速缓冲存储器中存储另一打开的网络连接以替换被使用的网络连接。
11.权利要求1所述方法,其中客户机是一个万维网浏览器。
12.一个计算机网络,包括:
运行一个万维网浏览器的一个客户机计算机;
与客户机计算机联网的一个万维网服务器;
与客户机计算机联网的一个代理服务器计算机,用于存储在该万维网服务器上可用的信息;
在客户机计算机和万维网以及代理服务器之间联网的网络接入设备,包括一个代理器,它接收来自万维网浏览器的一个HTTP请求,要求打开对该服务器的一个单一网络连接以及给服务器发送多个请求,要求打开对该服务器的多个网络连接;
其中对服务器的多个网络连接是响应来自万维网浏览器的打开一个单一网络连接的HTTP请求而打开的。
13.在一个计算机网络中由在该计算机网络中在客户机和服务器之间的一个代理器执行的一种方法,用以提高客户机和服务器之间的性能,所述方法包括步骤:
接收一个客户机的第一请求从服务器获取一个对象,如果该对象在一个特定的时间印记后已被修改过的话;
发送该第一请求给服务器;
接收服务器的一个第一响应,该响应说明该对象在特定时间印记后未被修改;
发送该第一响应给客户机;
在一个超高速缓冲存储器中存储该对象的标识符和一个时间印记;
接收该客户机的一个第二请求从服务器中获取在特定时间印记后已被修改的对象;
如果在超高速缓冲存储器中存储的时间印记在从当前时间开始一预定的时间量之内,则给客户机发送一个第二响应,说明该对象在该特定时间印记后未被修改,而不给服务器发送第二请求。
14.权利要求13所述方法,其中,存储步骤包括的步骤有:存储该对象的一个地址作为标识符、存储特定时间印记和存储该时间印记作为当前时间,以便估计在何时该对象保持未被修改。
15.权利要求14所述方法,进一步包括步骤:周期地给服务器发送请求,要求获取在超高速缓冲存储器中标识的那些对象,即在特定时间印记后被修改的对象,以便更新超高速缓冲存储器中的时间印记。
16.权利要求13所述方法,进一步包括设定预定时间量的步骤。
17.权利要求13所述方法,其中客户机是一个万维网浏览器。
18.一个计算机网络,包括:
运行一个万维网浏览器的一个客户机计算机;
与客户机计算机联网的一个万维网服务器;
与客户机计算机联网的一个代理服务器计算机,用于存储在该万维网服务器上可用的信息;
在客户机计算机和万维网和代理服务器之间联网的网络接入设备,包括一个代理器,它为对象存储标识符和时间印记,以便在该代理器接收来自万维网浏览器的一个请求,要求从服务器获取在一个特定时间印记后已被修改的一个对象时,该代理器响应该请求,不给万维网服务器发送请求。
19.在一个计算机网络中由在该计算机网络中在一个客户机和一个万维网服务器和代理服务器之间的一个代理器执行的一种方法,用以提高客户机和万维网服务器之间的性能,所述方法包括步骤:
接收一个客户机的一个HTTP请求;
根据该HTTP请求,发送该HTTP请求到万维网服务器或代理服务器,代理服务器存储在该万维网服务器上的可用信息;
其中不需修改该客户机来使用万维网服务器。
20.权利要求19所述方法,其中,如果该HTTP请求可以由代理服务器服务的话,则将该HTTP请求发送到代理服务器,否则发送该HTTP请求到万维网服务器。
21.权利要求19所述方法,其中,如果该HTTP请求是邮寄信息给服务器的话,则将该HTTP请求发送到万维网服务器,否则发送该HTTP请求到代理服务器。
22.权利要求19所述方法,进一步包括在该HTTP请求被发送到代理服务器之前转换该HTTP请求为一个不同的协议的步骤。
23.权利要求19所述方法,其中客户机是一个万维网浏览器。
24.一个计算机网络,包括:
运行一个万维网浏览器的一个客户机计算机;
与该客户机计算机联网的一个万维网服务器;
与该客户机计算机联网的一个代理服务器计算机,用于存储在该万维网服务器上可用的信息;
在该客户机计算机和万维网和代理服务器之间联网的网络接入设备,包括一个代理器,它接收HTTP请求并根据每一HTTP请求,发送该HTTP请求到万维网服务器或代理服务器;
其中不需修改客户机计算机上的软件来使用该代理服务器。
25.权利要求24所述计算机网络,其中,可以由代理服务器服务的HTTP请求被发送到代理服务器,否则发送HTTP请求到万维网服务器。
26.权利要求24所述计算机网络,其中,给服务器邮寄信息的HTTP请求被发送到万维网服务器,否则HTTP请求被发送到代理服务器。
27.权利要求24所述计算机网络,其中,HTTP请求被发送到代理服务器之前转换该HTTP请求为一个不同的协议。
28.在一个计算机网络中,使用客户机计算机上的一个客户机钩和在该客户机计算机和服务器之间的一个代理器提高在客户机计算机上的客户机和服务器之间性能的方法,包括步骤:
客户机钩截取从客户机到服务器的请求;
客户机钩修改来自客户机的请求;
客户机钩发送修改后的请求到代理器;
代理器根据修改后的请求重建客户机的请求;
代理器发送客户机请求到服务器;
其中,在客户机钩和代理器之间的通信提高在该客户机和服务器之间的通信性能。
29.权利要求28所述方法,进一步包括步骤:
客户机钩截取客户机的第一请求,要求打开对服务器的一个网络连接,该第一请求包括服务器的一个标识符;
客户机钩立即响应,说明对服务器的网络连接已经对该服务器打开并存储该服务器的标识符;
客户机钩截取要通过打开的网络连接送往服务器的客户机的一个第二请求;
客户机钩发送该第二请求和服务器标识符到代理器。
30.权利要求29所述方法,进一步包括步骤:
代理器发送第三请求,要求打开对由所述标识符标识的服务器的一个网络连接;
代理器通过一个打开的网络连接发送第二请求给服务器。
31.权利要求29所述方法,进一步包括步骤:
代理器识别在超高速缓冲存储器中对服务器的一个打开的网络连接;
代理器通过打开的网络连接发送第二请求到服务器。
32.权利要求29所述方法,进一步包括步骤:
代理器不是首先接收客户机请求,打开对服务器的网络连接,而是接收从客户机到服务器的一个第一请求和该服务器的一个标识符;
使用该服务器的标识符,代理器发送一个第二请求给服务器,要求打开一个网络连接;
代理器通过一个打开的网络连接给服务器发送第一请求。
33.权利要求28所述方法,进一步包括步骤:
代理器存储包含在从客户机到服务器的第一请求中的第一信息;
代理器接收从该客户机到服务器的一个第二请求,该第二请求包含在第一信息和第二请求的第二信息之间的差,而不是第二信息;
代理器从存储的第一信息和在第一和第二信息之间的差重建第二信息;
代理器发送包含重建的第二信息的第二请求给服务器。
34.权利要求28所述方法,进一步包括步骤:
客户机钩截取从客户机到服务器的一个第一请求,它包括第一信息;
客户机钩发送该第一请求到代理器,以便发送给服务器;
代理器存储该第一信息的一个副本;
代理器发送第一请求给服务器;
客户机钩截取从客户机到服务器的一个第二请求,它包含第二信息;
客户机钩修改该第二请求使之包含在第一和第二信息之间的差而不是第二信息;
代理器从客户机接收修改过的第二请求;
代理器从存储的第一信息和第一和第二信息之间的差重建第二信息;
代理器给服务器发送包含重建的第二信息的第二请求。
35.权利要求28所述方法,其中,在客户机计算机和代理器之间的网络链路比代理器和服务器之间的网络链路慢很多。
36.在一个计算机网络中,使用客户机计算机上的一个客户机钩和在该客户机计算机和服务器之间的一个代理器提高在客户机计算机上的客户机和服务器之间性能的方法,包括步骤:
客户机钩截取客户机的一个第一请求,要求打开对服务器的一个网络连接,该第一请求包含该服务器的一个标识符;
客户机钩立即响应,说明对服务器的网络连接已经对该服务器打开并存储该服务器的标识符;
客户机钩截取要通过打开的网络连接送往服务器的客户机的一个第二请求;
客户机钩发送该第二请求和服务器标识符到代理器;
代理器发出一个第三请求,请求打开对标识符所标识的服务器的一个网络连接;以及
代理器经一个打开的网络连接发送第二请求。
37.权利要求36所述方法,进一步包括步骤:
代理器识别在超高速缓冲存储器中对服务器的一个打开的网络连接;
代理器通过打开的网络连接发送第二请求到服务器。
38.权利要求36所述方法,其中,对服务器要求打开一个网络连接的第二请求包含一个保持该网络连接为打开状态的请求。
39.在一个计算机网络中由在该计算机网络中在一个客户机和一个服务器之间的一个代理器执行的一种方法,用以提高该客户机和该服务器之间的性能,所述方法包括步骤:
不是首先接收来自客户机的请求,打开对服务器的网络连接,而是接收从客户机到服务器的一个第一请求和该服务器的一个标识符;
使用该服务器的标识符,发送一个第二请求给服务器,要求打开一个网络连接;
通过一个打开的网络连接给服务器发送第一请求。
40.权利要求39所述方法,其中,对服务器要求打开一个网络连接的第二请求包含一个保持该网络连接为打开状态的请求。
41.权利要求39所述方法,其中客户机是一个万维网浏览器。
42.在一个计算机网络中由在该计算机网络中在一个客户机和一个服务器之间的一个代理器执行的一种方法,用以提高该客户机和该服务器之间的性能,所述方法包括步骤:
存储包含在从该客户机到该服务器的第一请求中的第一信息;
接收从该客户机到服务器的一个第二请求,该第二请求包含第一信息和第二请求的第二信息之间的差,而不是第二信息;
从存储的第一信息和在第一和第二信息之间的差重建第二信息;
发送包含重建的第二信息的第二请求给服务器。
43.权利要求42所述方法,其中第一和第二请求是HTTP请求。
44.在一个计算机网络中,使用客户机计算机上的一个客户机钩和在该客户机计算机和服务器之间的一个代理器提高在客户机计算机上的客户机和服务器之间的性能的方法,包括步骤:
客户机钩截取从客户机到服务器的一个第一请求,它包括第一信息;
客户机钩发送该第一请求到代理器,以便发送给服务器;
代理器存储该第一信息的一个副本;
代理器发送第一请求给服务器;
客户机钩截取从客户机到服务器的一个第二请求,它包含第二信息;
客户机钩修改该第二请求使之包含在第一和第二信息之间的差而不是第二信息;
代理器从客户机接收修改过的第二请求;
代理器从存储的第一信息和第一和第二信息之间的差重建第二信息;
代理器给服务器发送包含重建的第二信息的第二请求。
45.权利要求44所述方法,其中客户机钩使用动态链接库链截取客户机请求。
46.权利要求44所述方法,其中第一和第二请求是HTTP请求。
47.权利要求44所述方法,其中客户机是一个万维网浏览器。
48.一种装置包括:
网络接入设备,和
一种存储了指令串的机器可读媒体,当由该网络接入设备执行该指令串时,使该网络接入设备:
接收客户机的一个第一请求以打开对服务器的单一网络连接;
对服务器发送多个请求,以打开多个对服务器的网络连接;
接收客户机的一个第二请求;以及
利用多个网络连接其中之一对服务器发送第二请求。
49.权利要求48所述的装置,进一步包括指令,当由网络接入设备执行所述指令时,使该网络接入设备将多个网络连接存储在一个超高速缓冲存储器中。
50.权利要求49所述的装置,进一步包括指令,当由网络接入设备执行该指令时,使网络接入设备:
接收一个客户机的一个第三请求,以打开对服务器的单一网络连接;
扫描超高速缓冲存储器,以确定在该超高速缓冲存储器中是否存在对服务器的一个打开的网络连接;以及
如果在超高速缓冲存储器中存在一个打开的网络连接,给客户机发送一个打开一个网络连接的响应,从而使打开的网络连接成为可用。
51.权利要求50所述的装置,进一步包括指令,当由网络接入设备执行该指令时,使网络接入设备:
确定网络连接超高速缓冲存储是否提高了客户机和服务器之间的性能;以及
如果网络超高速缓冲存储提高了性能,发送一个请求给服务器以打开与服务器的网络连接,以便将另一打开的网络连接存储在超高速缓冲存储器中,代替使用的网络连接。
52.权利要求49所述的装置,进一步包括指令,当由网络接入设备执行该指令时,使网络接入设备:
确定存储在超高速缓冲存储器中的对服务器的打开的网络连接的数目;以及
如果打开的网络连接数目小于一个预定数目,发送一个请求给服务器以打开一个对服务器的网络连接,以便将另一打开的网络连接存储在超高速缓冲存储器中。
53.权利要求49所述的装置,进一步包括指令,当由网络接入设备执行该指令时,使网络接入设备:
判定超高速缓冲存储器中一个对服务器打开的网络连接是否已经闭合;
如果在超高速缓冲存储器中有一个闭合的网络连接,则给服务器发送一个打开对该服务器的一个网络连接的请求,以便在超高速缓冲存储器中存储一个打开的网络连接。
54.权利要求50所述的装置,进一步包括指令,当由网络接入设备执行所述指令时,使网络接入设备从超高速缓冲存储器中清除使用的网络连接。
55.权利要求50的所述的装置,进一步包括指令,当由网络接入设备执行该指令时,使网络接入设备给服务器发送一个打开对该服务器的一个网络连接的请求,以便在超高速缓冲存储器中存储另一打开的网络连接,以替换使用的网络连接。
56.权利要求48所述的装置,其中客户机是一个万维网浏览器。
57.一种装置,包括:
网络接入设备,和
一种存储了指令串的机器可读媒体,当由网络接入设备执行该指令串时,使该网络接入设备:
接收一个客户机的一个第一请求,以便从一个服务器获取一个对象,如果该对象在一个特定的时间印记后已被修改过的话;
发送该第一请求给服务器;
接收服务器的一个第一响应,该响应说明该对象在特定时间印记后未被修改;
发送该第一响应给客户机;
在超高速缓冲存储器中存储该对象的标识符和时间印记;
接收该客户机的一个第二请求,以便从服务器中获取一个对象,如果该对象在特定时间印记后已被修改的话;以及
如果在超高速缓冲存储器中存储的时间印记在从当前时间开始的一预定时间量之内,则给客户机发送一个该对象在该特定时间印记后未被修改的第二响应,而不给服务器发送第二请求。
58.权利要求57所述的装置,进一步包括指令,当由网络接入设备执行所述指令时,使网络接入设备存储该对象的地址作为标识符、存储特定时间印记和存储该时间印记作为当前时间,以便估计在何时该对象保持不变。
59.权利要求58所述的装置,进一步包括指令,当由网络接入设备执行所述指令时,如果该对象在特定时间印记后已被修改,则使该网络接入设备周期地给服务器发送请求,要求获取在超高速缓冲存储器中的被标识的那些对象,以便更新超高速缓冲存储器中的时间印记。
60.权利要求57所述的装置,进一步包括指令,当由网络接入设备执行该指令时,使网络接入设备设定预定时间量。
61.权利要求57所述的装置,其中客户机是一个万维网浏览器。
62.一种装置,包括:
网络接入设备,和
一种存储了指令串的机器可读媒体,当由网络接入设备执行所述指令串时,使该网络接入设备:
接收一个客户机的一个请求;以及
对一个万维网服务器或代理服务器发送请求,根据该请求,代理服务器存储在万维网服务器上可获得的信息。
63.权利要求62所述的装置,其中从一个客户机接收到的请求为一个HTTP请求。
64.权利要求62所述的装置,其中如果从一个客户机接收到的请求可以由代理服务器服务的话,则将该请求发送到代理服务器,否则发送该请求到万维网服务器。
65.权利要求62所述的装置,其中如果从一个客户机接收到的请求是给服务器邮寄信息的话,则将该HTTP请求发送到万维网服务器,否则发送该请求到代理服务器。
66.权利要求62所述的装置,进一步包括指令,当由网络接入设备执行该指令时,使网络接入设备在HTTP请求被发送到代理服务器之前转换该请求为一个不同的协议。
67.权利要求62所述的装置,其中客户机是一个万维网浏览器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/752,500 | 1996-11-20 | ||
US08/752,500 US5852717A (en) | 1996-11-20 | 1996-11-20 | Performance optimizations for computer networks utilizing HTTP |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1251671A CN1251671A (zh) | 2000-04-26 |
CN1132113C true CN1132113C (zh) | 2003-12-24 |
Family
ID=25026570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN97181465A Expired - Fee Related CN1132113C (zh) | 1996-11-20 | 1997-11-20 | 使用http的计算机网络的性能优化 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5852717A (zh) |
EP (1) | EP1008057B1 (zh) |
CN (1) | CN1132113C (zh) |
AU (1) | AU7303398A (zh) |
CA (1) | CA2272897C (zh) |
HK (1) | HK1028655A1 (zh) |
WO (1) | WO1998022886A1 (zh) |
Families Citing this family (339)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701451A (en) * | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US5809415A (en) * | 1995-12-11 | 1998-09-15 | Unwired Planet, Inc. | Method and architecture for an interactive two-way data communication network |
US6466783B2 (en) | 1995-12-11 | 2002-10-15 | Openwave Systems Inc. | Visual interface to mobile subscriber account services |
US6473609B1 (en) | 1995-12-11 | 2002-10-29 | Openwave Systems Inc. | Method and architecture for interactive two-way communication devices to interact with a network |
US6742022B1 (en) * | 1995-12-11 | 2004-05-25 | Openwave Systems Inc. | Centralized service management system for two-way interactive communication devices in data networks |
JP3618917B2 (ja) * | 1996-08-05 | 2005-02-09 | 株式会社東芝 | 情報収集方法 |
US5991802A (en) * | 1996-11-27 | 1999-11-23 | Microsoft Corporation | Method and system for invoking methods of objects over the internet |
US6085224A (en) * | 1997-03-11 | 2000-07-04 | Intracept, Inc. | Method and system for responding to hidden data and programs in a datastream |
US5948066A (en) * | 1997-03-13 | 1999-09-07 | Motorola, Inc. | System and method for delivery of information over narrow-band communications links |
US6167438A (en) * | 1997-05-22 | 2000-12-26 | Trustees Of Boston University | Method and system for distributed caching, prefetching and replication |
US7103794B2 (en) * | 1998-06-08 | 2006-09-05 | Cacheflow, Inc. | Network object cache engine |
JPH113307A (ja) * | 1997-06-13 | 1999-01-06 | Canon Inc | 情報処理装置および方法 |
US6304886B1 (en) * | 1997-06-19 | 2001-10-16 | International Business Machines Corporation | System and method for building a web site using specific interface |
US6684369B1 (en) | 1997-06-19 | 2004-01-27 | International Business Machines, Corporation | Web site creator using templates |
US6119167A (en) * | 1997-07-11 | 2000-09-12 | Phone.Com, Inc. | Pushing and pulling data in networks |
US6021426A (en) * | 1997-07-31 | 2000-02-01 | At&T Corp | Method and apparatus for dynamic data transfer on a web page |
US6026413A (en) * | 1997-08-01 | 2000-02-15 | International Business Machines Corporation | Determining how changes to underlying data affect cached objects |
US6672775B1 (en) * | 1997-08-01 | 2004-01-06 | International Business Machines Corporation | Cross-machine web page download and storage |
US6256712B1 (en) * | 1997-08-01 | 2001-07-03 | International Business Machines Corporation | Scaleable method for maintaining and making consistent updates to caches |
CA2298712A1 (en) * | 1997-08-06 | 1999-02-18 | Tachyon, Inc. | A distributed system and method for prefetching objects |
US6226642B1 (en) | 1997-09-11 | 2001-05-01 | International Business Machines Corporation | Content modification of internet web pages for a television class display |
US6240461B1 (en) | 1997-09-25 | 2001-05-29 | Cisco Technology, Inc. | Methods and apparatus for caching network data traffic |
US6223209B1 (en) * | 1997-09-30 | 2001-04-24 | Ncr Corporation | Distributed world wide web servers |
US6253234B1 (en) * | 1997-10-17 | 2001-06-26 | International Business Machines Corporation | Shared web page caching at browsers for an intranet |
US6128701A (en) * | 1997-10-28 | 2000-10-03 | Cache Flow, Inc. | Adaptive and predictive cache refresh policy |
US6393526B1 (en) | 1997-10-28 | 2002-05-21 | Cache Plan, Inc. | Shared cache parsing and pre-fetch |
WO1999023571A1 (en) * | 1997-11-03 | 1999-05-14 | Inca Technology, Inc. | Automatically configuring network-name-services |
JP3449684B2 (ja) * | 1997-12-11 | 2003-09-22 | 富士通株式会社 | ソフトウェア設定装置及びソフトウェア設定方法及び当該方法を実現するプログラムを記録した記録媒体 |
US6366947B1 (en) * | 1998-01-20 | 2002-04-02 | Redmond Venture, Inc. | System and method for accelerating network interaction |
JP3561139B2 (ja) * | 1998-01-27 | 2004-09-02 | シャープ株式会社 | ファイルオブジェクト中継方法、ファイルオブジェクト中継方法のプログラムを記録したコンピュータで読取り可能な記録媒体、およびゲートウェイ計算機 |
US6122666A (en) * | 1998-02-23 | 2000-09-19 | International Business Machines Corporation | Method for collaborative transformation and caching of web objects in a proxy network |
US7007072B1 (en) * | 1999-07-27 | 2006-02-28 | Storage Technology Corporation | Method and system for efficiently storing web pages for quick downloading at a remote device |
US6272534B1 (en) * | 1998-03-04 | 2001-08-07 | Storage Technology Corporation | Method and system for efficiently storing web pages for quick downloading at a remote device |
US6175869B1 (en) * | 1998-04-08 | 2001-01-16 | Lucent Technologies Inc. | Client-side techniques for web server allocation |
US6289358B1 (en) | 1998-04-15 | 2001-09-11 | Inktomi Corporation | Delivering alternate versions of objects from an object cache |
US6128623A (en) * | 1998-04-15 | 2000-10-03 | Inktomi Corporation | High performance object cache |
US5930472A (en) * | 1998-04-29 | 1999-07-27 | Motorola, Inc. | Method and apparatus in a wireless communication system for splitting a browser functionality between a wireless client and an infrastructure portion |
US6144996A (en) * | 1998-05-13 | 2000-11-07 | Compaq Computer Corporation | Method and apparatus for providing a guaranteed minimum level of performance for content delivery over a network |
US6438597B1 (en) * | 1998-08-17 | 2002-08-20 | Hewlett-Packard Company | Method and system for managing accesses to a data service system that supports persistent connections |
US6212565B1 (en) | 1998-08-26 | 2001-04-03 | Sun Microsystems, Inc. | Apparatus and method for improving performance of proxy server arrays that use persistent connections |
US6519646B1 (en) * | 1998-09-01 | 2003-02-11 | Sun Microsystems, Inc. | Method and apparatus for encoding content characteristics |
US6317837B1 (en) * | 1998-09-01 | 2001-11-13 | Applianceware, Llc | Internal network node with dedicated firewall |
US6411986B1 (en) * | 1998-11-10 | 2002-06-25 | Netscaler, Inc. | Internet client-server multiplexer |
US6526448B1 (en) | 1998-12-22 | 2003-02-25 | At&T Corp. | Pseudo proxy server providing instant overflow capacity to computer networks |
US6490602B1 (en) * | 1999-01-15 | 2002-12-03 | Wish-List.Com, Inc. | Method and apparatus for providing enhanced functionality to product webpages |
US6374288B1 (en) | 1999-01-19 | 2002-04-16 | At&T Corp | Digital subscriber line server system and method for dynamically changing bit rates in response to user requests and to message types |
US6434608B1 (en) * | 1999-02-26 | 2002-08-13 | Cisco Technology, Inc. | Methods and apparatus for caching network traffic |
AU763524B2 (en) * | 1999-03-02 | 2003-07-24 | Flexera Software Llc | Data file synchronisation |
US6502175B1 (en) * | 1999-03-31 | 2002-12-31 | Lucent Technologies Inc. | Method and apparatus for locating caches in a network to optimize performance |
JP3761356B2 (ja) * | 1999-05-25 | 2006-03-29 | 富士通株式会社 | Lan上のトラヒック制御システム、方法およびその制御プログラムを記録した記録媒体 |
US6513062B1 (en) | 1999-05-25 | 2003-01-28 | Grischa Corporation | Method, apparatus, and computer program product for efficient server response generation using intermediate state caching |
US6751191B1 (en) | 1999-06-29 | 2004-06-15 | Cisco Technology, Inc. | Load sharing and redundancy scheme |
US6510458B1 (en) | 1999-07-15 | 2003-01-21 | International Business Machines Corporation | Blocking saves to web browser cache based on content rating |
US6697849B1 (en) * | 1999-08-13 | 2004-02-24 | Sun Microsystems, Inc. | System and method for caching JavaServer Pages™ responses |
US6658462B1 (en) | 1999-08-26 | 2003-12-02 | International Business Machines Corporation | System, method, and program for balancing cache space requirements with retrieval access time for large documents on the internet |
US6757717B1 (en) | 1999-09-16 | 2004-06-29 | Proxyconn, Inc. | System and method for data access |
US6877036B1 (en) | 1999-09-24 | 2005-04-05 | Akamba Corporation | System and method for managing connections between a client and a server |
US6801927B1 (en) | 1999-09-24 | 2004-10-05 | Akamba Corporation | Network adaptor card with reverse proxy and cache and method implemented therewith |
US6308238B1 (en) * | 1999-09-24 | 2001-10-23 | Akamba Corporation | System and method for managing connections between clients and a server with independent connection and data buffers |
US7743089B2 (en) * | 1999-10-13 | 2010-06-22 | Intel Corporation | Method and system for dynamic application layer gateways |
JP3873548B2 (ja) * | 1999-10-29 | 2007-01-24 | 富士通株式会社 | 情報提供サービス、情報提供方法及び情報提供装置 |
US7349979B1 (en) | 1999-12-02 | 2008-03-25 | Cisco Technology, Inc. | Method and apparatus for redirecting network traffic |
US6748448B1 (en) | 1999-12-13 | 2004-06-08 | International Business Machines Corporation | High performance internet storage access scheme |
US6683873B1 (en) * | 1999-12-27 | 2004-01-27 | Cisco Technology, Inc. | Methods and apparatus for redirecting network traffic |
US7058007B1 (en) | 2000-01-18 | 2006-06-06 | Cisco Technology, Inc. | Method for a cable modem to rapidly switch to a backup CMTS |
US6964052B1 (en) * | 2000-01-18 | 2005-11-08 | E★Trade | Caching output from an object in an application server environment |
US6839829B1 (en) | 2000-01-18 | 2005-01-04 | Cisco Technology, Inc. | Routing protocol based redundancy design for shared-access networks |
IL140504A0 (en) * | 2000-02-03 | 2002-02-10 | Bandwiz Inc | Broadcast system |
US6820133B1 (en) | 2000-02-07 | 2004-11-16 | Netli, Inc. | System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination |
US6947440B2 (en) | 2000-02-15 | 2005-09-20 | Gilat Satellite Networks, Ltd. | System and method for internet page acceleration including multicast transmissions |
US6725272B1 (en) * | 2000-02-18 | 2004-04-20 | Netscaler, Inc. | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US6668279B1 (en) * | 2000-02-25 | 2003-12-23 | Sun Microsystems, Inc. | User level web server in-kernel network I/O accelerator |
US6934761B1 (en) | 2000-02-25 | 2005-08-23 | Sun Microsystems, Inc. | User level web server cache control of in-kernel http cache |
US7082456B2 (en) * | 2000-03-17 | 2006-07-25 | Filesx Ltd. | Accelerating responses to requests made by users to an internet |
AU2001232988A1 (en) * | 2000-03-24 | 2001-10-08 | Dotrocket, Inc. | A system and method for increasing data packet transfer rate in a computer network |
US7020719B1 (en) | 2000-03-24 | 2006-03-28 | Netli, Inc. | System and method for high-performance delivery of Internet messages by selecting first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination |
US6990579B1 (en) | 2000-03-31 | 2006-01-24 | Intel Corporation | Platform and method for remote attestation of a platform |
US7013484B1 (en) | 2000-03-31 | 2006-03-14 | Intel Corporation | Managing a secure environment using a chipset in isolated execution mode |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US7082615B1 (en) | 2000-03-31 | 2006-07-25 | Intel Corporation | Protecting software environment in isolated execution |
US7089418B1 (en) | 2000-03-31 | 2006-08-08 | Intel Corporation | Managing accesses in a processor for isolated execution |
US6934817B2 (en) | 2000-03-31 | 2005-08-23 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US7073071B1 (en) | 2000-03-31 | 2006-07-04 | Intel Corporation | Platform and method for generating and utilizing a protected audit log |
US7013481B1 (en) | 2000-03-31 | 2006-03-14 | Intel Corporation | Attestation key memory device and bus |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US7356817B1 (en) | 2000-03-31 | 2008-04-08 | Intel Corporation | Real-time scheduling of virtual machines |
US6760441B1 (en) | 2000-03-31 | 2004-07-06 | Intel Corporation | Generating a key hieararchy for use in an isolated execution environment |
US7194634B2 (en) | 2000-03-31 | 2007-03-20 | Intel Corporation | Attestation key memory device and bus |
US6996710B1 (en) | 2000-03-31 | 2006-02-07 | Intel Corporation | Platform and method for issuing and certifying a hardware-protected attestation key |
US6957332B1 (en) * | 2000-03-31 | 2005-10-18 | Intel Corporation | Managing a secure platform using a hierarchical executive architecture in isolated execution mode |
US6678825B1 (en) | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6754815B1 (en) | 2000-03-31 | 2004-06-22 | Intel Corporation | Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set |
US6769058B1 (en) | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor in an isolated execution environment |
US7801766B2 (en) | 2000-03-31 | 2010-09-21 | You Technology Brand Services, Inc. | Method, system, and computer readable medium for facilitating a transaction between a customer, a merchant and an associate |
US6965924B1 (en) * | 2000-04-26 | 2005-11-15 | Hewlett-Packard Development Company, L.P. | Method and system for transparent file proxying |
US6742044B1 (en) | 2000-05-10 | 2004-05-25 | Cisco Technology, Inc. | Distributed network traffic load balancing technique implemented without gateway router |
US6839809B1 (en) | 2000-05-31 | 2005-01-04 | Cisco Technology, Inc. | Methods and apparatus for improving content quality in web caching systems |
JP4282207B2 (ja) * | 2000-05-31 | 2009-06-17 | 日本電気株式会社 | サーバ装置、クライアント装置、クライアントサーバ通信システム及びそれらに用いるサーバ特定方式 |
US6611837B2 (en) | 2000-06-05 | 2003-08-26 | International Business Machines Corporation | System and method for managing hierarchical objects |
US7010606B1 (en) | 2000-06-05 | 2006-03-07 | International Business Machines Corporation | System and method for caching a network connection |
US7395348B1 (en) * | 2000-06-05 | 2008-07-01 | Cisco Technology, Inc. | Network cache-based content routing |
JP4776804B2 (ja) * | 2000-06-12 | 2011-09-21 | キヤノン株式会社 | ネットワークデバイス及びその制御方法、並びにコンピュータプログラム |
ATE422130T1 (de) * | 2000-06-14 | 2009-02-15 | Sap Ag | Kommunikation zwischen klienten und servercomputern über http, verfahren, computerprogrammprodukt und system |
US7072979B1 (en) | 2000-06-28 | 2006-07-04 | Cisco Technology, Inc. | Wide area load balancing of web traffic |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
DE10038557B4 (de) * | 2000-08-03 | 2005-12-15 | Siemens Ag | System und Verfahren zur Übertragung von Daten über Datennetze, insbesondere Internet, mit asynchroner Datenverbindung |
US7028091B1 (en) | 2000-08-31 | 2006-04-11 | Sun Microsystems, Inc. | Web server in-kernel interface to data transport system and cache manager |
US20020059440A1 (en) * | 2000-09-06 | 2002-05-16 | Hudson Michael D. | Client-side last-element cache network architecture |
US7668740B1 (en) * | 2000-09-22 | 2010-02-23 | Ita Software, Inc. | Method, system, and computer program product for interfacing with information sources |
US7793111B1 (en) | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US7389427B1 (en) | 2000-09-28 | 2008-06-17 | Intel Corporation | Mechanism to secure computer output from software attack using isolated execution |
US7099939B2 (en) * | 2000-10-03 | 2006-08-29 | Sun Microsystems Inc. | HTTP transaction monitor with sequence replay capacity |
US7016953B2 (en) * | 2000-10-03 | 2006-03-21 | Sun Microsystems, Inc. | HTTP transaction monitor |
US7203741B2 (en) * | 2000-10-12 | 2007-04-10 | Peerapp Ltd. | Method and system for accelerating receipt of data in a client-to-client network |
US7801978B1 (en) | 2000-10-18 | 2010-09-21 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
US20020059463A1 (en) * | 2000-11-10 | 2002-05-16 | Leonid Goldstein | Method and system for accelerating internet access through data compression |
US6792507B2 (en) | 2000-12-14 | 2004-09-14 | Maxxan Systems, Inc. | Caching system and method for a network storage system |
US7215781B2 (en) | 2000-12-22 | 2007-05-08 | Intel Corporation | Creation and distribution of a secret value between two devices |
US7035963B2 (en) | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US6907600B2 (en) | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US7225441B2 (en) | 2000-12-27 | 2007-05-29 | Intel Corporation | Mechanism for providing power management through virtualization |
US7631349B2 (en) * | 2001-01-11 | 2009-12-08 | Digi International Inc. | Method and apparatus for firewall traversal |
US7188145B2 (en) | 2001-01-12 | 2007-03-06 | Epicrealm Licensing Llc | Method and system for dynamic distributed data caching |
CA2441176A1 (en) * | 2001-03-16 | 2002-09-26 | Otg Software, Inc. | Network file sharing method and system |
US7096497B2 (en) | 2001-03-30 | 2006-08-22 | Intel Corporation | File checking using remote signing authority via a network |
US7899911B2 (en) * | 2001-06-07 | 2011-03-01 | Intel Corporation | Method and apparatus to retrieve information in a network |
US7881208B1 (en) | 2001-06-18 | 2011-02-01 | Cisco Technology, Inc. | Gateway load balancing protocol |
US20020199013A1 (en) * | 2001-06-25 | 2002-12-26 | Sorensen Lauge S. | Method and apparatus for moving HTML/XML information into a HTTP header in a network |
US7774492B2 (en) | 2001-07-26 | 2010-08-10 | Citrix Systems, Inc. | System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side net work connections |
US7191440B2 (en) | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
US7024555B2 (en) | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
US7797376B1 (en) * | 2001-11-13 | 2010-09-14 | Cisco Technology, Inc. | Arrangement for providing content operation identifiers with a specified HTTP object for acceleration of relevant content operations |
US7103771B2 (en) * | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
US7720997B1 (en) | 2001-12-19 | 2010-05-18 | Cisco Technology, Inc. | Path selection system |
US20030126454A1 (en) * | 2001-12-28 | 2003-07-03 | Glew Andrew F. | Authenticated code method and apparatus |
US7308576B2 (en) | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US7085846B2 (en) | 2001-12-31 | 2006-08-01 | Maxxan Systems, Incorporated | Buffer to buffer credit flow control for computer network |
US7145914B2 (en) | 2001-12-31 | 2006-12-05 | Maxxan Systems, Incorporated | System and method for controlling data paths of a network processor subsystem |
CN1208732C (zh) * | 2002-02-01 | 2005-06-29 | 上海贝尔阿尔卡特移动通信系统有限公司 | 在基于Web技术的应用系统中使用的事件处理方法 |
US20030149720A1 (en) * | 2002-02-06 | 2003-08-07 | Leonid Goldstein | System and method for accelerating internet access |
US20030149792A1 (en) * | 2002-02-06 | 2003-08-07 | Leonid Goldstein | System and method for transmission of data through multiple streams |
US7480806B2 (en) | 2002-02-22 | 2009-01-20 | Intel Corporation | Multi-token seal and unseal |
US7631196B2 (en) | 2002-02-25 | 2009-12-08 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7028149B2 (en) | 2002-03-29 | 2006-04-11 | Intel Corporation | System and method for resetting a platform configuration register |
US7295561B1 (en) | 2002-04-05 | 2007-11-13 | Ciphermax, Inc. | Fibre channel implementation using network processors |
US7406038B1 (en) | 2002-04-05 | 2008-07-29 | Ciphermax, Incorporated | System and method for expansion of computer network switching system without disruption thereof |
US7379970B1 (en) | 2002-04-05 | 2008-05-27 | Ciphermax, Inc. | Method and system for reduced distributed event handling in a network environment |
US20030191943A1 (en) * | 2002-04-05 | 2003-10-09 | Poisner David I. | Methods and arrangements to register code |
US7307995B1 (en) | 2002-04-05 | 2007-12-11 | Ciphermax, Inc. | System and method for linking a plurality of network switches |
US20030196100A1 (en) * | 2002-04-15 | 2003-10-16 | Grawrock David W. | Protection against memory attacks following reset |
US7058807B2 (en) * | 2002-04-15 | 2006-06-06 | Intel Corporation | Validation of inclusion of a platform within a data center |
US7076669B2 (en) * | 2002-04-15 | 2006-07-11 | Intel Corporation | Method and apparatus for communicating securely with a token |
US7127548B2 (en) | 2002-04-16 | 2006-10-24 | Intel Corporation | Control register access virtualization performance improvement in the virtual-machine architecture |
US7085832B2 (en) * | 2002-04-30 | 2006-08-01 | International Business Machines Corporation | Method and apparatus for enabling an internet web server to keep an accurate count of page hits |
US7139890B2 (en) | 2002-04-30 | 2006-11-21 | Intel Corporation | Methods and arrangements to interface memory |
US6820177B2 (en) | 2002-06-12 | 2004-11-16 | Intel Corporation | Protected configuration space in a protected environment |
US7142674B2 (en) | 2002-06-18 | 2006-11-28 | Intel Corporation | Method of confirming a secure key exchange |
US7392415B2 (en) * | 2002-06-26 | 2008-06-24 | Intel Corporation | Sleep protection |
US6996748B2 (en) | 2002-06-29 | 2006-02-07 | Intel Corporation | Handling faults associated with operation of guest software in the virtual-machine architecture |
US7124327B2 (en) | 2002-06-29 | 2006-10-17 | Intel Corporation | Control over faults occurring during the operation of guest software in the virtual-machine architecture |
WO2004006115A1 (en) * | 2002-07-02 | 2004-01-15 | Netscaler, Inc | System, method and computer program product to avoid server overload by controlling http denial of service (dos) attacks |
US7395355B2 (en) * | 2002-07-11 | 2008-07-01 | Akamai Technologies, Inc. | Method for caching and delivery of compressed content in a content delivery network |
US7296267B2 (en) | 2002-07-12 | 2007-11-13 | Intel Corporation | System and method for binding virtual machines to hardware contexts |
US7353538B2 (en) * | 2002-11-08 | 2008-04-01 | Federal Network Systems Llc | Server resource management, analysis, and intrusion negation |
US7376732B2 (en) * | 2002-11-08 | 2008-05-20 | Federal Network Systems, Llc | Systems and methods for preventing intrusion at a web host |
US7165181B2 (en) | 2002-11-27 | 2007-01-16 | Intel Corporation | System and method for establishing trust without revealing identity |
US7073042B2 (en) | 2002-12-12 | 2006-07-04 | Intel Corporation | Reclaiming existing fields in address translation data structures to extend control over memory accesses |
US20040117318A1 (en) * | 2002-12-16 | 2004-06-17 | Grawrock David W. | Portable token controlling trusted environment launch |
US7318235B2 (en) | 2002-12-16 | 2008-01-08 | Intel Corporation | Attestation using both fixed token and portable token |
US7318141B2 (en) | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
US7793286B2 (en) * | 2002-12-19 | 2010-09-07 | Intel Corporation | Methods and systems to manage machine state in virtual machine operations |
US7900017B2 (en) | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US20040128465A1 (en) * | 2002-12-30 | 2004-07-01 | Lee Micheil J. | Configurable memory bus width |
FR2855288B1 (fr) * | 2003-05-19 | 2005-09-16 | Canon Kk | Procede et dispositif de traitement de messages a balises de type soap |
US7251700B2 (en) * | 2003-05-27 | 2007-07-31 | Oracle International Corporation | Time-to-live timeout on a logical connection from a connection cache |
US7269692B2 (en) * | 2003-05-27 | 2007-09-11 | Oracle International Corporation | Implicit connection caching |
US7486618B2 (en) * | 2003-05-27 | 2009-02-03 | Oracle International Corporation | Weighted attributes on connections and closest connection match from a connection cache |
US7415708B2 (en) | 2003-06-26 | 2008-08-19 | Intel Corporation | Virtual machine management using processor state information |
US7593346B2 (en) | 2003-07-31 | 2009-09-22 | Cisco Technology, Inc. | Distributing and balancing traffic flow in a virtual gateway |
US7424709B2 (en) | 2003-09-15 | 2008-09-09 | Intel Corporation | Use of multiple virtual machine monitors to handle privileged events |
US7287197B2 (en) * | 2003-09-15 | 2007-10-23 | Intel Corporation | Vectoring an interrupt or exception upon resuming operation of a virtual machine |
US7739521B2 (en) | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
US7610611B2 (en) | 2003-09-19 | 2009-10-27 | Moran Douglas R | Prioritized address decoder |
US7237051B2 (en) | 2003-09-30 | 2007-06-26 | Intel Corporation | Mechanism to control hardware interrupt acknowledgement in a virtual machine system |
US20050080934A1 (en) | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US7366305B2 (en) | 2003-09-30 | 2008-04-29 | Intel Corporation | Platform and method for establishing trust without revealing identity |
KR100991891B1 (ko) * | 2003-10-22 | 2010-11-04 | 인터내셔널 비지네스 머신즈 코포레이션 | 접속 관리 방법 및 시스템과 컴퓨터 판독가능 저장 매체 |
US8244880B2 (en) * | 2003-10-22 | 2012-08-14 | International Business Machines Corporation | Connection management method, system, and program product |
US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
US7636844B2 (en) | 2003-11-17 | 2009-12-22 | Intel Corporation | Method and system to provide a trusted channel within a computer system for a SIM device |
JP2005149387A (ja) * | 2003-11-19 | 2005-06-09 | Nec Corp | リアルタイムWeb共有システム |
US8156343B2 (en) | 2003-11-26 | 2012-04-10 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US8037314B2 (en) | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
US7802085B2 (en) | 2004-02-18 | 2010-09-21 | Intel Corporation | Apparatus and method for distributing private keys to an entity with minimal secret, unique information |
US7356735B2 (en) | 2004-03-30 | 2008-04-08 | Intel Corporation | Providing support for single stepping a virtual machine in a virtual machine environment |
US7620949B2 (en) | 2004-03-31 | 2009-11-17 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US7912457B2 (en) * | 2004-04-21 | 2011-03-22 | Qualcomm Incorporated | Methods and apparatus for creation and transport of multimedia content flows |
JPWO2006001507A1 (ja) * | 2004-06-24 | 2008-04-17 | 日本電気株式会社 | 情報提供システム、情報提供サーバ、携帯端末、情報提供制御プログラム及び携帯端末制御プログラム |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US7305592B2 (en) | 2004-06-30 | 2007-12-04 | Intel Corporation | Support for nested fault in a virtual machine environment |
US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
US8544043B2 (en) * | 2004-07-21 | 2013-09-24 | Qualcomm Incorporated | Methods and apparatus for providing content information to content servers |
EP2267951B1 (en) | 2004-07-23 | 2016-12-28 | Citrix Systems, Inc. | Method for routing packets from an endpoint to a gateway |
EP1771998B1 (en) | 2004-07-23 | 2015-04-15 | Citrix Systems, Inc. | Systems and methods for optimizing communications between network nodes |
US7984113B2 (en) * | 2004-09-08 | 2011-07-19 | Sap Ag | System and method for passing messages to a web browser |
US7840962B2 (en) | 2004-09-30 | 2010-11-23 | Intel Corporation | System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time |
US8001175B2 (en) * | 2004-10-22 | 2011-08-16 | International Business Machines Corporation | Facilitating server response optimization |
US8146078B2 (en) | 2004-10-29 | 2012-03-27 | Intel Corporation | Timer offsetting mechanism in a virtual machine environment |
US8924728B2 (en) | 2004-11-30 | 2014-12-30 | Intel Corporation | Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information |
KR100934088B1 (ko) * | 2004-12-09 | 2009-12-24 | 콸콤 인코포레이티드 | 멀티미디어 컨텐트 플로우들을 생성하고 분산 네트워크로 전달하기 위한 방법 및 장치 |
US8533777B2 (en) | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
US8700695B2 (en) | 2004-12-30 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP pooling |
US8549149B2 (en) | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US7810089B2 (en) * | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
WO2006074072A2 (en) * | 2004-12-30 | 2006-07-13 | Citrix Systems, Inc. | Systems and methods for providing client-side acceleration techniques |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
US7395405B2 (en) | 2005-01-28 | 2008-07-01 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US20060184613A1 (en) * | 2005-02-15 | 2006-08-17 | Xata Corporation | Data conduit |
US20060262804A1 (en) * | 2005-05-18 | 2006-11-23 | Kim Moon J | Method of providing multiprotocol cache service among global storage farms |
WO2006126221A1 (en) * | 2005-05-27 | 2006-11-30 | Telecom Italia S.P.A. | System and method for performing mobile services, in particular push and pull services, in a wireless communication network |
US7809957B2 (en) | 2005-09-29 | 2010-10-05 | Intel Corporation | Trusted platform module for generating sealed data |
US8010595B2 (en) * | 2005-11-29 | 2011-08-30 | International Business Machines Corporation | Execution of server-side dynamic pages |
US7924884B2 (en) * | 2005-12-20 | 2011-04-12 | Citrix Systems, Inc. | Performance logging using relative differentials and skip recording |
US7921184B2 (en) | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
US8014530B2 (en) | 2006-03-22 | 2011-09-06 | Intel Corporation | Method and apparatus for authenticated, recoverable key distribution with no database secrets |
US8451806B2 (en) * | 2006-08-21 | 2013-05-28 | Citrix Sysrems, Inc. | Systems and methods for pinging a user's intranet IP address |
US8213393B2 (en) | 2006-08-21 | 2012-07-03 | Citrix Systems, Inc. | Methods for associating an IP address to a user via an appliance |
US8418243B2 (en) * | 2006-08-21 | 2013-04-09 | Citrix Systems, Inc. | Systems and methods of providing an intranet internet protocol address to a client on a virtual private network |
US7978617B2 (en) | 2006-09-15 | 2011-07-12 | Citrix Systems, Inc. | Methods for providing performance improvement recommendations |
US8078972B2 (en) | 2006-09-15 | 2011-12-13 | Citrix Systems, Inc. | Methods and interfaces for displaying performance data related to a current remote access session |
US8701010B2 (en) * | 2007-03-12 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods of using the refresh button to determine freshness policy |
US20080235326A1 (en) * | 2007-03-21 | 2008-09-25 | Certeon, Inc. | Methods and Apparatus for Accelerating Web Browser Caching |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8667175B2 (en) | 2008-03-13 | 2014-03-04 | Cisco Technology, Inc. | Server selection for routing content to a client using application layer redirection |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US8533293B1 (en) | 2008-03-31 | 2013-09-10 | Amazon Technologies, Inc. | Client side cache management |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US8156243B2 (en) | 2008-03-31 | 2012-04-10 | Amazon Technologies, Inc. | Request routing |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US7925782B2 (en) | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US8065417B1 (en) | 2008-11-17 | 2011-11-22 | Amazon Technologies, Inc. | Service provider registration by a content broker |
US8521880B1 (en) | 2008-11-17 | 2013-08-27 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8732309B1 (en) | 2008-11-17 | 2014-05-20 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US8060616B1 (en) | 2008-11-17 | 2011-11-15 | Amazon Technologies, Inc. | Managing CDN registration by a storage provider |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US20100223364A1 (en) * | 2009-02-27 | 2010-09-02 | Yottaa Inc | System and method for network traffic management and load balancing |
US20100220622A1 (en) * | 2009-02-27 | 2010-09-02 | Yottaa Inc | Adaptive network with automatic scaling |
US20100228819A1 (en) * | 2009-03-05 | 2010-09-09 | Yottaa Inc | System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8521851B1 (en) | 2009-03-27 | 2013-08-27 | Amazon Technologies, Inc. | DNS query processing using resource identifiers specifying an application broker |
AU2010234958A1 (en) * | 2009-03-31 | 2011-10-13 | Coach Wei | System and method for access management and security protection for network accessible computer services |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US8243960B2 (en) * | 2010-03-04 | 2012-08-14 | Bose Corporation | Planar audio amplifier output inductor with current sense |
AU2010202782B1 (en) * | 2010-07-01 | 2010-11-25 | Adeia Media Holdings Llc | Cloud data persistence engine |
US8756272B1 (en) | 2010-08-26 | 2014-06-17 | Amazon Technologies, Inc. | Processing encoded content |
US8930513B1 (en) | 2010-09-28 | 2015-01-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US8924528B1 (en) | 2010-09-28 | 2014-12-30 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8819283B2 (en) | 2010-09-28 | 2014-08-26 | Amazon Technologies, Inc. | Request routing in a networked environment |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US8938526B1 (en) | 2010-09-28 | 2015-01-20 | Amazon Technologies, Inc. | Request routing management based on network components |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8577992B1 (en) | 2010-09-28 | 2013-11-05 | Amazon Technologies, Inc. | Request routing management based on network components |
US9077681B2 (en) | 2010-10-05 | 2015-07-07 | Microsoft Technology Licensing, Llc | Page loading optimization using page-maintained cache |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US9391949B1 (en) | 2010-12-03 | 2016-07-12 | Amazon Technologies, Inc. | Request routing processing |
WO2012092586A2 (en) | 2010-12-30 | 2012-07-05 | Peerapp Ltd. | Methods and systems for transmission of data over computer networks |
CN103597471B (zh) | 2010-12-30 | 2017-05-17 | 皮尔爱普有限公司 | 用于对计算机网络上的数据通信进行缓存的方法和系统 |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US9417759B1 (en) * | 2011-06-27 | 2016-08-16 | Google Inc. | Synchronizing data across multiple browser tabs or windows |
WO2013041922A1 (en) | 2011-09-23 | 2013-03-28 | Gilat Satellite Networks, Ltd. | Decentralized caching system |
US8904009B1 (en) | 2012-02-10 | 2014-12-02 | Amazon Technologies, Inc. | Dynamic content delivery |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US9083743B1 (en) | 2012-03-21 | 2015-07-14 | Amazon Technologies, Inc. | Managing request routing information utilizing performance information |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US9135048B2 (en) | 2012-09-20 | 2015-09-15 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9917916B2 (en) | 2013-03-14 | 2018-03-13 | Apple Inc. | Media delivery service protocol to support large numbers of client with error failover processes |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
BR112016008789B1 (pt) * | 2013-11-19 | 2022-12-27 | SOLiD, INC | Estação principal configurada para comunicação de rede de área local sem fio de alta eficiência, método executado por uma estação principal, meio de armazenamento e estação de rede de área local sem fio de alta eficiência |
US9325463B2 (en) | 2013-11-19 | 2016-04-26 | Intel IP Corporation | High-efficiency WLAN (HEW) master station and methods to increase information bits for HEW communication |
US9705643B2 (en) | 2014-07-15 | 2017-07-11 | Intel IP Corporation | High-efficiency wireless local-area network devices and methods for acknowledgements during scheduled transmission opportunities |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10616179B1 (en) | 2015-06-25 | 2020-04-07 | Amazon Technologies, Inc. | Selective routing of domain name system (DNS) requests |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10616250B2 (en) | 2016-10-05 | 2020-04-07 | Amazon Technologies, Inc. | Network addresses with encoded DNS-level information |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10331471B1 (en) | 2017-03-29 | 2019-06-25 | Parallels International Gmbh | Browser credential management for virtual execution environments |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
US11212368B2 (en) * | 2019-05-17 | 2021-12-28 | Netflix, Inc. | Fire-and-forget offload mechanism for network-based services |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4891785A (en) * | 1988-07-08 | 1990-01-02 | Donohoo Theodore J | Method for transferring data files between computers in a network response to generalized application program instructions |
US5339435A (en) * | 1991-02-28 | 1994-08-16 | Hewlett-Packard Company | Heterogenous software configuration management apparatus |
US5710918A (en) * | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5598536A (en) * | 1994-08-09 | 1997-01-28 | Shiva Corporation | Apparatus and method for providing remote users with the same unique IP address upon each network access |
-
1996
- 1996-11-20 US US08/752,500 patent/US5852717A/en not_active Expired - Lifetime
-
1997
- 1997-11-20 WO PCT/US1997/021305 patent/WO1998022886A1/en active IP Right Grant
- 1997-11-20 EP EP97949528A patent/EP1008057B1/en not_active Expired - Lifetime
- 1997-11-20 CN CN97181465A patent/CN1132113C/zh not_active Expired - Fee Related
- 1997-11-20 CA CA002272897A patent/CA2272897C/en not_active Expired - Fee Related
- 1997-11-20 AU AU73033/98A patent/AU7303398A/en not_active Abandoned
-
2000
- 2000-11-21 HK HK00107447A patent/HK1028655A1/xx not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4891785A (en) * | 1988-07-08 | 1990-01-02 | Donohoo Theodore J | Method for transferring data files between computers in a network response to generalized application program instructions |
US5339435A (en) * | 1991-02-28 | 1994-08-16 | Hewlett-Packard Company | Heterogenous software configuration management apparatus |
US5710918A (en) * | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
Also Published As
Publication number | Publication date |
---|---|
CN1251671A (zh) | 2000-04-26 |
HK1028655A1 (en) | 2001-02-23 |
US5852717A (en) | 1998-12-22 |
CA2272897A1 (en) | 1998-05-28 |
AU7303398A (en) | 1998-06-10 |
CA2272897C (en) | 2007-05-29 |
EP1008057A4 (en) | 2002-06-26 |
EP1008057B1 (en) | 2005-08-10 |
WO1998022886A1 (en) | 1998-05-28 |
EP1008057A1 (en) | 2000-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1132113C (zh) | 使用http的计算机网络的性能优化 | |
US6523062B1 (en) | Facilitating memory constrained client devices by employing deck reduction techniques | |
US6199107B1 (en) | Partial file caching and read range resume system and method | |
US8307364B2 (en) | Multi-threaded annotator for hypertext information | |
US6108655A (en) | Method and apparatus for transmitting images and other objects over a computer network system | |
US6222634B1 (en) | Apparatus and method for printing related web pages | |
CN1113504C (zh) | 服务器侧的异步格式管理 | |
US6757708B1 (en) | Caching dynamic content | |
US6397253B1 (en) | Method and system for providing high performance Web browser and server communications | |
US5892917A (en) | System for log record and log expansion with inserted log records representing object request for specified object corresponding to cached object copies | |
USRE46967E1 (en) | System, apparatus, method, and computer program product for indexing a file | |
US7249196B1 (en) | Web page source file transfer system and method | |
US7082476B1 (en) | System and method of optimizing retrieval of network resources by identifying and substituting embedded symbolic host name references with network addresses in accordance with substitution policies | |
US7376892B2 (en) | String template pages for generating HTML document | |
US6848000B1 (en) | System and method for improved handling of client state objects | |
US20030135653A1 (en) | Method and system for communications network | |
US20070101061A1 (en) | Customized content loading mechanism for portions of a web page in real time environments | |
US20090132640A1 (en) | Content timing method and system | |
US20050080876A1 (en) | Network data transfer acceleration system and method | |
US6256669B1 (en) | Method and apparatus for bandwidth characterization and reporting in web browsers | |
CN1234086C (zh) | 用于高速缓存文件信息的系统和方法 | |
US20020174174A1 (en) | System and method for monitoring execution time of a transaction | |
JP2003281023A (ja) | データ転送装置、データ転送方法、データ受信表示装置、プログラム | |
CN1194413A (zh) | 在服务器上预先高速缓存数据的方法和设备 | |
CN1285558A (zh) | 动态提供内容的处理器 |
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: 20031224 Termination date: 20161120 |
|
CF01 | Termination of patent right due to non-payment of annual fee |