CN101984778A - 用于细粒度策略驱动的cookie代理的系统和方法 - Google Patents
用于细粒度策略驱动的cookie代理的系统和方法 Download PDFInfo
- Publication number
- CN101984778A CN101984778A CN200980109863XA CN200980109863A CN101984778A CN 101984778 A CN101984778 A CN 101984778A CN 200980109863X A CN200980109863X A CN 200980109863XA CN 200980109863 A CN200980109863 A CN 200980109863A CN 101984778 A CN101984778 A CN 101984778A
- Authority
- CN
- China
- Prior art keywords
- cookie
- client computer
- server
- intermediate equipment
- 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
Links
- 235000014510 cooky Nutrition 0.000 title claims abstract description 1046
- 238000000034 method Methods 0.000 title claims description 92
- 230000004044 response Effects 0.000 claims abstract description 303
- 230000009471 action Effects 0.000 claims description 44
- 230000008878 coupling Effects 0.000 claims description 40
- 238000010168 coupling process Methods 0.000 claims description 40
- 238000005859 coupling reaction Methods 0.000 claims description 40
- 238000012986 modification Methods 0.000 claims description 39
- 230000004048 modification Effects 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 25
- 230000003993 interaction Effects 0.000 abstract 1
- 238000012544 monitoring process Methods 0.000 description 164
- 239000003795 chemical substances by application Substances 0.000 description 83
- 230000015654 memory Effects 0.000 description 79
- 238000004891 communication Methods 0.000 description 67
- 230000005540 biological transmission Effects 0.000 description 60
- 238000007726 management method Methods 0.000 description 57
- 230000006870 function Effects 0.000 description 51
- 238000013507 mapping Methods 0.000 description 49
- 238000004364 calculation method Methods 0.000 description 35
- 238000012384 transportation and delivery Methods 0.000 description 35
- 238000005259 measurement Methods 0.000 description 23
- 238000003860 storage Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 22
- 230000006835 compression Effects 0.000 description 18
- 238000007906 compression Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000036541 health Effects 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 10
- 235000019580 granularity Nutrition 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 230000001143 conditioned effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 5
- 238000004321 preservation Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000013011 mating Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000006116 polymerization reaction Methods 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 241000721662 Juniperus Species 0.000 description 2
- 241000277275 Oncorhynchus mykiss Species 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 241000501754 Astronotus ocellatus Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000037396 body weight Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000859 sublimation Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
Abstract
本发明使得企业可以基于和客户机、服务器相关的多种信息或者客户机和服务器之间的交互的细节和性质来配置不同的策略以处理业务量的多个子集。部署在客户机和服务器之间的中间设备可以在客户机和服务器之间建立SSL VPN会话。该中间设备可以经由免客户机(clientless)的SSL VPN会话从服务器接收对于客户机的请求的响应。该响应可以包括一个或者多个cookie。中间设备可以识别用于免客户机SSL VPN会话的访问配置文件。访问配置文件可以识别用于代理cookie的一个或者多个策略。中间设备可以响应于访问配置文件的一个或者多个策略来确定是否为客户机代理一个或者多个cookie或者将一个或者多个cookie的代理忽略。
Description
相关申请
本申请要求2008年1月26日提交的美国临时申请61/023849号的优先权,其内容通过引用包含于此。
技术领域
本发明总的涉及数据通信网络。更具体地,本发明涉及用于细粒度策略驱动的cookie代理管理、免客户机cookie管理的系统和方法以及用于cookie代理的技术。
背景技术
企业可以通过网络来为多个不同客户提供不同的服务。一些客户可以经由更安全的连接和网络连接,而另一些客户可以使用安全性较差的网络连接。类似地,一些客户可以配置为使用cookie和服务器进行网络通信,而另一些客户不可以这样。在企业的服务器使用cookie来提供服务的例子中,不能使用cookie的客户难以连接服务并且使用服务。客户之间的网络配置和网络连接中的这样的变化可以对企业在提供服务到这些客户方面产生挑战。
发明内容
在另一个方面中,提供一种技术方案,使得企业可以决定可以代理哪个cookie并且如何代理以及哪个cookie不可以代理。所提供的技术方案使得企业可以基于和客户机、服务器相关的多种信息或者客户机和服务器之间的交互的细节和性质来配置不同的策略以处理业务量的多个子集。例如,部署在客户机和服务器之间的中间设备可以在客户机和服务器之间建立SSL VPN会话。该中间设备可以经由免客户机(clientless)的SSL VPN会话从服务器接收对于客户机的请求的响应。该响应可以包括一个或者多个cookie。中间设备可以识别用于免客户机SSL VPN会话的访问配置文件。访问配置文件可以识别用于代理cookie的一个或者多个策略。中间设备可以响应访问配置文件的一个或者多个策略来确定是否为客户机代理或者忽略代理一个或者多个cookie。
在一些方面,本发明涉及用于通过一个或者多个服务器和一个或者多个客户机之间的cookie的中间设备进行配置驱动的代理的方法。中间设备可以在一个或者多个客户机和一个或者多个服务器之间建立SSL VPN会话。该中间设备可以经由中间设备在服务器和客户机之间建立的免客户机的SSL VPN会话从服务器接收对于客户机的请求的响应。该响应可以包括一个或者多个cookie。中间设备可以识别用于免客户机SSL VPN会话的访问配置文件。访问配置文件可以识别用于代理cookie的一个或者多个策略。中间设备可以响应访问配置文件的一个或者多个策略来确定对于客户机是否代理或者忽略一个或者多个cookie的代理。
在一些实施例中,中间设备可以接收一个或者多个cookie中的客户机消耗的cookie。访问配置文件可以识别包括对于客户机消耗的cookie的cookie代理动作的策略。在另一个实施例中,中间设备还响应于该策略来忽略客户机消耗的cookie的代理。在另一个实施例中,中间设备在转发给客户机的响应中保留客户机消耗的cookie。在又一个实施例中,中间设备经由响应来接收一个或者多个cookie的服务器cookie并且代理服务器cookie。仍在另一个实施例中,中间设备从响应中移除服务器cookie并且将响应转发给客户机。在又一个实施例中,中间设备响应于经由一个或者多个策略确定客户机不支持一个或者多个cookie来代理响应的一个或者多个cookie。仍在另一个实施例中,访问配置文件识别对于指定域名的服务器消耗的cookie限定cookie代理动作的策略并且中间设备如策略动作所指定的修改响应。
在一些实施例中,中间设备基于应用类型的标识来识别使用请求或者响应的访问配置文件。在另一个实施例中,访问配置文件基于用户或者用户组的标识来识别包括cookie代理动作的策略,以忽略代理一个或者多个cookie的一个cookie。仍然在另一个实施例中,访问配置文件基于中间设备的虚拟服务器的标识来识别策略,以忽略代理一个或者多个cookie的一个cookie。在又一个实施例中,除非一个或者多个访问配置文件的策略识别要忽略的一个或者多个cookie的一个cookie,否则中间设备代理响应的一个或者多个cookie。
在一些方面中,本发明涉及用于一个或者多个服务器和一个或者多个客户机之间的cookie的配置驱动代理的中间设备。中间设备可以在一个或者多个服务器和一个或者多个客户机之间建立SSL VPN会话。用于从服务器经由免客户机SSL VPN会话接收对于客户机请求的响应的包引擎可以通过服务器和客户机之间的中间设备来建立。响应可以包括一个或者多个cookie。策略引擎用于识别对于免客户机SSL VPN会话的访问配置文件,访问配置文件识别用于代理cookie的一个或者多个策略。中间设备响应于访问配置文件的一个或者多个策略来确定是否为客户机代理一个或者多个cookie或者将代理忽略。
在一些实施例中,包引擎经由响应接收一个或者多个cookie中的客户机消耗的cookie。在一些实施例中,访问配置文件可以识别包括对于客户机消耗的cookie的cookie代理动作的策略。在另一个实施例中,中间设备还响应于该策略来确定将客户机消耗的cookie的代理忽略。在一些实施例中,中间设备在转发给客户机的响应中保留客户机消耗的cookie。在又一个实施例中,包引擎经由响应来接收一个或者多个cookie的服务器cookie并且其中中间设备响应于一个或者多个策略来代理服务器cookie。仍在另一个实施例中,中间设备从响应中移除服务器cookie并且将响应转发给客户机。在一些实施例中,中间设备响应于经由一个或者多个策略确定客户机不支持一个或者多个cookie来代理响应的一个或者多个cookie。
在一些实施例中,策略引擎经由访问配置文件识别对于指定域名的服务器消耗的cookie限定cookie代理动作的一个或者多个策略的一个策略。在另一个实施例中,中间设备如策略动作所指定的修改响应。在一些实施例中,策略引擎基于应用类型的标识来识别经由请求或者响应的访问配置文件。在一些实施例中,访问配置文件基于用户或者用户组的标识来经由访问配置文件识别包括cookie代理动作的策略来将代理一个或者多个cookie的一个cookie忽略。
提供一种技术方案使得企业为客户机提供服务时不需要考虑它们的cookie或有关cookie的安全配置,并且在一些实施例中不需要牺牲传输的安全性和整体性。所提供的技术方案使得没有配置为使用cookie的客户机访问使用cookie的服务器,该cookie用于与客户机通信。部署在客户机和服务器之间的中间设备拦截和修改客户机和服务器之间的传输来补偿客户机和服务器之间的cooki e配置的不匹配。
在一些方面中,本申请涉及通过中间设备管理用于客户机的cookie的方法。中间设备从服务器接收对于客户机请求的响应。该响应可以包括统一资源定位符(URL)和cookie。中间设备可以通过将cookie从响应移除并且将唯一的客户机标识符插入URL来修改该响应。中间设备可以保存和唯一客户机标识符相关的所移除的cookie并且将修改的响应转发到客户机。
在一些实施例中,cookie管理器将与响应所包括的cookie相关联的一个或者多个值匹配到来自多个cookie的一个cookie。在另一个实施例中,中间设备响应于该匹配来修改所接收的响应。在一些实施例中,中间设备从客户机接收请求,该请求包括请求URL。Cookie管理器可以将请求URL匹配到来自多个cookie的所移除的cookie。在一些实施例中,中间设备通过增加已移除的cookie来修改请求URL并且将修改的请求URL转发给服务器。在另一个实施例中,多个cookie和请求URL所提供的至少一个域名或者至少一个路径相关联。在又一个实施例中,中间设备响应于该匹配从cookie管理器接收一个或者多个名称值对。在一些实施例中,响应包括多个cookie并且修改的响应包括和多个cookie相关联的多个客户机标识符。在其他实施例中,唯一客户机标识符是包括cookie的一部分的cookie代理会话cookie。
在一些实施例中,中间设备从客户机接收请求,该请求包括cooki e代理会话cookie,cookie代理会话cookie包括cookie的一部分。中间设备可以将cookie代理会话cookie匹配到该cookie。在一些实施例中,中间设备可以通过将cookie代理会话cookie从请求移除并且将该cookie增加到请求来修改该请求,并且将该请求转发给服务器。
在一些方面中,提供用于使用网络上的代理来管理cookie的中间设备。中间设备的包引擎从服务器接收对于客户机请求的响应,该响应可以包括URL和cookie。中间设备的cookie代理可以通过将cookie从响应移除并且将唯一的客户机标识符插入URL来修改该响应。中间设备的cookie管理器可以保存和唯一客户机标识符相关的所移除的cookie。中间设备可以将修改的响应转发到客户机。
在一些实施例中,响应还可以包括和cookie相关联的一个或者多个值。cookie管理器可以将与cookie相关联的一个或者多个值匹配到来自多个cookie的一个cookie。在一些实施例中,中间设备响应于该匹配来修改所接收的响应。在一些实施例中,包引擎从客户机接收请求。该请求可以包括请求URL并且Cookie管理器可以将请求URL匹配到来自多个cookie的所移除的cookie。在一些实施例中,中间设备通过增加已移除的cookie来修改请求URL并且将修改的请求URL转发给服务器。在另一个实施例中,多个cookie和请求URL所提供的至少一个域名或者至少一个路径相关联。在又一个实施例中,中间设备响应于该匹配从cookie管理器接收一个或者多个名称值对。在一些实施例中,响应包括多个cookie并且修改的响应包括和多个cookie相关联的多个客户机标识符。在一些实施例中,唯一客户机标识符是包括cookie所包括的一部分信息的cookie代理会话cookie。
在一些实施例中,中间设备从容户机接收请求,该请求可以包括cookie代理会话cookie。cookie代理会话cookie可以包括cookie的一部分。中间设备可以将cookie代理会话cookie匹配到该cookie并且通过将cookie代理会话cookie从请求移除并且将该cookie增加到请求来修改客户机的请求。中间设备可以将该修改后的请求转发给服务器。
附图说明
参考结合附图的以下描述,本发明的前述和其他对象、方面、特征和优势将会变得更加明显和更好理解,其中:
图1A、1B和1C是客户机经由一个或者多个设备来访问服务器的网络环境的实施例的框图;
图1D是经由设备来将计算环境从服务器递送到客户机的环境的实施例的框图;
图1E和1F是计算装置的实施例的框图;
图2A是处理在客户机和服务器之间的通信的中间设备的实施例的框图;
图2B是用于优化、加速、负载平衡和路由在客户机和服务器之间的通信的中间设备的另一个实施例的框图;
图3A是经由中间设备访问服务器的免客户机虚拟专用网络的实施例的框图;
图3B是经由中间设备访问服务器的免客户机虚拟专用网络的另一个实施例的框图;
图4A是涉及cookie管理的多个实施例的框图;
图4B是表示用在cookie管理中的多个管理序列图的框图;
图4C是表示cookie代理数据流的多个实施例的框图,包括涉及cookie代理的方法;和
图5是用于通过中间设备代理配置驱动cookie的方法的实施例的流程图。
根据以下结合附图提出的详细描述,本发明的特征和优势将变得更加明显,其中相同的参考符号在全文中标示对应元件。在附图中,同样的附图标记通常指示相同的、功能类似的和/或结构类似的元件。
具体实施方式
A.网络和计算环境
在讨论设备和/或客户机的系统和方法的实施例的细节之前,讨论可以部署这样的实施例的网络和计算环境是有帮助的。现在参考图1A,描述了网络环境的一个实施例。总的来说,网络环境包括经由一个或多个网络104和104′(通常被称为网络104)与一个或多个服务器106a-106n(通常也被称为服务器106或远程机器106)通信的一个或多个客户机102a-102n(通常也被称为本地机器102或客户机102)。在一些实施例中,客户机102经由设备200与服务器106通信。
虽然图1A示出客户机102和服务器106之间的网络104和网络104′,但客户机102和服务器106可以在同一个网络104上。网络104和104′可以是相同类型的网络或不同类型的网络。网络104和/或网络104′可以是像公司内联网的局域网(LAN)、城域网(MAN)或者诸如因特网或万维网的广域网(WAN)。在一个实施例中,网络104′可以是专用网而网络104可以是公用网。在一些实施例中,网络104可以是专用网而网络104′可以是公用网。在另一个实施例中,网络104和104′可以都是专用网。在一些实施例中,客户机102可以位于公司的分支机构,经由网络104上的WAN连接来与位于公司的数据中心的服务器106进行通信。
网络104和/或104′可以是任一类型和/或形式的网络,并且可以包括下列任意一种网络:点到点网络、广播网、广域网、局域网、电信网、数据通信网、计算机网络、ATM(异步传送模式)网络、SONET(同步光网络)网络、SDH(同步数字系列)网络、无线网络和有线网络。在一些实施例中,网络104可以包括诸如红外信道或卫星频带的无线链路。网络104和/或104′的拓扑结构可以是总线型、星型或环型网络拓扑结构。网络104和/或104′以及网络拓扑结构可以是能够支持此处描述的操作的本领域内普通技术人员所知的任一种这样的网络或网络拓扑结构。
如图1A所示,在网络104和104′之间示出也可以被称为接口单元200或网关200的设备200。在一些实施例中,设备200可以位于网络104上。例如,公司的分支机构可以在所述分支机构处部署设备200。在其它实施例中,设备200可以位于网络104′上。例如,设备200可以位于公司的数据中心。在又一个实施例中,多个设备200可以部署在网络104上。在一些实施例中,多个设备200可以部署在网络104′上。在一个实施例中,第一设备200与第二设备200′相通信。在其它的实施例中,设备200可以是在与客户机102相同或不同的网络104,104′上的任一客户机102或服务器106的一部分。一个或多个设备200可以位于在客户机102和服务器106之间的网络或网络通信路径中的任一点处。
在一些实施例中,设备200包括被称为Citrix NetScaler装置的由位于Ft.Lauderdale Florida的Citrix Systems公司制造的任一网络装置。在其它实施例中,设备200包括由位于Seattle,Washington的F5Networks公司制造的被称为WebAccelerator和BigIP的任意一个产品实施例。在另一个实施例中,设备205包括由位于Sunnyvale,California的Juniper Networks公司制造的DX加速装置平台和/或诸如SA700、SA2000、SA4000和SA6000装置的SSL VPN系列装置中的任意一个。在又一个实施例中,设备200包括由位于San Jose,California的CiscoSystems公司制造的任一应用加速和/或安全相关的设备和/或软件,例如Cisco ACE应用控制引擎模块业务(Application Control Engine Moduleservice)软件和网络模块以及Cisco AVS系列应用速度系统(Application Velocity System)。
在一个实施例中,该系统可以包括多个、逻辑分组的服务器106。在这些实施例中,服务器的逻辑分组可以被称为服务器群组38。在这些实施例中的一些实施例中,服务器106可以是在地理上分散的。有时候,群组38可以被管理为单一的实体。在其它实施例中,服务器群组38包括多个服务器群组38。在一个实施例中,服务器群组代表一个或多个客户机102来执行一个或多个应用。
在每个群组38中的服务器106可以是不同种类的。一个或多个服务器106可以根据一种类型的操作系统平台(例如,由位于Redmond,Washington的微软公司出品的WINDOWS NT)来进行操作,而一个或多个其它的服务器106可以根据另一种类型的操作系统平台(例如,Unix或Linux)来进行操作。每个群组38中的服务器106不需要与同一群组38中的另一个服务器106物理上接近。因此,逻辑上被分组为群组38的服务器106的分组可以使用广域网(WAN)连接或中域网(medium-areanetwork,MAN)连接来互连。例如,群组38可以包括在物理上位于不同的洲或位于一个洲、国家、州、城市、校园或房间的不同区域的服务器106。如果使用局域网(LAN)连接或一些形式的直接连接来连接服务器106,则可以增加在群组38中的服务器106之间的数据传输速度。
服务器106可以被称为文件服务器、应用服务器、web服务器、代理服务器或网关服务器。在一些实施例中,服务器106可以有能力起到应用服务器或主应用服务器的作用。在一个实施例中,服务器106可以包括活动目录(Active Directory)。客户机102也可以被称为客户机节点或端点。在一些实施例中,客户机102有能力起到寻求访问服务器上的应用的客户机节点以及作为对于其它的客户机102a-102n提供对寄载的应用的访问的应用服务器的作用。
在一些实施例中,客户机102与服务器106进行通信。在一个实施例,客户机102直接与群组38中的服务器106的其中一个进行通信。在另一个实施例中,客户机102执行程序邻近应用以与群组38中的服务器106进行通信。在又一个实施例中,服务器106提供主节点的功能。在一些实施例中,客户机102通过网络104与群组38中的服务器106进行通信。例如,通过网络104,客户机102可以请求执行由群组38中的服务器106a-106n寄载的多个应用,并接收应用执行的输出结果用于显示。在一些实施例中,只有主节点提供所要求的识别并提供与寄载被请求的应用的服务器106′相关的地址信息的功能。
在一个实施例中,服务器106提供web服务器的功能。在另一个实施例中,服务器106a从客户机102接收请求,将请求转发到第二服务器106b,并使用来自于服务器106b的对请求的响应来对客户机102的请求进行响应。在又一个实施例中,服务器106获得客户机102可用的应用的列举以及与寄载由所述应用的列举所标识的应用的服务器106相关的地址信息。在又一个实施例中,服务器106使用web接口将对请求的响应提供给客户机102。在一个实施例中,客户机102直接与服务器106进行通信以访问所标识的应用。在另一个实施例中,客户机102接收由执行服务器106上的标识的应用所生成的诸如显示数据的应用输出数据。
现在参考图1B,描述了部署多个设备200的网络环境的实施例。第一设备200可以部署在第一网络104上,而第二设备200′部署在第二网络104′上。例如,公司可以在分支机构部署第一设备200,而在数据中心部署第二设备200′。在另一个实施例中,第一设备200和第二设备200′被部署在同一个网络104或网络104′上。例如,第一设备200可以部署用于第一服务器群组38,而第二设备200′可以部署用于第二服务器群组38′。在另一个实例中,第一设备200可以部署在第一分支机构,而第二设备200′被部署在第二分支机构′。在一些实施例中,第一设备200和第二设备200′彼此协同或联合工作,以加速客户机和服务器之间的网络业务量或应用和数据的递送。
现在参考图1C,描述了使用一个或多个其它类型的设备(例如在一个或多个WAN优化设备205,205′之间的设备),来部署设备200的网络环境的另一个实施例。例如,第一WAN优化设备205显示在网络104和104′之间,而第二WAN优化设备205′可以部署在设备200和一个或多个服务器106之间。通过示例,公司可以在分支机构部署第一WAN优化设备205,而在数据中心部署第二WAN优化设备205′。在一些实施例中,设备205可以位于网络104′上。在其它实施例中,设备205′可以位于网络104上。在一些实施例中,设备205′可以位于网络104′或网络104″上。在一个实施例中,设备205和205′在同一个网络上。在另一个实施例中,设备205和205′在不同的网络上。在另一个实例中,第一WAN优化设备205可以部署用于第一服务器群组38,而第二WAN优化设备205′可以部署用于第二服务器群组38′。
在一个实施例中,设备205是用于加速、优化或者以其他方式改善诸如往和/或返于WAN连接的业务量的任一类型和形式的网络业务量的性能、操作或服务质量的装置。在一些实施例中,设备205是一个性能提高的代理。在其它实施例中,设备205是任一类型和形式的WAN优化或加速装置,有时也被称为WAN优化控制器。在一个实施例中,设备205是由位于Ft.Lauderdale Florida的Citrix Systems公司出品的被称为WANScaler的产品实施例中的任意一种。在其它实施例中,设备205包括由位于Seattle,Washington的F5 Networks公司出品的被称为BIG-IP链路控制器和WANjet的产品实施例中的任意一种。在另一个实施例中,设备205包括由位于Sunnyvale,California的Juniper NetWorks公司出品的WX和WXC WAN加速装置平台中的任意一种。在一些实施例中,设备205包括由San Francisco,California的Riverbed Technology公司出品的虹鳟(steelhead)系列WAN优化设备中的任意一种。在其它实施例中,设备205包括由位于Roseland,NewJersey的Expand Networks公司出品的WAN相关装置中的任意一种。在一个实施例中,设备205包括由位于Cupertino,California的Packeteer公司出品的任意一种WAN相关设备,例如由Packeteer提供的PacketShaper、iShared和SkyX产品实施例。在又一个实施例中,设备205包括由位于San Jose,California的Cisco Systems公司出品的任一WAN相关设备和/或软件,例如Cisco广域网应用服务软件和网络模块以及广域网引擎设备。
在一个实施例中,设备205提供用于分支机构或远程办公室的应用和数据加速业务。在一个实施例中,设备205包括广域文件服务(WAFS)的优化。在另一个实施例中,设备205加速文件的递送,例如经由通用Internet文件系统(CIFS)协议。在其它实施例中,设备205在存储器和/或存储设备中提供高速缓存来加速应用和数据的递送。在一个实施例中,设备205提供在任一级别的网络堆栈或在任一的协议或网络层的网络业务量的压缩。在另一个实施例中,设备205提供传输层协议优化、流量控制、性能增强或修改和/或管理,以加速WAN连接上的应用和数据的递送。例如,在一个实施例中,设备205提供传输控制协议(TCP)优化。在其它实施例中,设备205提供对于任一会话或应用层协议的优化、流量控制、性能增强或修改和/或管理。
在另一个实施例中,设备205将任一类型和形式的数据或信息编码成网络分组的定制或标准的TCP和/或IP报头字段或可选字段,以将存在、功能或能力通告给另一个设备205′。在另一个实施例中,设备205′可以使用在TCP和/或IP报头字段或选项中编码的数据来与另一个设备205′进行通信。例如,设备可以使用TCP选项或IP报头字段或选项来传达在执行诸如WAN加速的功能时或者为了彼此联合工作而由设备205,205′所使用的一个或多个参数。
在一些实施例中,设备200保存在设备205和205′之间传达的TCP和/或IP报头和/或可选字段中编码的任一信息。例如,设备200可以终止经过设备200的传输层连接,例如经过设备205和205′的在客户机和服务器之间的一个传输层连接。在一个实施例中,设备200识别并保存在由第一设备205通过第一传输层连接发送的传输层分组中的任一编码信息,并经由第二传输层连接来将具有编码信息的传输层分组传达到第二设备205′。
现在参考图1D,描述了用于递送和/或操作客户机102上的计算环境的网络环境。在一些实施例中,服务器106包括用于将计算环境或应用和/或数据文件递送给一个或多个客户机102的应用递送系统190。简单概述,客户机10经由网络104、104′和设备200与服务器106通信。例如,客户机102可以驻留在例如分支机构的公司的远程办公室,而服务器106可以驻留在公司的数据中心。客户机102包括客户机代理120和计算环境15。计算环境15可以执行或操作访问、处理或使用数据文件的应用。可以经由设备200和/或服务器106来递送计算环境15、应用和/或数据文件。
在一些实施例中,设备200加速将计算环境15或其任一部分递送给客户机102。在一个实施例中,设备200通过应用递送系统190来加速计算环境15的递送。例如,此处描述的实施例可以用来将可由应用处理的流应用和数据文件加速从中央的公司数据中心递送到远程用户的位置,例如公司的分支机构。在另一个实施例中,设备200加速在客户机102和服务器106之间的传输层业务量。设备200可以提供用于加速从服务器106到客户机102的任一传输层有效载荷的加速技术,例如:1)传输层连接池,2)传输层连接多路复用,3)传输控制协议缓冲,4)压缩和5)高速缓存。在一些实施例中,设备200提供响应于客户机102的请求的服务器106的负载平衡。在其它实施例中,设备200充当代理或访问服务器以提供对一个或多个服务器106的访问。在另一个实施例中,设备200提供从客户机102的第一网络104到服务器106的第二网络104′的安全虚拟专用网连接,例如SSL VPN连接。在又一些实施例中,设备200提供在客户机102和服务器106之间的连接和通信的应用防火墙安全、控制和管理。
在一些实施例中,应用递送管理系统190根据多个执行方法以及根据经由策略引擎195应用的任一验证和授权策略来提供将计算环境递送到远端或另外的用户的桌面的应用递送技术。使用这些技术,远程用户可以从任一网络连接装置100获取计算环境以及访问服务器存储的应用和数据文件。在一个实施例中,应用递送系统190可以驻留于服务器106或在服务器106上执行。在另一个实施例中,应用递送系统190可以驻留于多个服务器106a-106n上或在多个服务器106a-106n上执行。在一些实施例中,应用递送系统190可以在服务器群组38中执行。在一个实施例中,执行应用递送系统190的服务器106还可以存储或提供应用和数据文件。在另一个实施例中,第一组的一个或多个服务器106可以执行应用递送系统190,而不同的服务器106n可以存储或提供应用和数据文件。在一些实施例中,应用递送系统190、应用和数据文件中的每一个可以驻留或位于不同的服务器上。在又一个实施例中,应用递送系统190的任一部分可以驻留、执行或保存或被分配于设备200或多个设备。
客户机102可以包括用于执行使用或处理数据文件的应用的计算环境15。客户机102可以经由网络104、104′和设备200来从服务器106请求应用和数据文件。在一个实施例中,设备200可以将来自于客户机102的请求转发到服务器106。例如,客户机102可以不具有本地存储或可存取的应用和数据文件。响应于请求,应用递送系统190和/或服务器106可以递送应用和数据文件到客户机102。例如,在一个实施例中,服务器106可以以应用流的形式发送应用,以在客户机102上的计算环境15中进行操作。
在一些实施例中,应用递送系统190包括Citrix Systems公司的例如MetaFrame或Citrix表示(Presentation)服务器TM的Citrix访问套件TM的任一部分和/或由微软公司出品的任意一种微软Windows终端服务。在一个实施例中,应用递送系统190可以通过远程显示协议或以其它方式通过基于远程或基于服务器的计算来递送一个或多个应用到客户机102或用户。在另一个实施例中,应用递送系统190可以通过应用的流式传输来递送一个或多个应用到客户机或用户。
在一个实施例中,应用递送系统190包括用于控制和管理应用执行方法的访问、选择以及应用的递送的策略引擎195。在一些实施例中,策略引擎195确定用户或客户机102可以访问的一个或多个应用。在另一个实施例中,策略引擎195确定应用应该如何被递送给用户或客户机102,例如执行方法。在一些实施例中,应用递送系统190提供从中选择应用执行方法的多个递送技术,例如基于服务器的计算、本地流式传输或递送应用给客户机120以用于本地执行。
在一个实施例中,客户机102请求执行应用而包括服务器106的应用递送系统190选择执行应用的方法。在一些实施例中,服务器106从客户机102接收证书。在另一个实施例中,服务器106从客户机102接收列举可用的应用的请求。在一个实施例中,响应于所述请求或收到的证书,应用递送系统190列举客户机102可用的多个应用。应用递送系统190接收请求以执行所列举的应用。应用递送系统190选择预定数目的方法中的一个来执行列举的应用,例如响应于策略引擎的策略。应用递送系统190可以选择一个执行应用的方法,使得客户机102可以接收通过在服务器106上执行应用而生成的应用输出数据。应用递送系统190可以选择执行应用的方法,使得本地机器10可以在检索包括应用的多个应用文件之后本地执行所述应用。在又一个实施例中,应用递送系统190可以选择执行应用的方法以经由网络104将应用流式传输到客户机102。
客户机102可以执行、操作或以其他方式提供应用,所述应用可以是任一类型和/或形式的软件、程序或可执行指令,例如任一类型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用、瘦-客户机的计算客户机、ActiveX控件、或Java小程序、或可以在客户机102上执行的任一其它类型和/或形式的可执行指令。在一些实施例中,应用可以是代表客户机102在服务器106上执行的基于服务器或基于远程的应用。在一个实施例中,服务器106可以使用任一瘦-客户机或远程显示协议来显示输出到客户机102,所述远程显示协议例如由位于Ft.Lauderdale,Florida的Citrix Systems公司出品的独立计算架构(ICA)协议或由位于Redmond,Washington的微软公司出品的远程桌面协议(RDP)。应用可以使用任一类型的协议,并且它可以是例如HTTP客户机、FTP客户机、Oscar客户机或Telnet客户机。在其它实施例中,应用包括与VoIP通信相关的任一类型的软件,例如软IP电话。在进一步的实施例中,应用包括与实时数据通信相关的任一应用,例如用于流式传输视频和/或音频的应用。
在一些实施例中,服务器106或服务器群组38可以运行一个或多个应用,例如提供瘦-客户机计算的应用或远程显示表示应用的应用。在一个实施例中,服务器106或服务器群组38作为应用而执行Citrix Systems公司的例如MetaFrame或Citrix表示服务器TM的Citrix访问套件TM的任一部分和/或由微软公司出品的任意一种微软Windows终端服务。在一个实施例中,应用是由位于Fort Lauderdale,Florida的Citrix Systems公司开发的ICA客户机。在其它实施例中,应用包括由位于Redmond,Washington的微软公司开发的远程桌面(RDP)客户机。此外,服务器106可以运行应用,例如,所述服务器106可以是提供例如由位于Redmond,Washington的微软公司出品的微软Exchange的电子邮件服务的应用服务器、web或Internet服务器、或桌面共享服务器、或协作服务器。在一些实施例中,任意一种应用可以包括任一类型的寄载服务或产品,例如由Santa Barbara,California的Citrix Online部门提供的GoToMeetingTM、由位于Santa Clara,California的WebEx公司提供的WebExTM、或由位于Redmond,Washington的微软公司提供的微软OfficeLive Meeting。
仍然参考图1D,网络环境的一个实施例可以包括监控服务器106A。监控服务器106A可以包括任一类型和形式的性能监控业务198。性能监控业务198可以包括监控、测量和/或管理软件和/或硬件,包括数据收集、集合、分析、管理和报告。在一个实施例中,性能监控业务198包括一个或多个监控代理197。监控代理197包括用于在诸如客户机102、服务器106或设备200和205的装置上执行监控、测量和数据收集活动的任一软件、硬件或其组合。在一些实施例中,监控代理197包括诸如Visual Basic脚本或Java描述语言的任一类型和形式的脚本。在一个实施例中,监控代理197相对于装置的任一应用和/或用户透明地执行。在一些实施例中,监控代理197相对于应用或客户机不引人注目地被安装和操作。在又一个实施例中,监控代理197被安装和操作而不需要用于该应用或装置的任何设备(instrumentation)。
在一些实施例中,监控代理197以预定频率监控、测量和收集数据。在其它实施例中,监控代理197基于任一类型和形式的事件的检测来监控、测量和收集数据。例如,监控代理197可以在检测到对web页面的请求或收到HTTP响应时收集数据。在另一个实例中,监控代理197可以在检测到诸如鼠标点击的任一用户输入事件时收集数据。监控代理197可以报告或提供任一所监控、测量或收集的数据给监控业务198。在一个实施例中,监控代理197根据调度或预定频率来发送信息给监控业务198。在另一个实施例中,监控代理197在检测到事件时发送信息给监控业务198。
在一些实施例中,监控业务198和/或监控代理197执行诸如客户机、服务器、服务器群组、设备200、设备205或网络连接的任一网络资源或网络基础结构元件的监控和性能测量。在一个实施例中,监控业务198和/或监控代理197执行诸如TCP或UDP连接的任一传输层连接的监控和性能测量。在另一个实施例中,监控业务198和/或监控代理197监控和测量网络等待时间。在又一个实施例中,监控业务198和/或监控代理197监控和测量带宽利用。
在其它实施例中,监控业务198和/或监控代理197监控和测量终端用户响应时间。在一些实施例中,监控业务198执行应用的监控和性能测量。在另一个实施例中,监控业务198和/或监控代理197执行到应用的任一会话或连接的监控和性能测量。在一个实施例中,监控业务198和/或监控代理197监控和测量浏览器的性能。在另一个实施例中,监控业务198和/或监控代理197监控和测量基于HTTP的事务的性能。在一些实施例中,监控业务198和/或监控代理197监控和测量IP上语音(VoIP)应用或会话的性能。在其它实施例中,监控业务198和/或监控代理197监控和测量诸如ICA客户机或RDP客户机的远程显示协议应用的性能。在又一个实施例中,监控业务198和/或监控代理197监控和测量任一类型和形式的流媒体的性能。在进一步的实施例中,监控业务198和/或监控代理197监控和测量寄载应用或软件即服务(Software-As-A-Service,SaaS)递送模型的性能。
在一些实施例中,监控业务198和/或监控代理197执行与应用相关的一个或多个事务、请求或响应的监控和性能测量。在其它实施例中,监控业务198和/或监控代理197监控和测量应用层堆栈的任一部分,例如任一.NET或J2EE调用。在一个实施例中,监控业务198和/或监控代理197监控和测量数据库或SQL事务。在又一个实施例中,监控业务198和/或监控代理197监控和测量任一方法、函数或应用编程接口(API)调用。
在一个实施例中,监控业务198和/或监控代理197执行经由诸如设备200和/或设备205的一个或多个设备从服务器到客户机的应用和/或数据的递送的监控和性能测量。在一些实施例中,监控业务198和/或监控代理197监控和测量虚拟化应用的递送的性能。在其它实施例中,监控业务198和/或监控代理197监控和测量流式应用的递送的性能。在另一个实施例中,监控业务198和/或监控代理197监控和测量递送桌面应用到客户机和/或在客户机上执行桌面应用的性能。在另一个实施例中,监控业务198和/或监控代理197监控和测量客户机/服务器应用的性能。
在一个实施例中,监控业务198和/或监控代理197被设计和构建为应用递送系统190提供应用性能管理。例如,监控业务198和/或监控代理197可以监控、测量和管理经由Citrix表示服务器递送应用的性能。在该实例中,监控业务198和/或监控代理197监控单独的ICA会话。监控业务198和/或监控代理197可以测量总的以及每次的会话系统资源使用,以及应用和连网性能。监控业务198和/或监控代理197可以对于给定用户和/或用户会话来标识有效服务器。在一些实施例中,监控业务198和/或监控代理197监控在应用递送系统190和应用和/或数据库服务器之间的后端连接。监控业务198和/或监控代理197可以测量每个用户会话或ICA会话的网络等待时间、延迟和容量。
在一些实施例中,监控业务198和/或监控代理197测量和监控对于应用递送系统190的诸如总的存储器使用、每个用户会话和/或每个进程的存储器使用。在其它实施例中,监控业务198和/或监控代理197测量和监控诸如总的CPU使用、每个用户会话和/或每个进程的应用递送系统190的CPU使用。在另一个实施例中,监控业务198和/或监控代理197测量和监控登录到诸如Citrix表示服务器的应用、服务器或应用递送系统所需的时间。在一个实施例中,监控业务198和/或监控代理197测量和监控用户登录应用、服务器或应用递送系统190的持续时间。在一些实施例中,监控业务198和/或监控代理197测量和监控应用、服务器或应用递送系统会话的有效和无效的会话计数。在又一个实施例中,监控业务198和/或监控代理197测量和监控用户会话等待时间。
在又一个进一步的实施例中,监控业务198和/或监控代理197测量和监控任一类型和形式的服务器规格(metrics)。在一个实施例中,监控业务198和/或监控代理197测量和监控与系统存储器、CPU使用和磁盘存储器有关的规格。在另一个实施例中,监控业务198和/或监控代理197测量和监控和页错误有关的规格,诸如每秒页错误。在其它实施例中,监控业务198和/或监控代理197测量和监控往返时间的规格。在又一个实施例中,监控业务198和/或监控代理197测量和监控与应用崩溃、错误和/或中止相关的规格。
在一些实施例中,监控业务198和监控代理198包括由位于Ft.Lauderdale,Florida的Citrix Systems公司出品的被称为EdgeSight的任意一种产品实施例。在另一个实施例中,性能监控业务198和/或监控代理198包括由位于Palo Alto,California的Symphoniq公司出品的被称为TrueView产品套件的产品实施例的任一部分。在一个实施例中,性能监控业务198和/或监控代理198包括由位于SanFrancisco,California的TeaLeaf技术公司出品的被称为TeaLeafCX产品套件的产品实施例的任一部分。在其它实施例中,性能监控业务198和/或监控代理198包括由位于Houston,Texas的BMC软件公司出品的诸如BMC性能管理器和巡逻产品(BMC Performance Manager and Patrolproducts)的商业业务管理产品的任一部分。
客户机102、服务器106和设备200可以被部署和/或执行在任一类型和形式的计算装置上,例如可以在任一类型和形式的网络上通信并执行此处描述的操作的计算机、网络装置或设备。图1E和1F描述了可用于实施客户机102、服务器106或设备200的实施例的计算装置100的框图。如图1E和1F所示,每个计算装置100包括中央处理单元101和主存储器单元122。如图1E所示,计算装置100可以包括可视显示装置124、键盘126和/或诸如鼠标的点击装置127。每个计算装置100也可以包括另外的可选元件,例如一个或多个输入/输出装置130a-130b(通常使用附图标记130来指示)以及与中央处理单元101通信的高速缓存140。
中央处理单元101是响应并处理取自主存储器单元122的指令的任一逻辑电路。在许多实施例中,中央处理单元由微处理器单元提供,例如:由位于Mountain View,California的Intel公司出品的产品;由位于Schaumburg,Illinois的Motorola公司出品的产品;由位于SantaClara,California的Transmeta公司出品的产品;由位于WhitePlains,New York的国际商业机器公司出品的RS/6000处理器;或者由位于Sunnyvale,California的Advanced Micro Devices公司出品的产品。计算装置100可以基于任一的这些处理器、或者可以如此处所描述地操作的任一其它处理器。
主存储器单元122可以是可以保存数据并允许由微处理器101直接访问的任一存储位置的一个或多个存储芯片,例如静态随机存取存储器(SRAM)、突发式SRAM或同步突发式SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页面模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、突发式扩展数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100SDRAM、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、直接Rambus DRAM(DRDRAM)、或铁电RAM(FRAM)。主存储器122可以基于任意一种上面描述的存储芯片、或者可以如此处所描述地操作的任一其它可用的存储芯片。在图1E中所示的实施例中,处理器101通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图1E描述了在其中处理器通过存储器端口103直接与主存储器122通信的计算装置100的实施例。例如,在图1F中,主存储器122可以是DRDRAM。
图1F描述了在其中主处理器101通过有时被称为背端总线的次级总线来直接与高速缓存140通信的实施例。在其它实施例中,主处理器101使用系统总线150与高速缓存140进行通信。高速缓存140典型地具有比主存储器122更快的响应时间,并且典型地通过SRAM、BSRAM或EDRAM来提供。在图1E中所示的实施例中,处理器101通过本地系统总线150与多个I/O装置130进行通信。多种总线可以用来将中央处理单元101连接到任意一种I/O装置130,所述总线包括VESA VL总线、ISA总线、EISA总线、微通道架构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O装置是视频显示器124的实施例,处理器101可以使用高级图形端口(AGP)来与显示器124进行通信。图1F描述了在其中主处理器101通过HyperTransport、快速I/O或InfiniBand来直接与I/O装置130通信的计算机100的一个实施例。图1F还描述了混合本地总线和直接通信的一个实施例:处理器101使用本地互连总线与I/O装置130进行通信,同时直接与I/O装置130进行通信。
计算装置100可以支持任一适当的安装装置116,例如用于接收像3.5英寸、5.25英寸磁盘或ZIP磁盘这样的软盘的软盘驱动器、CD-ROM驱动器、CD-R/Rw驱动器、DVD-ROM驱动器、多种格式的磁带驱动器、USB装置、硬盘驱动器或适于安装像任一客户机代理120或其部分的软件和程序的任一其它装置。计算装置100还可以包括存储装置128,例如一个或多个硬盘驱动器或独立磁盘的冗余阵列,用于保存操作系统及其它相关软件,以及用于保存诸如与客户机代理120相关的任一程序的应用软件程序。可选地,任意一种安装装置116还可以被用作存储装置128。另外,操作系统和软件可以从可引导介质中运行,所述可引导介质例如像KNOPPIX的可引导CD,作为来自于knoppix.net可用作GNU/Linux分发的GNU/Linux的可引导CD。
进一步地,计算装置100可以包括通过多种连接联接到局域网(LAN)、广域网(WAN)或因特网的网络接口118,所述多种连接包括但不限于标准电话线、LAN或WAN链路(例如,802.11、T1、T3、56kb、X.25)、宽带连接(例如,ISDN、帧中继、ATM)、无线连接或上述任一或所有连接的一些组合。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网卡、插件总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适于将计算装置100连接到可以传达并执行此处所描述的操作的任一类型的网络的任一其它装置。各式各样的I/O装置130a-130n可以存在于计算装置100中。输入装置包括键盘、鼠标、轨道垫、轨道球、麦克风以及绘画板。输出装置包括视频显示器、扬声器、喷墨打印机、激光打印机和染料升华打印机。I/O装置130可以由如图1E所示的I/O控制器123控制。I/O控制器可以控制诸如键盘126和例如鼠标或光笔的点击装置127的一个或多个I/O装置。进一步地,I/O装置还可以为计算装置100提供存储装置128和/或安装介质116。还是在其它实施例中,计算装置100可以提供USB连接以接收诸如由位于LosAlamitos,California的Twintech Industry公司出品的USB闪存驱动器系列装置这样的便携USB存储装置。
在一些实施例中,计算装置100可以包括或连接到多个显示装置124a-124n,每个显示装置可以是相同或不同的类型和/或形式。因而,任意一种I/O装置130a-130n和/或I/O控制器123可以包括任一类型和/或形式的适当的硬件、软件或硬件和软件的组合,以支持、允许或提供通过计算装置100连接和使用多个显示装置124a-124h。例如,计算装置100可以包括任一类型和/或形式的视频适配器、视频卡、驱动程序和/或库,以联系、通信、连接或以其他方式使用显示装置124a-124n。在一个实施例中,视频适配器可以包括多个连接器以联接多个显示装置124a-124n。在其它实施例中,计算装置100可以包括多个视频适配器,每个视频适配器连接到一个或多个显示装置124a-124n。在一些实施例中,计算装置100的操作系统的任一部分可以被配置用于使用多个显示器124a-124n。在其它实施例中,一个或多个显示装置124a-124n可以由一个或多个诸如例如通过网络连接到计算装置100的计算装置100a和100b的其它的计算装置来提供。这些实施例可以包括被设计和构建为将另一个计算机的显示装置用作计算装置100的第二显示装置124a的任一类型的软件。本领域普通技术人员将认识和理解计算装置100可以被配置为具有多个显示装置124a-124n的多个方法和实施例。
在进一步的实施例中,I/O装置130可以是在系统总线150和外部通信总线之间的网桥170,所述外部通信总线例如USB总线、Apple Desktop总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire 800总线、以太网总线、AppleTalk总线、吉比特以太网总线、异步传送模式总线、HIPPI总线、超HIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreChannel总线或串行附加小型计算机系统接口总线。
图1E和1F中描述类型的计算装置100典型地在控制任务的调度和对系统资源的访问的操作系统的控制下操作。计算装置100可以运行任一操作系统,例如任意一种版本的微软Windows操作系统、不同版本的Unix和Linux操作系统、用于Macintosh计算机的任一版本的Mac OS任一的嵌入式操作系统、任一的实时操作系统、任一的开放源操作系统、任一的专用操作系统、用于移动计算装置的任一操作系统、或者可以运行在计算装置上并执行此处所描述的操作的任一其它操作系统。典型的操作系统其中包括:WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT 4.0、WINDOWS CE和WINDOWS XP,所有这些均由位于Redmond,Washington的微软公司出品;由位于Cupertino,California的苹果计算机出品的MacOS;由位于Armonk,NewYork的国际商业机器公司出品的OS/2;以及由位于Salt Lake City,Utah的Caldera公司发布的可免费使用的Linux操作系统或者任一类型和/或形式的Unix操作系统,以及其它。
在其它实施例中,计算装置100可以具有和所述装置一致的不同的处理器、操作系统和输入装置。例如,在一个实施例中,计算机100是由Palm公司出品的Treo180、270、1060、600或650智能电话。在该实施例中,Treo智能电话在PalmOS操作系统的控制下操作,并包括指示笔输入装置以及五向导航装置。此外,计算装置100可以是任一工作站、台式计算机、膝上型或笔记本计算机、服务器、便携计算机、移动电话、任一其它计算机、或者可以通信并具有执行此处所描述的操作的足够的处理器能力和存储容量的其它形式的计算或电信装置。
B.设备架构
图2A举例说明了设备200的一个示例实施例,其还可以称为中间设备200、代理或者网络浏览器(Netscaler)。提供图2A中的设备200的架构仅仅是为了说明,并不是意于进行限制。如图2所示,设备200包括硬件层206和被分为用户空间202和内核空间204的软件层。
硬件层206提供在其上执行内核空间204和用户空间202中的程序和服务的硬件元件。硬件层206还提供允许内核空间204和用户空间202中的程序和服务关于设备200的向内和向外传递数据的结构和元件。如图2所示,硬件层206包括用于执行软件程序和服务的处理单元262、用于保存软件和数据的存储器264、用于在网络上发送和接收数据的网络端口266以及用于执行与在网络上发送和接收的数据的安全套接字层处理相关的功能的加密处理器260。在一些实施例中,中央处理单元262可以在单个的处理器中执行加密处理器260的功能。另外,硬件层206可以包括用于每个处理单元262和加密处理器260的多个处理器。处理器262可以包括如上所述的与图1E和1F有关的任一处理器101。在一些实施例中,中央处理单元262可以在单个的处理器中执行加密处理器260的功能。另外,硬件层206可以包括用于每个处理单元262和加密处理器260的多个处理器。例如,在一个实施例中,设备200包括第一处理器262和第二处理器262′。在其它实施例中,处理器262或262′包括多核处理器。
虽然通常所示设备200的硬件层206具有加密处理器260,但处理器260可以是用于执行与诸如安全套接字层(SSL)或传输层安全(TLS)协议的任一加密协议相关的功能的处理器。在一些实施例中,处理器260可以是通用处理器(GPP),并且在进一步的实施例中,可以具有用于执行任一安全相关协议的处理的可执行指令。
虽然在图2中用某些元件来说明设备200的硬件层206,但设备200的硬件部分或部件可以包括计算装置的任一类型和形式的元件、硬件或软件,诸如此处结合图1E和1F来举例说明和讨论的计算装置100。在一些实施例中,设备200可以包括服务器、网关、路由器、交换机、网桥或其它类型的计算或网络装置,并具有与此相关的任一硬件和/或软件元件。
设备200的操作系统将可用的系统存储器分配、管理或者以其他方式分离成内核空间204和用户空间204。在示例的软件架构200中,操作系统可以是任一类型和/或形式的Unix操作系统,尽管本发明并未这样限制。因而,设备200可以运行任一操作系统,例如任意一种版本的微软Windows操作系统、不同版本的Unix和Linux操作系统、用于Macintosh计算机的任一版本的Mac OS任一的嵌入式操作系统、任一的网络操作系统、任一的实时操作系统、任一的开放源操作系统、任一的专用操作系统、用于移动计算装置或网络装置的任一操作系统、或者可以运行在设备200上并执行此处所描述的操作的任一其它操作系统。
内核空间204被保留用于运行内核230,所述内核230包括任一设备驱动程序、内核扩展或其它内核相关软件。如本领域技术人员所知,内核230是操作系统的核心,并提供对应用104的资源和硬件相关的元件的访问、控制和管理。根据设备200的实施例,内核空间204还包括和有时还被称为集成高速缓存的高速缓存管理器232一起工作的多个网络服务或进程,此处进一步详细描述其有益之处。另外,内核230的实施例将依赖于由装置200所安装、配置或者以其他方式使用的操作系统的实施例。
在一个实施例中,装置200包括诸如基于TCP/IP的堆栈的一个网络堆栈267,用于与客户机102和/或服务器106进行通信。在一个实施例中,网络堆栈267用于与诸如网络108的第一网络以及第二网络110进行通信。在一些实施例中,装置200终止诸如客户机102的TCP连接的第一传输层连接,并建立由客户机102使用的到服务器106的第二传输层连接,例如,第二传输层连接在设备200和服务器106处终止。第一和第二传输层连接可以经由单个的网络堆栈267建立。在其它实施例中,装置200可以包括例如267和267′的多个网络堆栈,并且第一传输层连接可以在一个网络堆栈267处建立或终止,而第二传输层连接在第二网络堆栈267′上建立或终止。例如,一个网络堆栈可以用于在第一网络上接收和发送网络分组,而另一个网络堆栈用于在第二网络上接收和发送网络分组。在一个实施例中,网络堆栈267包括用于由设备200发送的一个或多个网络分组排队的缓冲器243。
如图2所示,内核空间204包括高速缓存管理器232、高速层2-7集成分组引擎240、加密引擎234、策略引擎236和多协议压缩逻辑238。在内核空间204或内核模式而不是用户空间202中单独以及组合地运行这些部件或进程232、240、234、236和238改进每一个这些部件的性能。内核操作意味着这些部件或进程232、240、234、236和238运行在装置200的操作系统的核心地址空间中。例如,在内核模式中运行加密引擎234通过将加密与解密操作移到内核来改善加密性能,从而减少在内核模式中的存储空间或内核线程与用户模式中的存储空间或线程之间的转换的次数。例如,可以不需要将内核模式中获得的数据传递或复制到运行在用户模式中的进程或线程,例如从内核级的数据结构到用户级的数据结构。在另一个方面,还减少了在内核模式与用户模式之间的上下文转换的次数。另外,在内核空间204中可以更有效地执行在任意一个部件或进程232、240、235、236和238之间通信和通信的同步。
在一些实施例中,部件232、240、234、236和238的任一部分可以运行或操作在内核空间204中,而这些部件232、240、234、236和238的其它部分可以运行或操作在用户空间202中。在一个实施例中,设备200使用提供对一个或多个网络分组的任一部分的访问的内核级数据结构,例如,网络分组包括来自于客户机102的请求或来自于服务器106的响应。在一些实施例中,可以由分组引擎240经由到网络堆栈267的传输层驱动程序接口或过滤器来获得内核级数据结构。内核级数据结构可以包括可经由与网络堆栈267相关的内核空间204存取的任一接口和/或数据、由网络堆栈267接收或传送的网络业务量或分组。在其它实施例中,可以由部件或进程232、240、234、236和238中的任意一个来使用内核级数据结构,以执行部件或进程的期望的操作。在一个实施例中,部件232、240、234、236和238在使用内核级数据结构时运行于内核模式204中,而在另一个实施例中,部件232、240、234、236和238在使用内核级数据结构时运行于用户模式中。在一些实施例中,可以将内核级数据结构复制或传递到第二内核级数据结构或任一期望的用户级数据结构。
高速缓存管理器232可以包括软件、硬件或软件和硬件的任一组合,以提供对诸如由发信服务器106提供的对象或动态生成的对象的任一类型和形式的内容的高速缓存访问、控制和管理。由高速缓存管理器232处理和保存的数据、对象或内容可以包括诸如标记语言的或者通过任一协议传达的任一格式的数据。在一些实施例中,高速缓存管理器232复制存储在别处的原始数据或者以前计算、生成或发送的数据,其中原始数据也许需要相对于读取高速缓存元件来说更长的访问时间以取出、计算或者以其他方式获取。一旦数据被保存在高速缓存元件中,未来的使用可以通过访问高速缓存的拷贝而不是重新取回或再计算原始数据来进行,从而减少访问时间。在一些实施例中,高速缓存元件可以包括装置200的存储器264中的数据对象。在其它实施例中,高速缓存元件可以包括具有比存储器264更快的访问时间的存储器。在另一个实施例中,高速缓存元件可以包括诸如硬盘的一部分的装置200的任一类型和形式的存储元件。在一些实施例中,处理单元262可以提供由高速缓存管理器232使用的高速缓存。然而在进一步的实施例中,高速缓存管理器232可以使用存储器、存储装置或处理单元的任一部分和组合,以用于高速缓存数据、对象及其它内容。
进一步地,高速缓存管理器232包括任一逻辑、功能、规则或操作,以执行此处所描述的设备200的技术的任一实施例。例如,高速缓存管理器232包括根据失效时间周期的期满或一旦从客户机102或服务器106接收到失效命令来使对象无效的逻辑或功能。在一些实施例中,高速缓存管理器232可以作为在内核空间204中执行的程序、服务、进程或任务来操作,而在其它实施例中是在用户空间202中操作。在一个实施例中,高速缓存管理器232的第一部分在用户空间202中执行,而第二部分在内核空间204中执行。在一些实施例中,高速缓存管理器232可以包括任一类型的通用处理器(GPP)或者诸如现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)或应用专用集成电路(ASIC)的任一其它类型的集成电路。
例如,策略引擎236可以包括智能统计引擎或者其它的可编程应用。在一个实施例中,策略引擎236提供配置机制以允许用户标识、指定、限定或配置高速缓存策略。在一些实施例中,策略引擎236还可以访问存储器以支持诸如查找表或哈希表的数据结构来启用用户选择的高速缓存策略决策。在其它实施例中,策略引擎236可以包括任一逻辑、规则、功能或操作,以便确定和提供除了由设备200执行的安全、网络业务量、网络访问、压缩或任一其它功能或操作的访问、控制和管理之外的由设备200高速缓存的对象、数据或内容的访问、控制和管理。此处进一步描述特定高速缓存策略的进一步的实例。
加密引擎234包括用于操控诸如SSL或TLS的任一安全相关协议的处理的任一逻辑、商业规则、功能或操作,或者另外的任一相关功能。例如,加密引擎234加密并解密经由设备200传递的网络分组或者其中的任一部分。加密引擎234还可以为客户机102a-102n、服务器106a-106n或设备200设置或建立SSL或TLS连接。因而,加密引擎234提供SSL处理的卸载和加速。在一个实施例中,加密引擎234使用隧道协议来在客户机102a-102n和服务器106a-106n之间提供虚拟专用网。在一些实施例中,加密引擎234与加密处理器260进行通信。在其它实施例中,加密引擎234包括运行在加密处理器260上的可执行指令。
多协议压缩引擎238包括用于压缩诸如由装置200的网络堆栈267使用的任意一种协议的一个或多个协议的网络分组的任一逻辑、商业规则、功能或操作。在一个实施例中,多协议压缩引擎238双向地在客户机102a-102n和服务器106a-106n之间压缩任一的基于TCP/IP的协议,包括消息应用编程接口(MAPI)(电子邮件)、文件传送协议(FTP)、超文本传送协议(HTTP)、通用Internet文件系统(CIFS)协议(文件传送)、独立计算架构(ICA)协议、远程桌面协议(RDP)、无线应用协议(WAP)、移动IP协议和IP上语音(VoIP)协议。在其它实施例中,多协议压缩引擎238提供基于超文本标记语言(HTML)的协议的压缩,并且在一些实施例中提供诸如可扩展标记语言(XML)的任一标记语言的压缩。在一个实施例中,多协议压缩引擎238提供诸如为设备200设计用于设备200通信的的任一协议的任一高性能协议的压缩。在另一个实施例中,多协议压缩引擎238使用修改的传输控制协议来压缩任一通信的任一有效载荷或任一通信,所述修改的传输控制协议诸如事务TCP(T/TCP)、具有选择确认的TCP(TCP-SACK)、具有大窗口的TCP(TCP-LW)、诸如TCP-Vegas协议的拥塞预测协议以及TCP欺骗协议。
因而,多协议压缩引擎238为经由桌面客户机以及甚至移动客户机访问应用的用户加速性能,所述桌面客户机例如微软Outlook以及诸如由诸如Oracle、SAP和Siebel的通用的企业应用所启动的任一客户机的非web瘦客户机,所述移动客户机例如掌上电脑。在一些实施例中,通过执行于内核模式204中以及与访问网络堆栈267的分组处理引擎240结合在一起,多协议压缩引擎238可以压缩诸如任一应用层协议的由TCP/IP协议所携带的任意一种协议。
通常也被称为分组处理引擎或分组引擎的高速层2-7集成分组引擎240负责管理由设备200经由网络端口266接收和发送的分组的内核级处理。高速层2-7集成分组引擎240可以包括用于在例如接收网络分组或发送网络分组的处理期间排队一个或多个网络分组的缓冲器。另外,高速层2-7集成分组引擎240与一个或多个网络堆栈267通信以经由网络端口266发送和接收网络分组。高速层2-7集成分组引擎240和加密引擎234、高速缓存管理器232、策略引擎236和多协议压缩逻辑238一起工作。更具体地,加密引擎234被配置为执行分组的SSL处理,策略引擎236被配置为执行诸如请求级内容交换和请求级高速缓存重定向的与业务量管理相关的功能,而多协议压缩逻辑238被配置为执行与数据的压缩和解压缩相关的功能。
高速层2-7集成分组引擎240包括分组处理定时器242。在一个实施例中,分组处理定时器242提供一个或多个时间间隔以触发输入(即,接收)或输出(即,发送)网络分组的处理。在一些实施例中,高速层2-7集成分组引擎240响应于定时器242来处理网络分组。分组处理定时器242提供任一类型和形式的信号给分组引擎240,以通知、触发或传达时间相关的事件、间隔或发生。在许多实施例中,分组处理定时器242以例如像100毫秒、50毫秒或25毫秒这样的毫秒级来进行操作。例如,在一些实施例中,分组处理定时器242提供时间间隔或者以其他方式使高速层2-7集成分组引擎240以10毫秒的时间间隔来处理网络分组,而在其它实施例中按5毫秒的时间间隔,以及甚至在更进一步的实施例中短到3、2或1毫秒的时间间隔。在操作期间,高速层2-7集成分组引擎240可以与加密引擎234、高速缓存管理器232、策略引擎236和多协议压缩引擎238交互、集成或通信。因而,可以响应于分组处理定时器242和/或分组引擎240来执行加密引擎234、高速缓存管理器232、策略引擎236和多协议压缩逻辑238的任一逻辑、功能或操作。因此,可以以例如小于或等于10毫秒的时间间隔的通过分组处理定时器242提供的时间间隔的粒度来执行加密引擎234、高速缓存管理器232、策略引擎236和多协议压缩逻辑238的任一逻辑、功能或操作。例如,在一个实施例中,高速缓存管理器232可以响应于高速层2-7集成分组引擎240和/或分组处理定时器242来执行任一高速缓存对象的失效。在另一个实施例中,可以将高速缓存对象的满期或失效时间设置为与分组处理定时器242的时间间隔相同的粒度级,例如每10毫秒。
与内核空间204不同,用户空间202是由用户模式应用或者以其他方式运行于用户模式的程序所使用的存储器区域或部分操作系统。用户模式应用可以不直接访问内核空间204而使用服务调用以访问内核服务。如图2所示,设备200的用户空间202包括图形用户界面(GUI)210、命令行接口(CLI)212、命令解释程序(shell)服务214、健康监测程序216和守护服务218。GUI 210和CLI 212提供一个装置,通过所述装置,系统管理员或其它用户可以与设备200的操作相互作用并控制设备200的操作,例如通过设备200的操作系统,并且两者之一是用户空间202或内核空间204。GUI 210可以是任一类型和形式的图形用户界面,并且可以通过文本、图形或者以其他方式通过像浏览器的任一类型的程序或应用来呈现。CLI 212可以是任一类型和形式的命令行或基于文本的接口,例如由操作系统提供的命令行。例如,CLI 212可以包括命令解释程序,所述命令解释程序是允许用户与操作系统相互作用的工具。在一些实施例中,CLI 212可以通过bash、csh、tcsh或ksh型命令解释程序来提供。命令解释程序服务214包括程序、服务、任务、进程或可执行指令以支持用户通过GUI 210和/或CLI 212与设备200或操作系统相互作用。
健康监测程序216被用于监控、检查、报告和确保网络系统在正常工作以及用户通过网络接收所请求的内容。健康监测程序216包括一个或多个程序、服务、任务、进程或可执行指令以提供用于监测设备200的任一活动的逻辑、规则、功能或操作。在一些实施例中,健康监测程序216拦截并检查经由设备200传递的任一网络业务量。在其它实施例中,健康监测程序216通过任一合适的方法和/或机制与一个或多个下列单元连接:加密引擎234、高速缓存管理器232、策略引擎236、多协议压缩逻辑238、分组引擎240、守护服务218和命令解释程序服务214。因而,健康监测程序216可以调用任一应用编程接口(API)以确定设备200的任一部分的状态、状况或健康。例如,健康监测程序216可以周期性地查验或发送一个情况查询以检测程序、进程、服务或任务是否有效以及当前正在运行。在另一个实例中,健康监测程序216可以检查由任一程序、进程、服务或任务提供的任一状态、错误或历史记录,以确定设备200的任一部分的任一情况、状态或错误。
守护服务218是连续或在后台运行并处理由设备200接收到的周期性服务请求的程序。在一些实施例中,守护服务可以将请求转发给其它程序或进程,例如酌情转发给另一个守护服务218。如本领域技术人员所知,守护服务218可以无人监护地运行以执行诸如网路控制的连续的或周期性的全系统的功能或者执行任一期望的任务。在一些实施例中,一个或多个守护服务218运行在用户空间202中,而在其它实施例中,一个或多个守护服务218运行在内核空间中。
现在参考图2B,描述了设备200的另一个实施例。总的来说,设备200提供下列服务、功能或操作中的一个或多个:用于一个或多个客户机102以及一个或多个服务器106之间的通信的SSL VPN连通性280、交换/负载平衡284、域名服务解析286、加速288和应用防火墙290。每个服务器106可以提供一个或多个网络相关的服务270a-270n(称为服务270)。例如,服务器106可以提供HTTP服务270。设备200包括一个或多个虚拟服务器或虚拟网际协议服务器,其被称为vServer、VIP服务器或仅仅称为VIP 275a-275n(此处也被称为vServer 275)。vServer 275根据设备200的配置和操作来接收、拦截或者以其他方式处理客户机102和服务器106之间的通信。
vServer 275可以包括软件、硬件或软件和硬件的任一组合。vServer275可以包括在设备200中的用户模式202、内核模式204中或其任一组合中操作的任一类型和形式的程序、服务、任务、进程或可执行指令。vServer 275包括任一逻辑、功能、规则或操作以执行此处所描述的技术的任一实施例,例如SSL VPN 280、交换/负载平衡284、域名服务解析286、加速288和应用防火墙290。在一些实施例中,vServer 275建立到服务器106的服务270的连接。服务275可以包括可以连接和通信到设备200、客户机102或vServer 275的任一程序、应用、进程、任务或可执行指令组。例如,服务275可以包括web服务器、HTTP服务器、ftp、电子邮件或数据库服务器。在一些实施例中,服务270是用于监听、接收和/或发送用于诸如电子邮件、数据库或企业应用的应用的通信的守护进程或网络驱动程序。在一些实施例中,服务270可以在一个特定IP地址或IP地址和端口上进行通信。
在一些实施例中,vServer 275将策略引擎236的一个或多个策略应用到客户机102和服务器106之间的网络通信。在一个实施例中,策略与VServer 275有关。在另一个实施例中,策略基于一个用户或一组用户。在又一个实施例中,策略是全局的并且应用到一个或多个vServers275a-275n以及经由设备200通信的任一用户或用户组。在一些实施例中,策略引擎的策略有条件,在所述条件时根据诸如网际协议地址、端口、协议类型、报头或分组中的字段的通信的任一内容或者诸如用户、用户组、vServer 275、传输层连接和/或客户机102或服务器106的标识或属性的通信上下文来应用策略。
在其它实施例中,设备200与策略引擎236通信或连接以确定对远程用户或远程客户机102访问服务器106的计算环境15、应用和/或数据文件的验证和/或授权。在另一个实施例中,设备200与策略引擎236通信或连接以确定对远程用户或远程客户机102的验证和/或授权,以使应用递送系统190递送计算环境15、应用和/或数据文件的一个或多个。在又一个实施例中,设备200根据策略引擎236对远程用户或远程客户机103的验证和/或授权来建立VPN或SSL VPN连接。在一个实施例中,设备102根据策略引擎236的策略来控制网络业务量和通信会话的流量。例如,设备200可以根据策略引擎236来控制对计算环境15、应用或数据文件的访问。
在一些实施例中,vServer 275建立诸如经由客户机代理120与客户机102的TCP或UDP连接的传输层连接。在一个实施例中,vServer 275监听并接收来自于客户机102的通信。在其它实施例中,vServer 275与客户服务器106建立诸如TCP或UDP连接的传输层连接。在一个实施例中,vServer 275建立到运行在服务器106上的服务器270的网际协议地址和端口的传输层连接。在另一个实施例中,vServer 275将到客户机102的第一传输层连接与到服务器106的第二传输层连接关联起来。在一些实施例中,vServer 275建立到服务器106的传输层连接池并多路复用经由所述池化的传输层连接的客户机请求。
在一些实施例中,设备200提供在客户机102和服务器106之间的SSL VPN连接280。例如,第一网络104上的客户机102请求建立到第二网络104′上的服务器106的连接。在一些实施例中,第二网络104′是不可从第一网络104路由的。在其它实施例中,客户机102在公用网104上,而服务器106在诸如公司网的专用网104′上。在一个实施例中,客户机代理120拦截第一网络104上的客户机102的通信,加密所述通信,并经由第一传输层连接发送所述通信到设备200。设备200将第一网络104上的第一传输层连接关联到第二网络104’上的到服务器106的第二传输层连接。设备200从客户机代理102接收被拦截的通信,解密所述通信,并经由第二传输层连接发送所述通信到第二网络104上的服务器106。第二传输层连接可以是池化的传输层连接。因而,设备200提供在两个网络104和104′之间用于客户机102的端到端安全传输层连接。
虚拟专用网络(VPN)可以是使用诸如因特网的公用电信基础架构来为远程客户机、服务器或者其它通信装置提供诸如从公用网络到专用网络的访问或者连接的任一网络。虚拟专用网络(VPN)是使用诸如因特网的公用电信基础架构来为远程用户提供对企业或者专用网络的访问的方法。在一些实施例中,该访问经由加密或者隧穿是安全的。在一些实施例中,此处描述的中间设备提供从客户机的第一网络到服务器的第二网络的安全虚拟专用网络连接。
安全套接字层(SSL)VPN可以使用SSL或者TLS或者任一其它类型和形式的安全协议来建立具有安全级的连接。在一些实施例中,SSL VPN可以使用任意类型和形式的加密用于建立或者维持安全访问。SSL VPN可以经由诸如使用HTTPS(安全超文本传输协议)的浏览器来建立和/或访问。SSL VPN可以通过支持SSL的浏览器或者应用来建立或者提供。
可以通过使用基于客户机或者免客户机的方法来建立或者提供SSLVPN连接或者会话。基于客户机的SSL VPN可以使用任一类型和形式客户机代理或者客户机102上任一软件相关的代理,来建立SSL VPN连接或者会话。例如,可以经由下载到客户机的SSL VPN客户机代理来提供基于客户机的SSL VPN,诸如从设备下载的。客户机代理可以被设计并且配置为在客户机和设备或者服务器之间建立和提供SSL VPN功能性、连接和访问。
免客户机SSL VPN可以是不使用下载并安装到客户机102的SSL VPN客户机代理、软件或者程序来建立SSL VPN连接或者会话的任一SSL VPN。在一些实施例中,免客户机SSL VPN可以是不需要客户机102来安装或者执行被设计和构成为提供SSL VPN功能性的预定软件或者可执行文件以建立和另一个网络装置的SSL VPN连接的任一SSL VPN。在一些实施例中,经由不下载或者不需要使用VPN或者SSL VPN客户机代理的SSL使能的浏览器来建立免客户机SSL VPN。免客户机SSL VPN连接或者会话可以使用标准浏览器或者应用的协议和通信,诸如SSL使能的浏览器。免客户机SSL VPN连接或者会话可以通过此处描述的在第一网络和第二网络之间翻译、重写或者转换请求和响应的内容的中间设备或者应用来提供。
在一个实施例中,设备200在虚拟专用网104上寄载客户机102的内联网网际协议或内联网IP 282地址。客户机102具有诸如第一网络104上的网际协议(IP)地址和/或主机名的本地网络标识符。当经由设备200连接到第二网络104′时,设备200在第二网络104′上为客户机102建立、分配或者以其他方式提供内联网IP,其是诸如IP地址和/或主机名的网络标识符。使用客户机建立的内联网IP 282,设备200在第二或专用网104′上监听并接收指向客户机102的任一通信。在一个实施例中,设备200在第二专用网104上充当或代表客户机102。例如,在另一个实施例中,vServer 275监听并响应到客户机102的内联网IP 282的通信。在一些实施例中,如果第二网络104′上的计算装置100发送请求,则设备200处理所述请求,就像它是客户机102一样。例如,设备200可以响应到客户机的内联网IP 282的查验。在另一个实例中,设备可以与第二网络104上的请求与客户机的内联网IP 282连接的计算装置100建立诸如TCP或UDP连接的连接。
在一些实施例中,设备200为客户机102和服务器106之间的通信提供下列一个或多个加速技术288:1)压缩;2)解压缩;3)传输控制协议池;4)传输控制协议多路复用;5)传输控制协议缓冲;以及6)高速缓存。在一个实施例中,设备200通过打开与每个服务器106的一个或多个传输层连接并维持这些连接以允许客户机经由因特网的重复数据访问来减轻服务器106的由反复打开和关闭到客户机102的传输层连接所造成的大量处理负载。这个技术在这里被称为“连接池”。
在一些实施例中,为了经由池化的传输层连接来无缝接合从客户机102到服务器106的通信,设备200通过在传输层协议级修改序号和确认号来转换或多路复用通信。这被称为“连接多路复用”。在一些实施例中,不需要应用层协议相互作用。例如,在到来分组(即,自客户机102接收的分组)的情况中,所述分组的源网络地址被改变为设备200的输出端口的网络地址,而目的网络地址被改变为目的服务器的网络地址。在发出分组(即,自服务器106接收的一个分组)的情况中,源网络地址被从服务器106的网络地址改变为设备200的输出端口的网络地址,而目的地址被从设备200的网络地址改变为请求的客户机102的网络地址。所述分组的序号和确认号也被转换为到客户机102的设备200的传输层连接上的客户机102所期待的序号和确认。在一些实施例中,传输层协议的分组校验和被重新计算以解释这些转换。
在另一个实施例中,设备200为客户机102和服务器106之间的通信提供交换或负载平衡功能284。在一些实施例中,设备200根据层4或应用层请求数据来分配业务量并将客户机请求指向服务器106。在一个实施例中,虽然网络分组的网络层或层2标识了目的服务器106,但设备200通过作为传输层分组的有效载荷而携带的应用信息和数据来确定服务器106以分配网络分组。在一个实施例中,设备200的健康监测程序216监控服务器的健康以确定为其分配客户机的请求的服务器106。在一些实施例中,如果设备200探测到服务器106不可用或具有超过预定阈值的负载,则设备200可以将客户机请求指向或分配到另一个服务器106。
在一些实施例中,设备200充当域名服务(DNS)解析器或者以其他方式提供对来自于客户机102的DNS请求的解析。在一些实施例中,设备拦截由客户机102发送的DNS请求。在一个实施例中,设备200响应具有设备200的IP地址或由设备200寄载的IP地址的客户机的DNS请求。在该实施例中,客户机102把给域名的网络通信发送到设备200。在另一个实施例中,设备200响应具有第二设备200′的IP地址或由第二设备200′寄载的IP地址的客户机的DNS请求。在一些实施例中,设备200响应具有由设备200确定的服务器106的IP地址的客户机的DNS请求。
在又一个实施例中,设备200为客户机102和服务器106之间的通信提供应用防火墙功能290。在一个实施例中,策略引擎236提供用于检测和阻塞非法请求的规则。在一些实施例中,应用防火墙290防止拒绝服务(DoS)攻击。在其它实施例中,设备检查被拦截的请求的内容以识别和阻塞基于应用的攻击。在一些实施例中,规则/策略引擎236包括用于提供对多个种类和类型的基于web或因特网的脆弱点的保护的一个或多个应用防火墙或安全控制策略,例如下列的一个或多个:1)缓冲器溢出,2)CGI-BIN参数操纵,3)格式/隐藏字段操纵,4)强制浏览,5)cookie或会话中毒,6)破译的访问控制表(ACLs)或弱的口令,7)跨站点的脚本(XSS),8)命令注入,9)SQL注入,10)错误触发敏感信息泄漏,11)加密技术的不安全使用,12)服务器误配置,13)后门和调试选择,14)web站点毁损,15)平台或操作系统的脆弱点,以及16)零天攻击。在一个实施例中,对下列情况的一种或多种,应用防火墙290以检查或分析网络通信的形式来提供HTML格式字段的保护:1)返回所需的字段,2)不允许附加字段,3)只读和隐藏字段强制(enforcement),4)下拉列表和单选按钮字段的一致,以及5)格式字段最大长度强制。在一些实施例中,应用防火墙290确保cookies不被修改。在其它实施例中,应用防火墙290通过强制实施合法URL来防止强制浏览。
还是在其它实施例中,应用防火墙290保护在网络通信中包含的任一机密信息。应用防火墙290可以根据引擎236的规则或策略来检查或分析任一网络通信以识别网络分组的任一字段中的任一机密信息。在一些实施例中,应用防火墙290在网络通信中识别信用卡号、口令、社会保险号、姓名、病人代码、联系信息和年龄的一次或多次出现。网络通信的编码部分可以包括这些出现或机密信息。在一个实施例中,根据这些出现,应用防火墙290可以对网络通信采取策略行动,例如阻止网络通信的发送。在另一个实施例中,应用防火墙290可以重写、移除或者以其他方式掩盖这样识别出的出现或机密信息。
仍然参考图2B,设备200可以包括如上面结合图1D所讨论的性能监控代理197。在一个实施例中,设备200从如图1D中所描述的监控业务198或监控服务器106中接收监控代理197。在一些实施例中,设备200在诸如磁盘的存储装置中保存监控代理197,以用于递送给与设备200通信的任一客户机或服务器。例如,在一个实施例中,设备200在接收到建立传输层连接的请求时发送监控代理197给客户机。在其它实施例中,设备200在建立与客户机102的传输层连接时发送监控代理197。在另一个实施例中,设备200在拦截或检测对web页面的请求时发送监控代理197给客户机。在又一个实施例中,设备200响应于监控服务器198的请求来发送监控代理197到客户机或服务器。在一个实施例中,设备200发送监控代理197到第二设备200′或设备205。
在其它实施例中,设备200执行监控代理197。在一个实施例中,监控代理197测量和监控在设备200上执行的任一应用、程序、进程、服务、任务或线程的性能。例如,监控代理197可以监控和测量vServers275A-275N的性能与操作。在另一个实施例中,监控代理197测量和监控设备200的任一传输层连接的性能。在一些实施例中,监控代理197测量和监控通过设备200的任一用户会话的性能。在一个实施例中,监控代理197测量和监控通过设备200的诸如SSL VPN会话的任一虚拟专用网连接和/或会话的性能。在进一步的实施例中,监控代理197测量和监控设备200的存储器、CPU和磁盘使用以及性能。在又一个实施例中,监控代理197测量和监控诸如SSL卸载、连接池和多路复用、高速缓存以及压缩的由设备200执行的任一加速技术288的性能。在一些实施例中,监控代理197测量和监控由设备200执行的任一负载平衡和/或内容交换284的性能。在其它实施例中,监控代理197测量和监控由设备200执行的应用防火墙290保护和处理的性能。
C.免客户机虚拟专用网络环境
现在参考图3A,描述了用于经由设备200或代理访问服务器的免客户机虚拟专用网络(VPN)环境的实施例。总的来说,客户机102操作在计算装置100上并且执行通过用户操作的浏览器。客户机102可以在第一网络104上,诸如公用网络。客户机102上的用户可以经由浏览器来请求对于第二网络104’上的资源的访问,诸如企业的专用网络。设备200为用户提供对于所请求资源的免客户机VPN访问。客户机可以不安装、执行或者以其他方式执行被构建和/或设计来为网络104’提供VPN连接性(称为基于客户机的VPN)的代理、部件、程序、驱动器或者应用。而是,设备或者代理可以重写来自服务器的响应和来自客户机的请求以提供VPN功能,而不需要使用对在客户机上操作的的VPN代理。例如,设备可以重写客户机和服务器之间的统一资源定位符(URL),诸如通过服务器对任一内容服务器中的URL或者客户机传送的请求中的URL进行重写。设备200可以以对于客户机和服务器的任一者或者两者透明并且无缝的方式重写服务器和客户机之间的URL。由此,客户机、浏览器或者服务器和服务器应用不需要知晓或者了解免客户机SSL VPN访问方案。
设备200可以经由之前描述的SSL VPN280模块来提供用于访问资源的功能。在一个实施例中,设备200通过在用于和设备200通信的客户机102上提供、安装或者执行SSL VPN代理来提供基于客户机的对网络的访问。在一些实施例中,设备200提供对资源(诸如http/https/文件共享)的免客户机SSL VPN访问,而不需要下载SSL VPN客户机或者代理到客户机102。例如,用户可以期望从诸如处于机房的外部机器来访问公司内的资源,在该外部机器上用户并没有特权来安装客户机或者不期望经历客户机安装过程。当装置(例如市场上的新的PDA)不支持SSL VPN客户机而装置运行的是SSL使能的浏览器,则免客户机SSL VPN特征也是有用的。在其他实施例中,设备200基于策略和任一策略规则、动作和/或条件来在对资源的基于客户机和免客户机SSL VPN访问之间选择用户。
客户机可以包括任一类型和形式的用户代理,可以是浏览器、编辑器、网络爬虫程序(web穿越自动机)或者任一其它终端用户工具或者程序。客户机102可以包括任一类型和形式的浏览器。在一个实施例中,浏览器是Washingtong Redmond的微软公司制备的任一版本的InternetExplorer(IE)。在另一个实施例中,浏览器是网景通信公司制备的任一版本的网景浏览器。在其他实施例中,浏览器是称之为Firefox并且由California的Mozilla Foundation提供的并且在www.mozilla.com可以找到的任一版本的开放源浏览器。在又一个实施例中,浏览器是NorwayOslo的Opera Software ASA制备的称之为Opera的任一版本的浏览器。在一些实施例中,客户机102执行或者包括任一类型或者形式的应用或者程序,用于显示web页面、web内容、HTML、XML、CSS(层叠式样式表)、Java脚本或者HTTP内容。
在图3A描述的实施例的操作中,用户登入设备200提供的SSL VPN站点,诸如通过设备200寄载的域名和IP地址。例如,用户经由客户机102的浏览器可以选择或者输入URL到SSL VPN站点。设备200可以验证用户并且还可以进一步确定用户访问设备200或者SSL VPN站点的授权。在成功验证之后,设备为客户机提供入口页面来经由浏览器显示给用户。入口页面可以包括导航盒(navigation box),诸如一组一个或者多个用户接口元件用于用户来选择操作或者运行应用。入口页面可以包括到用户可访问的其它页面或者URL的链接。入口页面上的URL或者链接可以索引或者识别设备200提供的SSL VPN站点的主机名或者IP地址。
用户经由入口页面可以例如通过点击有效超链接或者URL来选择一个或者多个URL。随之,浏览器或者客户机将请求传送给设备200寄载的域。例如,如图3A中描述的,用户可以经由设备请求服务器106的应用:“https://sslvpn.x.com/cvpn/http/server.x.com/app.cgi”。在一些实施例,用户发送另一个请求,诸如“https://proxy.x.com/cvpn/http/server.x.com/app.cgi”。设备200从客户机102接收请求并且重写该请求以发送给服务器。例如,如图3A中描述的,设备可以移除或者删除设备所寄载的域名诸如“sslvpn.x.com”或者“proxy.x.com”并且将请求的剩余部分转发给服务器106。
响应于该请求,服务器将内容发送给客户机。响应的内容或者体可以包括到服务器的其他页面或者到网络104’上的其他服务器的嵌入式链接或者URL,诸如到“http://server.x.com/app.cgi”的嵌入式链接。设备重写该首部和体来修改任一URL,以索引到SSL VPN站点的域名或者IP地址,使得经由客户机浏览器的任一其它URL或者链接选择将请求发送给设备200。设备发送修改后的内容给客户机102。设备200诸如经由AppFw 290(有时称之为AppSecure模块290)可以设计并且构建为基于策略引擎的策略来重写请求和响应的URL。该页面和在此SSL VPN会话期间从服务器随后接收的其他页面中的链接(URL)由设备通过指向SSL VPN站点(VPNVIP 275)的链接和初始请求URL(绝对或者相对)编码在该请求URL中的方式来进行修改。
现在参考图3B,描述用于提供VPN访问以及cookie管理的VPN环境的另一个实施例。总的来说,设备200可以包括用于处理如此处描述的基于免客户机和/或客户机的任一SSL VPN功能性的VPN模块280。设备和/或VPN模块280可以具有AAA模块来执行任一类型和形式的验证、授权和审核(AAA)和/或跟综和管理VPN会话信息。AAA模块还可以执行任一类型或者形式的VPN会话查询来确定用于任一客户机请求的VPN会话。VPN模块还可以执行URL译码并且将URL转换为服务器格式,诸如用来提交给专用网络上的服务器。VPN模块280还包括经由VPN处理器函数、逻辑或者运算的DNS查询功能性和授权。
设备可以包括用于保存、跟踪和管理客户机和服务器之间的cookie的cookie代理或者cookie管理器。Cookie可以包括用于增加或者插入cookie以及移除cookie的cookie存储装置,称之为cookie存储器(jar)。Cookie管理器或者代理可以包括在cookie存储器中通过请求和/或响应的URL、域名或者其他信息来保存和查询cookie信息的功能、逻辑或者运算。在一些实施例中,设备200代表不支持cookie、停用的cookie的客户机或者对于期望或优选不发送cookie给客户机的情况中管理cookie。
设备还可以包括AppFW 280,其在Citrix System公司制备的设备的情况下称为AppSecure。AppSecure 280模块可以包括用于执行任一类型和形式的内容重写,诸如URL重写的逻辑、功能或运算。在一些实施例中,AppSecure 280模块执行到客户机和服务器之间的请求和/或响应的任一类型和形式的内容注入。在一些实施例中,AppSecure模块280将脚本插入到对客户机的响应中,诸如Java脚本,来执行任一类型和形式的期望的功能性。
用于免客户机SSL VPN访问的设备200的任一部件可以响应于配置或者通过配置驱动,诸如经由策略引擎的任意一个或者多个策略。策略可以指导和确定通过VPN模块执行的URL编码和译码的类型和形式。在一些实施例中,策略可以指导和确定cookie代理如何并且何时管理和代理cookie。在其他实施例中,策略可以指导并且确定AppSecure模块如何并且何时执行URL重写和/或内容注入。策略可以指导用户访问专用网络和专用网络上的应用的方式。策略可根据访问方案配置,该访问方案可以包括基于用户、客户机的类型和形式、网络的类型和形式、访问资源的类型、所使用应用的类型、暂时信息以及可以通过设备经由传输到的网络业务量来确定的任一信息的任一组合的访问。
参考图3B,讨论经由设备200用于免客户机SSL VPN访问的包流。响应于成功的登入请求,VPN设备可以发送入口页面给登入请求的发送者。入口页面可以具有结合图3A描述的“vpn编码格式”的一个或者多个链接。入口页面流经以下描述的响应码路径。当用户点击入口页面中的任一URL时,包流可以以多种方式并且使用多个步骤来执行。在一些实施例中,对于步骤Q1的请求路径,设备200可以接收URL请求并且查询AAA模块中的VPN会话。在步骤Q2,设备可以将VPN编码的URL译码为期望的URL用于服务器或者网络104’。设备还可以将请求的首部(诸如首部值)修改为服务器格式或者意于通过服务器106传输和使用的格式,诸如HTTP服务器。设备可以重新解析首部,使得设备的任一其它模块以服务器格式查看该请求。在步骤Q3,在请求路径中,设备经由cookie管理器或者代理可以基于URL的域和路径来查看用于该请求的cookie。在一些情况中,如果该请求包括cookie,则该设备可以从cookie存储器插入cookie。在步骤Q4,设备可以经由设备的DNS查询功能/模块来将以URL中的服务器的域名解析为服务器的IP地址。设备可以基于AAA模块中的DNS查询来建立服务器信息。此外,可以评估授权策略来确定该请求是否可以传送给服务器。在步骤Q5,设备可以将请求发送给服务器。在一些实施例中,只有在授权成功的情况下,设备才将该请求发送给服务器。
在从服务器经由设备到客户机的响应路径中,在步骤S1,设备可以接收来自服务器的响应。VPN模块280可以处理该响应。VPN模块可以将该响应首部传递到cookie代理模块并且将响应的体传递到AppSecure模块。在步骤S2,cookie代理可以从响应的首部移除未被配置或者以其它方式识别为客户机所消耗cookie的cookie并且将它们保存在当前会话所使用的cookie存储器中。在步骤S3,AppSecure模块可以根据重写策略来重写“vpn编码形式”的任一URL。AppSecure模块还可以将任一脚本插入响应体中,诸如要在客户机侧执行的Java脚本代码。在步骤S4,设备可以发送修改后的响应给客户机。在许多实施例中,任一个Q或者S步骤以任一顺序或者以与此处所描述的任一其它步骤或者实施例的任一组合进行。
D、用于细粒度策略驱动的cookie代理的系统和方法
Cookie可以用来维持网络上两个实体之间的前一事件、事务或者通信的系统或者存储器的状态。在一些情况中,cookie可以用于多种类型的会话跟踪。Cookie管理可以认为是网络装置的特征,诸如中间设备200的特征,并且可以提供一种在建立、利用或者控制在服务器106和客户机102之间传输的cookie方面管理服务器106或者客户机102的方法。此处描述的中间设备的实施例提供管理客户机和服务器的cookie的方法。在一些实施例中,中间设备在服务器侧管理服务器消耗的cookie而不发送cookie给客户机浏览器。
图4A、4B和图4C示出用于cookie代理的系统和方法。图4A描述用于在免客户机SSL VPN环境的实施例中管理cookie的系统和方法的实施例。图4B示出用于包括SSL VPN免客户机访问方案的cookie管理的方法的实施例的时序图和步骤。图4C描写中间设备使用诸如唯一的客户机ID的唯一标识符来进行cookie代理的实施例。这些示出的实例可以涉及用于执行cookie管理的系统和方法的多个实施例,诸如免客户机cookie管理。
免客户机cookie管理可以使得驻留在不安全网络中的web客户机访问寄载在安全网络之后的web应用,而不会损害安全网络的安全性。例如,免客户机cookie管理可以通过移除服务器消耗的cookie数据来改进所传输信息的安全性。免客户机cookie管理可以使得服务器消耗的cookie数据不传输到客户机并且禁止对可包括在cookie中的任一敏感信息的访问。此外,免客户机cookie管理可以使得不支持cookie的诸如PDA和WAP浏览器的web浏览器可以和要求cookie的服务器上的web应用一起运行。进一步,在所使用的web应用和cookie路径重写不兼容的例子中,免客户机cookie管理通过重写cookie路径可以提供允许这样的应用工作的服务。
现在参考图4A,示出经由中间设备200来执行SSL VPN免客户机cookie管理的系统和方法的实施例。图4A描述经由中间设备200和服务器106通信的客户机102。中间设备200包括策略引擎236和cookie管理器420。客户机102发送请求给中间设备200,诸如意图发往服务器106的HTTP(超文本传输协议)请求。该请求包括可以识别保存在服务器106上或者以其他方式从服务器106可用的服务或者资源的URL(统一资源定位符)。Cookie管理器420接收该请求并且使用策略引擎236产生和客户机102相关联的cookie。所产生的cookie可以满足服务器106的任一优先设置或者配置,因此使得初始的无cookie的请求可被服务器106接受并且处理。Cookie管理器420修改该请求来包括cookie并且将该修改后的请求转发给服务器106。服务器106发出针对该请求的响应,并且将该响应使用通过cookie管理器420产生的cookie传送给中间设备200。Cookie管理器420通过移除该cookie来修改该响应。修改后的响应随后传输给客户机102。服务器106和客户机102还可以使用cookie来发送附加的请求和响应,因此允许无cookie的客户机102来存取cookie配置的服务器106上的资源。
Cookie管理器420可以是产生、终止、修改或者管理cookie的任一装置、部件、单元、函数或者设备。Cookie管理器420还可以修改客户机102的请求和服务器106的响应。Cookie管理器420可以包括管理和控制cookie的硬件、软件或者硬件和软件部件的任一组合。Cookie管理器420可以包括用来控制、管理或者修改客户机102和服务器106之间的传输信息的逻辑、控制函数、处理电路、软件程序、算法和脚本。在多个实施例中,cookie管理器420包括在管理cookie和提供对客户机102和服务器106之间的通信的控制的过程期间所使用的策略。
在一些实施例中,Cookie管理器420可以唯一地识别网络上的用户,例如通过使用配置的策略来提供唯一的标识符,配置的策略诸如策略引擎236的引擎。唯一的标识符可以是唯一标识网络上客户机102、服务器106或者设备200的任一数据、值或者数据集、数字集或者字符集。在一些实施例中,Cookie管理器420可利用唯一标识符来将来自服务器106的接收的响应关联到响应发往的特定的客户机102。Cookie管理器420可以包括任一功能性来使用cookie和客户机标识符修改响应,使得客户机102以期望格式接收响应。类似地,Cookie管理器420可以包括任一功能性来使用客户机唯一标识符和为客户机所产生的cookie修改特定客户机102的请求,以包括特定的cookie来访问服务器106上的资源。
Cookie管理器420可以修改或者改变通过服务器106或客户机102发送的任一传输。在一些实施例中,Cookie管理器420使用策略引擎236中的一个或者多个用来处理cookie的策略来修改客户机102和服务器106之间的传输。Cookie管理器420可以修改传输以包括或者排除cookie和唯一的客户机标识符。在一些实施例中,Cookie管理器420为请求访问任一服务器106的任意客户机102产生cookie。Cookie管理器420可以响应于策略为客户机102产生cookie。在一些实施例中,Cookie管理器可以响应于策略确定不应该允许特定的客户机有cookie。在其他实施例中,Cookie管理器420响应于策略确定特定的唯一客户机标识符应该和客户机102相关联。在进一步的实施例中,Cookie管理器420响应于策略来确定为请求产生的cookie的类型和形式。在又一个实施例中,Cookie管理器响应于策略来确定是否或者如何保存cookie以用于客户机的未来请求。
在一些实施例中,Cookie管理器从请求或者响应消除或者删除cookie。Cookie管理器可以分配或者重新分配cookie给客户机102或者服务器106。仍在另一个实施例中,Cookie管理器420改变、修改或者重写来自客户机102的请求或者来自服务器106的响应的cookie。Cookie管理器420可将唯一识别客户机的值、名称或者唯一客户机标识符匹配到和客户机、服务器或者中间设备200相关的cookie或者cookie的一部分。在一些实施例中,Cookie管理器420可以将和唯一客户机标识符相关的cookie增加到URL。在进一步的实施例中,Cookie管理器420可以移除唯一的客户机标识符并且代以增加和唯一客户机标识符相关的cookie。在多个实施例中,Cookie管理器420可以使用唯一标识符代替cookie,有时也称为唯一识别客户机102或者服务器106的唯一的ID。
Cookie管理器420可以使用解析器用来解析传输。Cookie管理器420还可以使用内部映射表用于将涉及多个客户机、服务器或者设备200的多个唯一标识符匹配到涉及客户机、服务器或者设备的多个cookie。例如,Cookie管理器420可以使用包括和一个或者多个cookie相关的唯一标识符的映射图,用于将通过唯一标识符唯一标识的客户机102和一个或者多个cookie匹配。在这样的情况中,Cookie管理器420可以使用匹配到唯一客户机标识符的一个或者多个cookie来修改、改变或者编辑来自客户机的请求或者到客户机的响应。在需要遵从接收装置即接收传输的客户机102或者服务器106的配置或者优先设置时,Cookie管理器420可以利用策略通过管理、增加或者移除来自或者去往客户机102和服务器106的传输的cookie和唯一客户机标识符来管理客户机102和服务器106之间的传输。
分号定界的客户机列表(semi-colon client delimited list)可以是包括和与一个或者多个服务器106经由中间设备200通信的客户机102相关的信息的cookie列表的任一映射表、列表、数据库或者文件。此处分号定界的客户机列表还可以互换地称为内部映射表或者cookie列表或者映射表。在一些实施例中,分号定界的客户机列表包括可用于代替用于上行通信即发往服务器106的通信或者下行通信即发往客户机102的通信的cookie的cookie和值或者唯一标识符的名称值对。有时,Cookie管理器420可以使用客户机消耗的cookie和/或客户机和服务器消耗的cookie的分号定界的列表来将一个或多个客户机102的值或者唯一标识符链接、匹配或者关联到和客户机相关的每一个cookie。通过使用分号定界的列表,Cookie管理器420可以确定哪一个cookie重新注入、增加或者包括到下行或者上行传输中。Cookie管理器420可以使用cookie的映射表或者列表来将来自通过中间设备200接收的传输的cookie匹配到传输所要发送的客户机102。Cookie管理器420随后可以编辑或者修改传输来排除cookie并且代以包括和客户机102相关的任一其他信息。类似地,Cookie管理器420可以使用cookie的映射表或者列表来将唯一客户机标识符匹配到要包括到传输中的cookie。
在一些实例中,通过开始服务器侧cookie管理并且不指定分号定界的列表,web应用会可能不正确地运行。使用该分号定界的列表可以消除在cookie管理器420滤除服务器106处的客户机消耗的cookie时产生的错误。使用该分号定界的列表还可以消除在web应用尝试访问导致不期望行为的客户机102上的cookie值时产生的错误。在多个实施例中,定界的客户机cookie列表,或者列表可以包括用于服务器侧或者客户机侧cookie管理的多种开启/关断设置。在一些实施例中,定界的客户机cookie列表可以保存在任意个数据层中或者多个表中,该表包括用于该方法或者过程的每一步骤的任一变量的设置和配置。
Cookie可以通过类型或者特征来分类。cookie管理器420可以通过和cookie关联的唯一标识符来将cookie分类或者分选。服务器消耗的cookie可以是通过诸如服务器106的资源设置的cookie,在响应上发布Set-Cookie。服务器消耗的cookie值可以通过任一客户机侧代码检查或者可以不检查。在某些实施例中,cookie管理器420可以将服务器消耗的cookie识别或者分类为服务器消耗的cookie。在多个实施例中,cookie管理器420可以从请求或者响应的下行传输中移除服务器消耗的cookie并且将它们重新注入和该请求或者响应相关的上行传输中。在其他实施例中,服务器消耗的cookie可以和有关会话的秘密或者敏感数据相关联。在一些实施例中,服务器消耗的cookie可以通过cookie管理器420来管理并且不可以发送到web浏览器。在某些实施例中,服务器消耗的cookie可以从发送到web浏览器的消息剥离并且可以保存在cookie管理器420或者和cookie管理器420相关的任一存储装置。
客户机消耗的Cookie可以是通过客户机102的web浏览器经由诸如Java脚本的脚本设置在上行传输上的Cookie。在一些实施例中,客户机消耗的Cookie是设置在从源起始的下行传输上的cookie,其中该源可以是客户机102、服务器106或设备200。在多个实施例中,客户机消耗的Cookie可以通过客户机102或者中间设备200来检查或者修改。在一些实施例中,客户机消耗的Cookie不通过服务器106检查或者修改。服务器106可以仅按原样接收请求,并且依赖于中间设备200来对该请求提供修改。类似地,客户机102也不能修改响应,而是可以依赖于中间设备200来修改该响应。在一些实施例中,客户机消耗的Cookie通过服务器106来检查、编辑或者修改。在进一步的实施例中,客户机消耗的Cookie不通过cookie管理器420来管理,而是下行发送到客户机102的web浏览器。有时,客户机消耗的Cookie和服务器消耗的cookie通过客户机102和服务器106二者来读出、修改和产生。在一些实施例中,cookie管理器420不能管理客户机或服务器消耗的cookie,并且客户机和服务器消耗的cookie可以下行发送到客户机102的web浏览器。在一些实施例中,客户机102可以执行服务器106的功能性,并且相反亦然。在其他实施例中,客户机102可以互换使用来替代服务器106,服务器106也可以互换使用来替代客户机102。在一些实施例中,客户机或者服务器消耗的cookie可以被使用、修改、读、写或者传输来自或者去往客户机102、服务器106或者中间设备200的任一个。在许多实施例中,服务器消耗的cookie包括客户机消耗的cookie的所有功能性,并且以相同方式和通过如任一客户机消耗的cookie一样的相同部件来处理、修改、控制或者以其他方式使用。有时,所有的cookie可以是服务器消耗的cookie。服务器消耗的cookie可以通过服务器来使用、读出或者编辑。在进一步的实施例中,一些服务器消耗的cookie还可以是客户机消耗的cookie。客户机消耗的cookie可以通过客户机使用、读出或者编辑以及通过服务器来使用、读出或者编辑。在一些实施例中,服务器和客户机消耗的cookie通过中间设备200来使用、编辑、读出、写入或者修改。有时在一些实施例中,一些cookie通过客户机而不通过服务器来使用。
上行或者下行通信可以用来指示通信的方向。例如,有时上行请求通信或者上行方向可以和从客户机102到服务器106的通信或者事务相关。在一些实施例中,上行请求通信或者上行方向可以和从服务器106到客户机102的通信或者事务相关。在多个实施例中,下行请求通信或者下行方向在一些实施例中可以和从客户机102到服务器106的通信、事务或者方向相关。在多数实施例中,下行请求通信或者下行方向可以和从服务器106到客户机102的通信或者事务相关。有时,朝向服务器的事务或者通信可以称为上行事务或者上行通信并且朝向客户机的事务或者通信可以称为下行事务或者下行通信。
进一步参考图4A,示出用于执行免客户机cookie管理的实施例的方法的步骤。在步骤1,客户机102通过中间设备200发送请求给服务器106。该请求包括URL请求,诸如中间设备200提供的URL,例如http://abc.com/dir/index.asp。在步骤2,中间设备200和cookie管理器420通信,该cookie管理器420比较URL提供的域名和路径的cookie内部映射图和输入请求URL。如果cookie管理器检测到输入请求URL和内部映射图中可用的cookie之间的任一匹配,则从cookie管理器返回名称值对的阵列给中间设备。在步骤3,中间设备将修改的请求转发给服务器106。在一些实施例中,请求还可以称之为HTTP请求,并且修改后的请求可以称之为修改后的HTTP请求。该请求可以被修改为包括来自cookie管理器420的一个或者多个cookie。如图4A中所示,在步骤3中发送的消息包括分配给cookie的等于25的值。在步骤4,服务器以包括首部和体的响应来响应该请求,诸如HTTP首部和内容体。该响应可以包括通过Set-cookie HTTP首部限定的多个cookie定义。进一步的例子,来自服务器的响应包括设为25的Set-cookie值。中间设备可以在步骤5访问cookie管理器420,而将来自响应的cookie值传递到cookie管理器。Cookie管理器420检查所接收值是否是新的或者对于给定URL是否更新,并且在输入映射图上执行任一必要的更新。Cookie管理器420还检查客户机消耗的cookie是否应该返回给中间设备,用于web浏览器消耗。在步骤6,中间设备将来自服务器的响应发送给客户机102的web浏览器,服务器消耗的cookie从该响应的首部移除,增加客户机消耗的cookie到首部。
在进一步的细节中,图4A描述客户机102通过发送第一请求给中间设备200来初始化具有发往服务器106的第一请求的通信。图4A中的箭头1标示发往中间设备200的第一请求http://abc.com/dir/index.asp的传输。在一些实施例中,第一请求通过服务器106、中间设备200或者网络104上的任一其它装置来发送。第一请求可以包括或者可以不包括cookie。在一些实施例中,第一请求包括URL或者HTTP请求。在进一步的实施例中,第一请求包括对保存在服务器106上的资源的路径。在进一步的实施例中,第一请求包括唯一识别网络上通信的所有装置之中的客户机102的唯一标识符。在又一个实施例中,第一请求包括唯一识别客户机102上的会话的唯一标识符。在进一步实施例中,第一请求包括唯一识别客户机102上用户的唯一标识符。在一些实施例中,传送第一请求的客户机102未配置cookie并且不传送cookie。在其他实施例中,传送第一请求的客户机使用并不安全或不期望传输敏感信息的网络或者连接。
如图4A的箭头2所示,中间设备200接收第一请求并且将其转发给cookie管理器420。在一些实施例中,中间设备200响应于所接收的第一请求来初始化或激活cookie管理器420。在其他实施例中,中间设备200响应于识别到客户机102满足用于激活cookie管理器420的一组预设条件来初始化或者激活cookie管理器。该组预设条件可以包括和客户机102、客户机102上的会话或者客户机102上的用户相关的任一判定。该判定可以通过中间设备200、客户机102、服务器106或者网络104上的任一其它部件或者装置来做出。在一些实施例中,判定通过策略引擎236来做出。在一些实施例中,该组预设条件包括该请求来自不支持cookie的客户机102的判定。在进一步的实施例中,该组预设条件包括客户机102使用不安全的会话或者连接的判定。在又一个实施例中,该组预设条件包括客户机使用不安全网络的判定。在进一步的实施例中,该组预设条件包括客户机102可以访问通过第一请求来请求的服务器106上的所请求资源或者服务的判定。
中间设备200可以激活或者初始化cookie管理器420用来根据cookie的内部映射表来检查或者匹配所接收的请求URL。Cookie的内部映射图也称为cookie的映射图、列表或者分号定界的列表。在一些实施例中,策略引擎236的策略根据cookie的内部映射图匹配第一请求的一部分。该映射图包括任一数量的cookie,每一个cookie可以和任一数量的客户机102、服务器106或者设备200相关联、连接或者配对。在一些实施例中,cookie管理器420检查或者匹配所接收的请求URL到保存在映射图中的消息的路径或者域。在一些实施例中,策略引擎236的策略将涉及客户机102的信息匹配到保存在映射图中的消息的路径或者域。消息的路径或者域可以将第一请求的URL或者一部分或者任一部分匹配到用于客户机102的一个或者多个cookie。在一些实施例中,cookie管理器420或者策略检测或者确定第一请求的一部分和与客户机102或者服务器106相关的一个或者多个cookie或者唯一标识符之间的匹配。在一些实施例中,cookie管理器420或者策略引擎236的策略检测或确定第一请求的一部分和一个或者多个名称值对或者值名称对之间的匹配。
Cookie管理器420可以响应于在所接收请求的一部分和cookie或者来自cookie的内部映射图的一个或者多个cookie之间做出的匹配来产生、提供或返回一个或者多个名称值对。可以通过策略引擎236的策略做出所接收的请求的一部分和cookie或者来自cookie的内部映射图的一个或者多个cookie之间的匹配。在一些实例中,cookie管理器420响应于来自客户机102的请求或者服务器106对于该请求的响应匹配来自映射图的任一cookie或者唯一标识符的确定来返回一个或者多个名称值对。在一些实施例中,cookie管理器420可以将cookie的一部份匹配到来自所接收请求或者对所接收请求的响应的URL的一部分。Cookie管理器420可以将匹配的cookie分配给第一请求。在一些实施例中,cookie管理器420可以修改第一请求来包括所匹配的cookie。在一些实施例中,cookie管理器420在未作出匹配时产生用于客户机102或者服务器106的cookie。在一些实施例中,cookie管理器为第一请求的客户机102产生cookie并且将该cookie分配给客户机102。所产生的cookie可以包括cookie的值。Cookie的值可以是将cookie唯一关联到cookie映射表中的客户机102的唯一值。Cookie管理器可以使用cookie值来将输入响应和从服务器106到客户机102的第一请求关联。Cookie管理器可以给客户机102分配cookie以用于从客户机102到服务器106的第一请求或者任一其它进一步请求。Cookie管理器420或者中间设备200的任一其它部分可以重写、修改、格式化或者改变诸如第一请求的所接收的请求,来包括匹配或者产生的cookie或者满足通过服务器106接收的请求的任一格式或者内容需求。
继续参考图4A,箭头3表示设备200把通过cookie管理器420处理的第一请求发送到服务器106的步骤。所传送的第一请求可以被修改。在一些实施例中,该请求通过cookie管理器420或者设备200来修改。通过中间设备200传送的请求可以包括来自cookie管理器420的一个或者多个cookie。在一些实施例中,所修改的请求包括cookie管理器420可用来关联该请求到客户机102的cookie的值。已经通过设备200或者cookie管理器420修改或者改变的请求可以称之为修改的请求。服务器106可以以用于通过服务器106处理的请求的优先设置或者配置相符的格式来接收修改的请求。服务器106可以接收修改的请求并且确定所接收的修改的请求是合法请求。
箭头4示出服务器106传送或者发出对于修改的请求的响应的步骤。所发布的响应可以包括客户机102已经请求的任一信息、服务或者资源。在一些实施例中,发送的响应包括web页面。在其他实施例中,所发送的响应包括文件。在进一步的实施例中,所发送的响应包括应用或者计算机软件程序。在进一步的实施例中,所发送的响应包括用于建立与客户机102的会话的消息或者验证或者授权消息。来自服务器106的响应可以包括用来唯一识别响应所发往的客户机102的cookie的值。来自服务器的响应可以包括首部和内容体,其每一个可以包括以下任一个:一个或者多个cookie、一个或者多个cookie限定、一个或者多个cookie的组件或者部分、和涉及cookie或者和cookie关联的信息或者值。在一些实施例中,cookie限定通过“Set-cookie”或者“Set-cookie2”HTTP首部设置。“Set-cookie”或者“Set-cookie2”HTTP首部在此处可称为Set-cookie。
箭头5示出中间设备200和cookie管理器420通信并且修改对于第一请求的响应的步骤。在许多实施例中,中间设备200将来自服务器106的响应的一个或者多个cookie值或者唯一客户机标识符传送给cookie客户机420。在许多实施例中,中间设备200将来自服务器的响应的一个或者多个cookie传送给cookie客户机420。中间设备200可以激活或者初始化cookie管理器420用来根据cookie的映射表或者列表来检查或者匹配来自响应的URL。中间设备200可以修改或者编辑服务器的响应来包括和响应的一部分匹配的cookie。在一些实施例中,cookie管理器420可以检查或者匹配URL、响应的首部或者任一其它部分到保存在映射表中的消息的路径、域、cookie或者cookie的一部分。在这样的实例中,如果响应的一部分的任一cookie或者唯一标识符和与客户机102相关联的保存信息相匹配,则中间设备200可以修改或者编辑该响应来如期望地在响应中包括客户机102的cookie或者和客户机102相关联的任一其它信息。在cookie管理器420检测到来自请求或者响应的URL之间的匹配的情况中,来自cookie列表或者内部映射表的一个或者多个cookie、一个或者多个名称值对、或者值名称对可以返回到中间设备200。在一些实施例中,策略引擎236的策略将响应的一部分和一个或者多个cookie或者唯一标识符相匹配。有时,cookie管理器420响应于响应的一部分和cookie或者唯一标识符之间的匹配来返回名称值对的阵列。在一些实施例中,cookie管理器420可以将cookie的一部分匹配到来自所接收请求的URL的一部分。在多个实施例中,cookie管理器420将cookie的一部分匹配到所接收的请求的任一部分,诸如请求的URL、体、或者首部。在一些实施例中,如果cookie管理器420未将对该请求的所接收响应的一部分匹配到任一cookie或者任一唯一标识符,cookie管理器420产生新的cookie或者新的唯一标识符或二者并且将其一个/二者分配给客户机102或者服务器106。Cookie管理器420可以使用新产生的cookie来修改服务器106对第一请求的响应。用于客户机或者服务器的这样的新的cookie和唯一标识符可以用于相同客户机或者服务器106的任意未来的请求或者响应。在一些实施例中,cookie管理器420确定有客户机102的请求或者服务器106的响应的新的或者更新的cookie值,并且进一步相应更新映射图或者数据库。此外,cookie管理器420还可以确定客户机102所消耗的cookie是否应该返回到中间设备200,用于web浏览器消耗。
仍旧参考图4A,箭头6示出中间设备200经由下行响应来发送或者转发修改的响应给客户机102的步骤。在一些实例中,下行响应可以称为从服务器106经由中间设备200朝向客户机102的传输。类似地,上行通信可以是从客户机102经由中间设备200朝向服务器106的任一通信。在一些实施例中,修改后的响应不包括任一cookie。在进一步的实施例中,修改后的响应包括通过cookie管理器420用来将和cookie相关的一个或者多个客户机102关联到客户机102的唯一客户机标识符。在进一步的实施例中,修改的响应包括客户机102接受或者所期望的任一格式。从中间设备200到客户机102的修改的响应可以包括从响应移除的服务器消耗的cookie。在一些实施例中,所转发的修改的响应可以包括重新增加到响应的首部或者任一其它部分的客户机消耗的cookie。在许多实施例中,从中间设备200到客户机102的修改的响应包括来自服务器的响应,该响应被修改以排除cookie管理器420中和客户机102相关的cookie。
Cookie管理,诸如通过cookie管理器420的cookie管理,可以导致或者提供通过客户机102使用的并且通过服务器106提供的服务、资源或者应用,来在相同的cookie域名空间中运行或者提供。中间设备200可以提供客户机侧cookie管理或者服务器侧cookie管理来增加在客户机102和服务器106之间传送的cookie的安全性。Cookie管理,诸如客户机侧cookie管理,可以消除HTTP协议限制的约束,诸如允许来自每单个客户机的单个源的cookie的最大数量。例如,在仅允许客户机每个会话20个cookie的系统中,通过中间设备200的cookie管理器420的cookie管理可以使得客户机能够通过重新使用和客户机相关并且保存在cookie管理器420中的cookie来消除这样的限制。使用客户机侧cookie管理,在这样的例子中,可以使得客户机102即使在每会话20个cookie限制会影响提供给客户机的服务时能够继续和服务器106相通信。在此情况中,拦截并且转发客户机和服务器之间的通信的中间设备200可以管理、修改、重写或者编辑请求或者响应的部分并且使用和客户机或者服务器相关的cookie,因此即使在超过20个的cookie被传输之后也可以进行通信。
Cookie管理器420或者中间设备200执行的免客户机cookie管理可以包括重写发送给客户机102或者服务器106的下行cookie首部上的cookie路径。在一些实施例中,cookie管理器420或者中间设备200将来自客户机102或者服务器106的响应或者请求转发给所期望的目标,而没有对其改变或者修改。在其他实施例中,通过cookie管理器420执行的免客户机cookie管理可以包括经由中间设备200的状态管理。Cookie管理器420可以由中间设备激活,用来检查上行请求以发现应该注入到发往服务器106的流或者通信中的服务器cookie。来自下行通信的响应可以保持在cookie管理器中,该响应意图被修改使得它们没有cookie。
现在参考图4B,描述用于免客户机cookie管理的方法的步骤的实施例的序列图。总的来说,图4B示出经由设备200和cookie管理器420和服务器106的web应用通信的客户机102的浏览器。客户机102发送HTTP请求到设备200,设备200在此处还被称为中间设备200。中间设备200处理该请求并且使用cookie管理器420来检查cookie。Cookie管理器420将和该请求相关的cookie返回给中间设备200。中间设备200修改HTTP请求的首部来包括这些cookie并且将修改的HTTP请求发送到服务器106。服务器106返回对HTTP请求的HTTP响应。中间设备200发送来自HTTP响应的任一cookie给cookie管理器420,以增加到用来将客户机102的所有cookie关联到客户机102的映射图。中间设备200修改该响应以将cookie从HTTP响应移除并且使用cookie管理器420来进一步将任一客户机102相关的cookie增加到HTTP响应。中间设备200将修改的HTTP响应传送到客户机102。
进一步总的来说,图4B示出客户机102发送请求给中间设备200,此处也称为代理。该请求可以是访问由服务器106提供的任一资源或者任一服务的任一请求。在一些实施例中,该请求是访问web页面或者web站点相关的服务的HTTP请求。在其他实施例中,该请求是建立和服务器106的连接的请求。在进一步的实施例中,该请求是建立和服务器106的会话的请求。在进一步的实施例中,该请求是使用服务器106提供的应用的请求。在又一个实施例中,该请求是访问流文件的请求,诸如音频或者视频文件。在又一个实施例中,该访问是对安全文档的访问。该请求可以包括多个请求。
中间设备200可以处理所接收的请求并且使用cookie管理器420来检查cookie。中间设备可以处理该请求并且建立客户机102所包括的cookie(如果有的话)。处理该请求还可以包括建立唯一客户机标识符来识别和客户机102的任一其它通信。中间设备200可以处理该请求并且将其转发给cookie管理器420。在一些实施例中,中间设备200将请求的一部分转发给cookie管理器420。在一些实施例中,cookie管理器420使用一个或者多个映射图来将诸如客户机的唯一标识符的客户机102关联信息关联或联系到用于由客户机102至服务器106的通信的cookie。类似地,cookie管理器420的映射图可以用来将任一客户机102侧cookie关联到服务器106侧cookie,客户机102使用该客户机侧cookie用于和服务器106的通信。在一些实施例中,来自请求的唯一标识符被匹配到映射表中的名称值对或者cookie。Cookie可以经由cookie管理器420的映射图和客户机102相关联。如果用于客户机102的新的cookie在cookie管理器420的映射图中不是已经存在,则Cookie管理器420可以建立这样的cookie。
在一些实施例中,当中间设备200处理每个请求或者响应时,中间设备200检查所处理的传输中的URL是否是支持服务器侧cookie管理。中间设备200可以调用诸如ProcessRequest()的cookie管理器相关的函数来进行请求处理。Cookie管理器420还可以检查内部映射图,其可以是cookie管理器映射图或者cookie管理器列表,用来帮助确定是否存在需要增加到上行请求的任一输入cookie。Cookie管理器420还可以在映射图内部记录在会话中第一次遇到的所有cookie用于未来的请求。Cookie管理器还可以确保该系统不发送特定的cookie,诸如设备200相关的cookie,到寄载的web应用,诸如NSC_AAAC。在一些实施例中,诸如ProcessRequest()函数的函数可以内部调用另一个函数,诸如FilterCookies()。在一些实施例中,FilterCookies()可以调用ProcessRequest()。在一些实施例中,两组值可以称之为Citrix.Fei.ClientCookies和Citrix.Fei.ServerCookies。cookie管理器420可以使用Citrix.Fei.ClientCookies和Citrix.Fei.ServerCookies来建立分号定界的列表或者内部cookie管理器映射图,此处称为cookie管理器列表或者映射图。该映射图可用在cookie管理的决策制定过程期间使用。Cookie管理器420可以将cookie管理器420中的cookie管理器映射图项目串行组织为两个会话值,Citrix.Fei.ClientCookies和Citrix.Fei.ServerCookies。cookie管理器420还可以使用该两个值来继续该会话或者将该会话关联到客户机102或者服务器106,用于任一未来的传输信息。如果cookie管理器420将客户机102的该请求匹配到映射图中的cookie或者多个cookie,则cookie管理器420可以将该cookie或者该多个cookie传送到设备200。
中间设备200可以修改HTTP请求的首部并且将修改的HTTP请求传送给服务器106。在一些实施例中,cookie管理器420修改该请求来包括和客户机102相关联的cookie或者多个cookie。在一些实施例中,cookei管理器420修改请求的一部分,诸如URL或者首部,来包括识别cookie的值或者一组值或者字符。在一些实施例中,cookie管理器420修改该请求来包括或者增加和客户机102相关联的cookie的一部分。在其他实施例中,cookie管理器420修改该请求来包括或者增加和客户机102相关联的唯一标识符。在进一步的实施例中,cookie管理器420修改该请求来从客户机的该请求来排除或者移除cookie或者唯一标识符。在一些实施例中,中间设备200的任一部件修改该请求来包括cookie管理器420提供的cookie或者多个cookie。
中间设备200可以执行针对该请求的任一数量的修改。在一些实施例中,中间设备200使用一个或者多个cookie的一个或者多个部分来覆盖该请求的一部分。在其他实施例中,中间设备200将一个或者多个cookie的一部分或者一个或者多个cookie的多个部分增加到该请求。仍在进一步的实施例中,中间设备200修改该请求中的cookie。中间设备200可以改变该cookie中的一个或者多个值或者字符,或者以其他方式修改该cookie以通过服务器106可以接受。在又一个实施例中,中间设备200对该请求的一部分进行解密。在进一步的实施例中,中间设备200修改该请求来包括服务器106的任一配置相关的优先设置或者需求。修改的请求可以被改变,使得其可以通过服务器106来处理。中间设备200可以将该修改的请求传送给服务器106。
服务器106可以处理该修改的请求,并且随之将对该请求的响应传送给中间设备200。在一些实施例中,对该请求的响应包括HTTP传输。在进一步的实施例中,该响应包括web页面。在又一个实施例中,该响应包括客户机102所请求的文件。在进一步的实施例中,该响应包括验证服务器106上的客户机102的验证消息。在又一个实施例中,该响应包括用于启动或者打开客户机102和服务器106之间的会话或连接的传输。在进一步的实施例中,该响应包括可执行文件、程序、函数、数据、流文件或者服务器106所提供的任一其它资源或者服务。在一些实施例中,服务器106将对于该请求的多个响应传送给中间设备200。
中间设备200可以将来自HTTP响应的任一cookie发送给cookie管理器420,以增加到cookie管理器420的映射图上。增加到cookie管理器的映射图的任一新的cookie可以用于在客户机102和服务器106之间的未来的传输。在一些实施例中,中间设备修改该回复以将cookie从回复排除。在其他实施例中,中间设备从回复中取出cookie并且将cookie传送给cookie管理器420。Cookie管理器420可以将所接收的cookie和已经保存在映射图中的cookie相比较。在一些实施例中,cookie管理器420响应于确定所接收的cookie没有之前保存在和客户机102或者服务器106相关的映射图来保存所接收的cookie。所保存的cookie可以之后用于同一客户机102的通信。在一些实施例中,到cookie管理器420的传输包括涉及客户机102、服务器106或者客户机102和服务器106二者的任意数量个cookie、或者一部分、cookie或者唯一客户机标识符。
中间设备200修改该响应来将cookie从HTTP响应移除。中间设备还可以使用cookie管理器420来增加任一客户机102相关的cookie到HTTP响应,如果这样的cookie存在或者是必要的。在一些实施例中,中间设备修改、编辑或者改变该响应来排除任一服务器106cookie。在进一步的实施例中,中间设备200修改该响应来使用客户机102cookie来替代服务器106cookie。在又一个实施例中,中间设备200修改该响应来满足客户机102的格式、配置或者优先设置,使得修改的响应可以由客户机102接受或者使用。当处理每个响应或者请求时,中间设备200可以确定服务器侧cookie管理或者客户机侧cookie管理是否可用。在一些实施例中,当服务器侧cookie管理可用时,中间设备200可以调用函数,诸如cookie管理器420函数ProcessRequest()。在多个实施例中,当客户机侧cookie管理可用时,中间设备200可以调用cookie管理器420函数ProcessRequest()或者执行cookie或者唯一标识符管理或内部cookie映射图管理的另一个函数。Cookie管理器420可以检查来自接收的响应或者请求的cookie,查找服务器或者客户机消耗的cookie。在一些实施例中,cookie管理器将从请求或者响应接收的cookie和在映射图中保存或者列出的cookie匹配。Cookie管理器420还可以增加名称值对,如果这样的cookie或者客户机标识符没有之前注册、列在或者分配到映射图中,还需要在映射图中注册或者分配新的cookie或者新的客户机标识符。Cookie管理器420可以因此将新的客户机标识符或者新的cookie增加到映射图中,该新的客户机标识符或者新的cookie可以用在未来和与这样的cookie或者唯一标识符相关的客户机和服务器的通信。在多个实施例中,cookie或者Set-cookie首部可以在发送返回中间设备200时从该响应移除。通过禁止服务器消耗的cookie发送到客户机,系统可以将给定域的多个cookie扩展到超过预定限制的数量。在将cookie数量限制到最大20的系统中,该特征可以用于使得客户机102能够持续使用服务器106上的服务,而不会达到cookie最大二十的限制。这样的实践还可以禁止重要的cookie数据在向外发送敏感信息的防火墙以外的网络空间被访问或者读取。
中间设备200将修改的HTTP响应传送给客户机102。在一些实施例中,修改的响应包括客户机102cookie。在其他实施例中,修改的响应包括服务器106发送到中间设备200的原始请求。在进一步的实施例中,修改的响应包括根据用于处理修改的响应的客户机102或者客户机102应用或者函数的配置或者标准重新格式化的响应的一部分。中间设备200可以响应于所接收的修改的响应来将发往服务器106的另一个请求传送到中间设备200。
中间设备200可以应用访问配置文件、策略、规则和动作的任一个到通过中间设备200的网络业务量的任一级别粒度的部分或者子集。该粒度级别可以基于该配置从细到粗。此处描述的访问配置文件、规则和策略的规则条件、标准或者逻辑可以限定或者指定为应用到经由设备200传输的网络业务量或者传输的任意期望子集或者部分。在一个方面,粒度级别是指配置可以应用到的网络业务量的一部分的级别、测量值、细度或者粗糙度。在配置的十分宽或者粗糙的粒度中,访问配置文件、规则或者策略可应用到所有的网络业务量。在十分细的粒度配置中,访问配置文件或者策略可以应用到特定用户的网络业务量的指定子集,诸如特定用户的特定应用的业务量或者业务量的一部分。在一些粒度的配置中,访问配置文件、策略或者规则应用到发送请求到服务器的任一客户机102。策略、规则或者访问配置文件可以限定为用于或者应用到任一客户机102,并且可以基于客户机102的任一配置或者涉及客户机102的信息,诸如客户机102请求的一部分。类似地,策略、规则或者访问配置文件可以限定为用于或者应用到任一服务器106,并且可以基于客户机106的任一配置或者涉及服务器106的信息,诸如服务器106响应的一部分。在一些粒度的配置中,访问配置文件、策略或者规则限定为应用到客户机102经由设备200用来连接到服务器106的指定会话或者连接。
在进一步的实施例中,访问配置文件、策略或者规则限定为应用到经由SSL VPN会话或者连接来连接的任一客户机102。在进一步的实施例中,访问配置文件、策略或者规则限定为应用到经由免客户机SSL VPN会话或者连接来连接的任一客户机102。在进一步的实施例中,访问配置文件、策略或者规则限定为应用到经由基于客户机的SSL VPN会话或者连接来连接的任一客户机102。在进一步的实施例中,访问配置文件、策略或者规则限定为应用到发送请求到特定服务器106的任一客户机102或者客户机会话。在又一个实施例中,访问配置文件、策略或者规则限定为应用到请求服务器上特定应用或者资源的任意客户机102或者客户机会话。在进一步的实施例中,访问配置文件、策略或者规则限定为基于例如cookie是否被启用或者停用的cookie配置应用到任一客户机102或者客户机会话。在进一步的实施例中,访问配置文件、策略或者规则限定为应用到发送包括特定URL、或者特定URL的一部分的请求的任一客户机102或者客户机会话。在又一个实施例中,访问配置文件、策略或者规则限定为基于通过客户机102发送的请求的一部分和访问配置文件、策略或者规则的短语或者键值之间的匹配来应用到任一客户机102或者客户机会话。在一些实施例中,访问配置文件、策略或者规则限定为基于涉及访问服务器106的客户机102的信息来应用到任一服务器106或者服务器会话。这样的信息可以包括客户机102的请求的一部分或者特征、客户机102的设置或者配置或者任一其它客户机102相关的信息。在一些实施例中,访问配置文件、策略或者规则限定为基于服务器106的配置或者服务器106发送到客户机102的内容的特征来应用到任一服务器106或者服务器会话。
现在参考图4C,示出cookie代理数据流控制的实施例。总的来说,图4C描述客户机102经由管理客户机102和服务器106之间的cookie流的中间设备200和服务器106进行通信。客户机102经由设备发送请求给服务器106,设备也称为中间设备200。该请求包括诸如“GET/index.html HTTP/1.1”的URL。中间设备200拦截通过客户机102发送的请求并且将该请求转发给服务器106。服务器106响应于该请求发出包括cookie的响应,cookie诸如“″HTTP/1.1200OK\nSet-Cookie:name=value”。中间设备200剥离并且保存该cookie并且使用唯一识别客户机102的客户机ID来替换该cookie。唯一客户机ID可以是合并的cookie并且可以和中间设备200中的cookie相关联用于未来的传输。中间设备200将包括唯一客户机ID的修改的响应转发给客户机102。修改的服务器的响应可以包括诸如“HTTP/1.1200OK\nSet-cookie:NSC_AAAC=Unique client ID”的信息。客户机102使用唯一的客户机ID来发送第二请求,诸如“GET/foo.html HTTP/1.1\nCookie:NSC_AAAC=Unique client ID”。中间设备200接收第二请求并且使用该唯一客户机ID获取基于唯一客户机ID保存的cookie。中间设备200修改该请求并且将之前保存的cookie插入到该请求中。修改的第二请求可以格式化为包括在之前传输中所使用的相同的或者类似的cookie,诸如“GET/foo.html HTTP/1.1\nSet-Cookie:name=value”。中间设备200将修改的第二请求发送到服务器106。
进一步参考图4C,客户机102可以通过发送请求到中间设备200初始化和服务器106的通信。在一些实施例中,该请求可以是HTTP请求,诸如“GET/index.html HTTP/1.1”。在一些实施例中,客户机102尝试和服务器106进行第一次通信。在进一步的实施例中,客户机102将意图发往服务器106的任一HTTP请求发送给中间设备200。客户机102可以将任一请求传送到中间设备200来访问服务器200上的资源或者服务。
中间设备200可以将该请求转发给服务器106。在一些实施例中,中间设备200修改该请求并且将修改的请求转发给服务器106。在其他实施例中,中间设备200不修改该请求。在进一步的实施例中,中间设备200将该请求转发给服务器106,而不会修改请求的任一部分。在一些实施例中,中间设备将HTTP请求转发给中间设备200,HTTP请求诸如“GET/index.html HTTP/1.1”。
服务器106可以发布针对该请求的包括cookie的响应。在一些实施例中,该响应可以是例如“HTTP/1.1200OK\nSet-Cookie:name=value”。Cookie可以在响应的首部中或者在响应的任一其它部分中。在一些实施例中,cookie可以包括在响应的URL中。该cookie可以是任一类型和形式的cookie并且可以包括在响应中的任一位置。
中间设备200可以将cookie从响应剥离并且保存并使用唯一识别客户机102的客户机ID来替换cookie。一旦服务器106的响应通过中间设备200接收,则中间设备可以建立cookie存储器,用于客户机的给定域。Cookie存储器可以包括或者保存给定域和诸如客户机102的客户机的cookie的任一集合。在一些实施例中,cookie存储器可以是文件、列表、数据库、阵列、数据结构或者文件夹,其包括任意数量的cookie或者通过cookie所包括的任意数量的信息。在一些实施例中,中间设备200可以从通过服务器106发送的响应首部剥离“Set-Cookie”首部,并且其可以将Set-Cookie首部保存在cookie存储器中。中间设备200还可以产生唯一的cookie代理会话cookie。Cookie代理会话cookie可以包括客户机102可以从服务器106发送的cookie接收的任一相关信息,而不会实际接收该cookie。Cookie代理会话cookie因此可以将所有来自服务器106发送的cookie的相关信息以客户机102或者客户机102的web浏览器可接受的方式传送给客户机102。中间设备200可以将Cookie代理会话cookie插入到cookie存储器或者将Cookie代理会话cookie关联到服务器106发送的相关的和相对应的cookie。在多个实施例中,中间设备200可以将Cookie代理响应cookie插入到从中间设备200发送到客户机102的消息的响应首部。在一些实施例中,中间设备200可以不改变域和路径,而在其它实施例中,中间设备可以改变域或者路径,或者域和路径二者。在一些实施例中,中间设备200将唯一客户机ID插入到从中间设备发送到客户机102的通信的任一部分。
中间设备200可以将修改的响应转发给客户机102。修改的响应可以包括唯一的客户机标识符,诸如唯一的客户机ID。在一些实施例中,修改的响应可以包括客户机102cookie。在进一步的实施例中,修改的响应修改为根据客户机102的配置。在一些实施例中,修改的响应包括服务器106的原始响应,而没有任一改变。修改的服务器的响应可以包括任一HTTP格式的信息,诸如“HTTP/1.1200OK\nSet-Cookie:NSC_AAAC=Unique clientID”。
客户机102使用唯一客户机ID发送第二请求。第二请求可以和第一请求相同、类似或者大体类似。在一些实施例中,第二请求包括和第一请求一样的形式。在进一步的实施例中,第二请求来自传输第一请求的相同应用。在一些实施例中,第二请求是HTTP请求,诸如“GET/foo.html HTTP/1.1\nCookie:NSC_AAAC=Unique client ID”。第二请求可以包括通过中间设备200发布的唯一客户机ID或者唯一客户机ID的一部分。
中间设备200可以修改第二请求来包括和服务器106相关的cookie。中间设备200可以使用和服务器106的cookie相关保存的唯一客户机ID来获取服务器106cookie。中间设备200可以修改第二请求并且将之前保存的cookie插入到第二请求。中间设备200可以修改该请求并且将之前保存的cookie插入到该请求中。在一些实施例中,中间设备200修改该请求以将之前保存的cookie包括在第二请求中。中间设备200可以检查cookie代理会话cookie是否存在。在cookie代理会话cookie存在的情况下,中间设备200基于cookie代理会话cookie来搜索cookie存储器。中间设备200可以使用通过使用cookie代理会话cookie来获取的cookie来找到目的域和路径。中间设备200还可以将cookie或者多个cookie插入到请求代码路径中和/或剥离cookie代理会话cookie。
在一些实施例中,代理200为了标记响应路径可以保存从服务器侧PCB到cookie存储器的基准指针。在进一步的实施例中,代理200为了标记响应路径在cookie中保存从会话信息开始的基准指针。在一些实施例中,如果已经为包括指定客户机102和服务器106的特定会话建立cookie存储器,则中间设备200在同一会话中的第二组通信期间不能建立cookie存储器。相反,中间设备200可以使用和之前对于相同会话所使用的相同的cookie存储器。在一些实施例中,中间设备200可以已经具有对于客户机102和服务器106所建立cookie存储器的基准。在多个实施例中,对于cookie存储器的基准可以通过协议控制块或者PCB、控制器、以及任何软件、数据库、阵列或者包括任一组值的结构来实现。在某个实施例中,如果客户机停用cookie,则来自客户机的随后的请求不可以包括任一cookie代理会话cookie。在一些实施例中,如果客户机停用cookie,则来自客户机的随后的请求可以包括cookie代理会话cookie。在一些实施例中,从服务器106到客户机102的随后的响应可以建立不再参考cookie存储器所用于的客户机102或者服务器106的cookie存储器。在进一步的实施例中,从服务器106到客户机102的随后的响应可以建立参考cookie存储器所用于的客户机102或者服务器106的cookie存储器。
在多个实施例中,其中客户机102和服务器106在给定会话中超过一次通信,中间设备200在第一次通信之后不需要再发送cookie代理会话cookie。中间设备可以使用唯一客户机识别方法来唯一识别客户机102或者服务器106。在一些实施例中,唯一客户机识别方法也称为唯一客户机ID可以用来唯一识别和服务器106通信的客户机102或者和客户机102通信的服务器106。在多个实施例中,唯一客户机ID可以用来唯一识别经由中间设备200和服务器106通信或者发送消息或者请求到服务器106的客户机102。在多个实施例中,唯一客户机ID可用来唯一识别经由中间设备200进行通信或发送消息或者请求至服务器106的服务器106。在一些实施例中,中间设备200使用唯一客户机ID来检测和确定是否代理客户机102所发送的通信。
在多个实施例中,中间设备200可以执行清除cookie,确定不必要的cookie或者终止不必要的cookie。在多个实施例中,中间设备200可以使用从客户机102的PCB到为客户机102所建立的cookie存储器的基准指针。修改的第二请求可以格式化为包括在前一传输中所使用的相同或相似的cookie。在一些实施例中,修改的第二请求是如修改的第二HTTP请求的HTTP请求,诸如“GET/foo.html HTTP/1.1\nSet-Cookie:name=value”。
中间设备200可以将修改的第二请求传送到服务器106。在一些实施例中,中间设备200将任一数量个修改的请求传送给服务器106。修改的请求可以是任意类型、形式和格式。中间设备200因此可以利用cookie存储器来回传送来自客户机102的任一数量个请求和来自服务器106的响应。
Cookie代理可以是任一模块控制、管理或者重新构形的cookie或者利用配置设置的cookie的传输。在一些实施例中,cookie代理可以是cookie管理器420。在多个实施例中,cookie代理可以是cookie管理器420的一部分或者子部件。在多个实施例中,cookie代理可以包括cookie管理器420。在某个实施例中,cookie代理可和cookie管理器420交换使用,并且可以包括cookie管理器420的任一和全部功能性和性能装置。在一些实施例中,cookie管理器420可以称为cookie代理。在多个实施例中,cookie代理可以独立于设备200或者cookie管理器420。在某个实施例中,cookie代理可以是能够独立于中间设备200或者cookie管理器420执行的或者和中间设备的200或者cookie管理器420一起执行的软件程序或者应用。
Cookie代理可以包括基于策略或者策略动作的配置设置。在多个实施例中,用户或者管理员可以配置cookie代理来确定哪个cookie保存到cookie存储器中和哪个cookie不保存在cookie存储器中。在多个实施例中,用户或者管理员对于任一指定域,诸如www.foo.com,可以确定中间设备200是否应该代理cookie1并且允许cookie2、cookie3流过,如同cookie1、cookie2和cookie3中的任一个可以或者不可以是客户机消耗的cookie。
在一些实施例中,cookie代理配置可以使用命令行接口(CLI)语法,诸如:
add/delete/set/unset/show cookieproxy action<action-name>
<ALL[-EXCEPT<cookie-name>,[<cookie-name>,...]]\
<cookie-name>,[<cookie-name>,...]>
此外,cookie代理配置还可以包括其它语法,诸如:
add/delete/set/unset/show cookieproxypolicy<name><rule><jar name>
[-CookieProxyAction<action-name>][<undefAction>]
在多个实施例中,如果用户或者管理员没有指定动作,则cookie代理的缺省行为可以来代理所有的cookie,或者不代理任何cookie,或者代理如通过和cookie代理相关的一组策略确定的cookie的一部分。
汇集操作可以将诸如策略的配置和诸如用户或者资源的实体汇集、集合、联系在一起或相关联。汇集动作可以将配置置于应用到所分配实体的有效状态。在一些实施例中,汇集操作可以将一个实体和另一个实体相关联或者将模块的功能性应用到实体。汇集操作可以是通过cookie代理、或者通过cookie代理的策略所执行的操作。在一些实施例中,通过配置命令,cookie代理可以汇集到虚拟服务器275。在多个实施例中,cookie代理策略可以汇集到负载平衡服务器,GSLB服务器或者VPN服务器。Cookie代理或者中间设备200所使用的策略规则可以是基于任一策略基础结构规则语言(PIRL)的。在一些实施例中,cookie代理或者中间设备200所使用的策略可以在响应时间或者在中间设备或者cookie代理响应请求的时间或者二者期间来评估。在多个实施例中,cookie代理或者中间设备200所使用的策略可以在响应时间期间来评估或者执行。
在一些实施例中,cookie代理方法可以使用分配给每一客户机的唯一客户机ID。唯一客户机ID可以由中间设备200用来将和特定客户机102相关的cookie存储器映射到客户机102。在多个实施例中,客户机也称为客户机102,可以不随同事务一起发送任一唯一客户机ID,该事务也称为通信或者请求。在多个实施例中,cookie代理会话cookie可以用作缺省客户机识别机制或者唯一客户机ID。在一些实施例中,客户机识别可以基于客户机因特网协议地址、请求或者HTTP通信的片段、客户机102或者服务器106所发送的通信的唯一部件、涉及会话的唯一特征、SSL VPN会话cookie或者SSL VPN会话体。在多个实施例中,客户机识别是可配置的。在多个实施例中,客户机识别可以利用客户机102的因特网协议地址(也称为IP地址)来实现。
在决定诸如cookie存储器的大小或者涉及cookie存储器的定时(例如cookie存储器的空闲定时)的多个参数过程中,可以完成cookie存储器清除或者cookie存储器消除。在一些实施例中,cookie存储器清除方法可以使用空闲时间或者存储器阈值的超时。在多个实施例中,cookie存储器清除可以基于和cookie自身相关的配置或者会话超时来实现,会话超时可以导致属于该会话的所有cookie在超时后被清除。在一些实施例中,cookie存储器清除方法可以基于自特定cookie或者cookie存储器最后被使用或者访问所经过的时间多少来确定哪个cookie被清除。
在一些实施例中,CLI语法可以用于存储器和客户机识别,诸如:
add/delete/set/unset/show cookieproxy jar<jar-name>
-clientidentification<default\request based PIXL expression>
-maxMem<Memory limit>
在多个实施例中,缺省可以是,在不支持cookie时,使用由cookie代理模块插入到首部或者URL中的会话cookie。在多个实施例中,策略规则可以用来找到任一唯一首部字段,例如用于LB负载平衡的会话cookie或者用于SSL VPN的cookie。
在多个实施例中,当任一cookie存储器达到最大存储器限制时,最长时间周期无效的会话可能需要被超时并且属于该会话的cookie可能需要被清除。在多个实施例中,时间戳可以关联到每个客户机102、服务器106、客户机/域组合、或者每个客户机-服务器会话、或者任一会话,用来实现基于URL的清除。
Cookie代理或者中间设备200可以利用不同策略或者动作的运行时间的聚合。在多个实施例中,中间设备200或者cookie代理可以使用策略或者动作的运行时间的聚合来减少配置开销或者简化配置修改。在多个实施例中,中间设备200或者cookie代理可以配置为在第一匹配的策略处停止。在一些实施例中,管理员或者用户必须在配置时间期间聚合并且建立合适的策略和动作。在某些实施例中,cookie代理动作的运行时间行为可以部分通过搜索策略或策略列表中的匹配并且在遇到匹配时在该策略处停止来规定。在一些实施例中,cookie代理可以在限定或者包括要被代理的一组cookie或者涉及要被代理的一组cookie的信息的第一策略处停止,其可以减低运行时间的聚合。
Cookie存储器基础结构可以用于cookie数据仓库,然而在一些实施例中,附加的API可以用于基于域或者路径来获取cookie。在一些实施例中,基于哈希的搜索机制可以用来获取cookie代理会话。该方法可以类似于在其它中间设备200相关的应用中所用的SSL VPN会话哈希机制。在多个实施例中,哈希函数的键值可以依赖于客户机识别机制或者客户机识别协议。在多个实施例中,对于不同客户机识别机制可以利用不同的哈希函数。
Cookie数据仓库管理可以依赖于性能或者资源。在一些实施例中,cookie数据仓库通过关联每个域每个客户机的cookie存储器来管理。在多个实施例中,该组cookie名称包括反复在每个cookie存储器中保存的cookie名称。在多个实施例中,所使用的该组cookie名称在cookie存储器之间不同,而在其他实施例中,在多个cookie存储器之间所使用的该组cookie名称包括一些相同或者相似的名称。在一些实施例中,cookie存储器组织成使得cookie存储器可以和特定客户机相关联并且和处理该传输的特定虚拟服务器相关联。在多个实施例中,cookie存储器组织成使得cookie存储器和客户机、虚拟服务器和域相关联。
在一些实施例中,cookie存储器不需要保存和存储器中另一个cookie名称相同的cookie。在某些实施例中,cookie存储器可以包括具有和在诸如HTTP首部的首部中利用的方法类似的方法中的cookie名称相关的值的cookie名称。
Cookie代理可以包括多个功能性。在一些实施例中,cookie代理可以利用cookie代理或者此处讨论的任意数量个实施例来确定浏览器是否可以处理或者接受cookie。在多个实施例中,cookie代理可以确定客户机102或者服务器106发送的请求是否匹配某个标准,用来确定来自客户机或者服务器的浏览器是否接受或者处理cookie。在一些实施例中,如果通过客户机102或者服务器106发送的请求由于能够接受或者处理cookie的标准而匹配标准,则中间设备200可以发送重定向消息给客户机,诸如:
http://incoming_host/incoming_url?new_param_added=secure_client_id
along with a secure_client_id set-cookie.
在一些实施例中,如果客户机返回请求URL,诸如“http://incoming_host/incoming_url?new_param_added=secure_client_id”,则中间设备可以验证唯一的客户机ID是否和cookie值相关联。如果中间设备检测到匹配,中间设备可以剥离已经增加的参数并且可以处理原始请求。此外,中间设备还可以将cookie代理会话标记为使用“cookie代理会话cookie”。在唯一客户机ID不匹配cookie值的情况中,中间设备可以利用诸如体重写的不同方法用于会话跟踪。在这样的方法中,响应体可以重写以在每个HTTP链路中包括会话信息。
在一些实施例中,cookie代理或者中间设备200还可以包括cookie代理cookie存储器,也称为cookie代理会话cookie存储器。Cookie代理cookie存储器可以包括任一多个cookie代理cookie,也称为cookie代理会话cookie。在多个实施例中,Cookie代理cookie存储器可以以类似于cookie存储器的方式来组织或者实现,并且可以包括cookie存储器的所有功能性。
在某些实施例中,Cookie代理cookie存储器可以和高可用性的应用和技术一起运行,高可用性的应用和技术也称为HA技术。在一些实施例中,包括一组cookie和唯一客户机ID的中间设备可以发送cookie和客户机ID到网络上的其他设备。在多个实施例中,包括与客户机102或者服务器106相关的cookie和唯一客户机ID的第一中间设备200可以和第二中间设备200或者多个设备200共享cookie或者唯一客户机ID相关的信息。在第一中间设备和第二设备共享cookie或者唯一客户机ID相关的信息的情况中,第二中间设备还可以使用cookie和唯一客户机ID来实现客户机和服务器之间的通信。
Cookie代理、cookie管理器420或者中间设备200可以包括以脚本或者软件实现的任一数量个软件应用程序或者函数来建立并且管理cookie。在一些实施例中,cookie代理、cookie管理器420或者中间设备200可以包括用于管理cookie存储器的软件代码,诸如:
/*AppSecure Cookie-jar API.*/
/*Create an empty cookie jar*/
as_cookie_jar_t*as_cookie_jar_create(as_allocator_t*allocator);
/*Get value of a cookie,given name*/
as_cookie_t*as_cookie_jar_get(as_cookie_jar_t*cookie_jar,astr_t*name);
/*Add a cookie to the jar.If nodup is set,and a previous cookie exists with the same
name,path,domain,then delete it before adding the new one*/
ns_status_t as_cookie_jar_add(as_cookie_jar_t*cookie_jar,as_cookie_t*cookie,int nodup);
/*Delete cookies with same name,value,path and domain as cookie*/
ns_status_t as_cookie_jar_delete(as_cookie_jar_t*cookie_jar,as_cookie_t*cookie);
/*Delete all name-value pairs given name*/
ns_status_t as cookie_jar_delete_by_name(as cookie_jar_t*cookie_jar,astr_t *name);
/*Destroy cookie-jar*/
void as_cookie_jar_destroy(as_cookie_jar_t*cookie_jar);
/*Parse an http Cookie header cookie string into multiple cookies and add*them to the cookie jar*/
ns_status_t as cookie_jar_parse_cookie(as_cookie_jar_t*cookie_jar,const astr_t*cookie_string);
/*Parse an http Set-Cookie header string into multiple cookies and add them to the cookie jar*/
ns_status_tas_cookie_jar_parse_set_cookie(as_cookie_jar_t*cookie_jar,const astr_t*cookie_string);
/*Stringify cookie jar to use as cookie value in an http request*/
astr_t*as_cookie_jar_to_cookie_string(as_allocator_t*allocator,as_component_t owner,as_cookie_jar_t
*cookie_jar);
/*Stringijy cookie jar to use as the set-cookie value in the http response*/
astr_t*as_cookie_jar_to_set_cookie string(as_allocator_t*allocator,as_component_t owner,as_cookie_jar_t
*cookie_jar);
/*Create an iterator*/
as_cookie_jar_iterator_t * as_cookie_jar_iterator_create(as _allocator_t *allocatoras_component_t owner_id,as_cookie_jar_t*cookie_jar);
int as_cookie_jar_iterator_init(as_allocator_t*allocator,as_component_t owner_id,
as_cookie_jar_t*cookie_jar,as_cookie_jar_iterator_t*iter);int
as_cookie_jar_iterate(as_cookie_jar_iterator_t*iter,as_cookie_t**cookie);
void as_cookie_jar_iterator_destroy(as_allocator_t*allocator,
as_cookie_jar_iterator_t*iter);
int as_cookie_jar_size(as_cookie_jar_t*cookie_jar);
as_cookie_jar_iterator_create(as_allocator_t *allocator,as_component_t owner_id,as_cookie_jart_t*cookie_jar);
cookie管理器或者代理可以响应于策略引擎的一个或者多个策略(包括这些策略的任一规则、条件或者动作)确定何时、如何并且把哪个cookie来管理和/或保存到cookie存储器中,以及上述任一操作。任意策略和对应的cookie操作可以基于会话。在多个实施例中,策略引擎236提供策略或者规则,通过该策略或者规则来确定关于该cookie管理的动作。在一些实施例中,策略引擎236可以包括策略或规则的列表,为中间设备200或者cookie管理器420提供一种方法来确定关于要执行的cookie或者唯一客户机ID的动作。由此,通过配置和策略,中间设备可以提供用于cookie管理的细粒度控制,包括对于免客户机SSL VPN访问。
在一个例子中,服务器可以提供对经由设备200访问不同应用的多个客户机的访问。两个这样的应用可以是应用1和应用2。这两个应用可以使用ASP.NETSESSIONID,其可以是不在客户机侧使用及写入的服务器消耗的cookie。除了ASP.NETSESSIONID,应用1还可以使用cookieAppClientInfo,cookie AppClientInfo可以通过访问或者使用应用1的第一客户机读和写,但不由访问同一应用的第二客户机读写。
在这样的实施例中,设备200处理这样或类似情况的配置可以是:
add patclass app 1_clientconsumed_cookies
bind patclass app1_clientconsumed_cookies AppClientlnfo
set vpn clientlessAccessProfile app1_profile-ClientConsumedCookies
app1_clientconsumed_cookies
add vpn clientlessAccessPolicy app 1_access_pol
″http.req.url.path.get(1).eq(\″app1″)″app1_profile
在访问web应用1和应用2时产生的URL使用条目:/app1来识别。上例中表达的策略对以下实例或者情况可评估为真,即,存在所接收的HTTP请求的URL路径以“/app1/”开始的实例或者情况。这样的HTTP请求的一个例子是“GET/app1/display.asp”。因此,该请求(应用1,或app1)除了命名为AppClientInfo的cookie以外的所有cookie将被代理。
在进一步的例子中,应用2使用可以用在客户机侧或者通过客户机使用的App2ClientCookie1和App2ClientCookie2,但是由其所使用的其它cookie的剩余部分无需被表示。这样的配置可以是:
add patclass app2_clientconsumed_cookies
bind patclass app2_clientconsumed_cookies App2ClientCookie1
bind patclass app2_clientconsumed_cookies App2ClientCookie2
set vpn clientlessAccessProfile app2_profile-ClientConsumedCookies
app2_clientconsumed_cookies
add vpn clientlessAccessPolicy app2_access_pol
″http.req.hostname.set_text_mode(ignorecase).eq(\″app2\″)″app2_profile
在此配置中,应用2(称之为App2)可以寄载在主机名为app2的web服务器上,因此,对于应用2(App2),除了App2ClientCookie1和App2ClientCookie2外的所有cookie将被代理。在这些以及类似例子中,管理员可以配置将为应用2代理的、具有名称AppClientInfo的相同cookie,而不为应用1代理此cookie。类似地,管理员可以基于这样或者类似的用于策略的配置而配置代理或者不代理具有任一名称或者和任一服务或者资源相关的cookie、或者任一客户机102或者服务器106。
在又一个实施例中,配置可以为设置所有站点的所有cookie以免客户机VPN模式来代理。不应该代理的客户机消耗的cookie可以通过指定patclass命令或者指令中的cookie的名称来配置。例如,如果一些应用需要两个cookie出现在客户机侧,如Cookie1和Cookie2,则配置可以标识为:
add patclass app_bypass_cookies
bind patclass app_bypass_cookies Cookie1
bind patclass app_bypass_cookies Cookie2
set vpn clientlessAccessprofile<app_profile>-ClientConsumedCookies
app_bypass_cookies
用于该配置文件的该代码可以之后在clientlessAccessPolicy指令中使用,诸如:
add vpn clientlessAccessPolicy<policyName><rule><vpnclientlessAccessProfile>
上述策略可以使用免客户机访问来选择免客户机访问配置文件,使得代理除了具有名称为Cookie1和Cookie2的Cookie之外的所有Cookie。从而,对于通过策略规则识别的业务量的子集,不可以代理给定组的Cookie。策略规则可以用来选择特定的web应用或者特定的服务器或者服务器上的目录。使用类似上述的配置,对于不同用户组、用户集或者vpn虚拟服务器可以代理不同组的Cookie,其任一个可以依赖于策略的配置限定或者处理哪个实体。
现在参考图5,示出用于经由中间设备的配置驱动Cookie代理的方法的步骤的实施例。总的来说,在步骤505,中间设备从服务器经由SSLVPN会话接收包括一个或者多个Cookie的响应。在步骤510,中间设备识别具有用于代理一个或者多个Cookie的一个或者多个策略的一个或者多个访问配置文件。在步骤515,中间设备响应于一个或者多个策略来确定代理一个或者多个Cookie或者将忽略一个或者多个Cookie。在步骤520,中间设备代理一个或者多个Cookie或者忽略代理一个或者多个Cookie并且将响应转发给客户机。
更详细地,在步骤505,中间设备200从服务器106经由任一会话或者连接来接收包括一个或者多个Cookie的响应。在一些实施例中,中间设备200从任意数量个服务器106接收任意数量个响应,诸如HTTP响应或者包括客户机102请求的内容或者服务的响应。在一些实施例中,中间设备200从服务器106经由SSL VPN会话接收响应。在进一步的实施例中,中间设备200从服务器106经由免客户机SSL VPN会话来接收响应。在进一步的实施例中,中间设备200从服务器106经由基于客户机的SSL VPN会话来接收该响应。在一些实施例中,该响应包括一个或者多个Cookie。该响应可以包括服务器消耗的Cookie,或者通过服务器106使用、读出、编辑或者写入的Cookie。在进一步的实施例中,该响应包括客户机消耗的Cookie或者客户机侧Cookie,或者通过客户机102使用、读出、编辑或者写入的Cookie。在又一个实施例中,该响应包括通过服务器106和通过客户机102使用、读出、编辑或者写入的Cookie。在一些实施例中,该响应包括任一类型、形式和类别的多个Cookie。该Cookie可以用来跟踪客户机会话、维持客户机相关的信息或者协助服务器106和客户机102来共享或者跟踪信息。在一些实施例中,该响应包括URL。该URL可以包括Cookie或者部分Cookie,诸如Cookie值。
在步骤510,中间设备识别具有用于代理一个或者多个Cookie的一个或者多个策略的一个或者多个访问配置文件。中间设备200可以使用中间设备200的任一子部件、单元、函数或者装置来识别一个或者多个访问配置文件。在一些实施例中,诸如策略引擎236的策略引擎可以包括用于识别访问配置文件的一个或者多个策略。访问配置文件可以基于来自服务器106的响应的一部分来识别。访问配置文件可以基于来自服务器106的URL或者URL的一部分来识别。访问配置文件可以基于响应的一部分内容和与响应的一部分内容相关联的访问配置文件的一个或者多个策略的配置来识别。在一些实施例中,访问配置文件可以基于来自服务器106的响应的一部分和访问配置文件的配置之间的匹配来识别,该访问配置文件响应于该匹配来选择访问配置文件的一个或者多个策略。在进一步的实施例中,访问配置文件可以基于来自服务器106的响应的一部分和访问配置文件的策略的配置之间的匹配来识别,该访问配置文件触发一个或者多个匹配的策略的一个或者多个动作。在一些实施例中,访问配置文件基于涉及客户机102会话或者连接的信息和访问配置文件的策略的配置之间的匹配来识别,该访问配置文件触发策略的动作。在进一步的实施例中,访问配置文件可以基于来自响应的基于客户机的Cookie和访问配置文件的策略的配置之间的匹配来识别,该访问配置文件基于和基于客户机的Cookie的匹配来触发策略的动作。在进一步的实施例中,访问配置文件可以基于来自响应的服务器侧的Cookie和访问配置文件的策略的配置之间的匹配来识别,该访问配置文件基于和服务器Cookie的匹配来触发策略的动作。在进一步的实施例中,访问配置文件可以基于客户机的特定组中的客户机102和访问配置文件的策略的配置之间的匹配来识别,该访问配置文件基于和来自客户机组的任一客户机的匹配来触发策略的动作。在进一步的实施例中,访问配置文件可以基于客户机102正访问或者使用的特定应用或者资源或者应用或资源的类型和访问配置文件的策略的配置之间的匹配来识别,该访问配置文件基于该匹配来触发策略的动作。访问配置文件的策略的配置可以基于关于客户机102、服务器106、客户机和服务器所使用的连接或者会话的类型、客户机和服务器的配置、客户机102上的用户、关于客户机102所使用的软件或者应用的信息或者设备200可用的任一其它类型和形式的信息。在一些实施例中,访问配置文件可以基于客户机102正使用的会话或者连接的类型(诸如基于客户机或者免客户机SSL VPN会话)和访问配置文件的策略的配置之间的匹配来识别,该访问配置文件基于该匹配来触发策略的动作。在进一步的实施例中,访问配置文件可以基于关于客户机102所请求的文件、web页面、应用、资源或服务的信息和触发该动作的访问配置文件的策略的配置之间的匹配来识别。在一些实施例中,中间设备为客户机102和服务器106之间的任一传输识别访问配置文件和策略。在一些实施例中,为服务器106的每单个响应或者客户机102的每单个请求识别一个访问配置文件和一个策略。在其他实施例中,为服务器的单个响应或者客户机的单个请求识别任意数量个访问配置文件和访问配置文件的任意数量个策略。
在步骤515,中间设备响应于一个或者多个策略来确定要执行的代理动作。在一些实施例中,中间设备响应于一个或者多个已识别访问配置文件的一个或者多个已识别策略来确定代理还是不代理响应的Cookie。在进一步的实施例中,中间设备确定如何代理该Cookie。通过策略的配置触发的策略的动作可以包括代理Cookie或者忽略代理Cookie。代理Cookie可以包括Cookie的任一处理,诸如产生、终止、插入、移除、重写或者以其他方式编辑或者变换响应的任一Cookie。在一些实施例中,代理Cookie可以包括将来自服务器106的响应或者来自客户机102的请求的Cookie重写、编辑、移除或者插入。代理Cookie还可以包括中间设备200产生、终止、修改、插入或者移除来往传输的Cookie,诸如通过设备200的来自服务器106的响应和来自客户机102的请求。策略可以确定设备200应该忽略代理或者设备不应该代理来自传输的cookie。在这样的实施例中,设备200简单地不修改或者改变或者以其他方式处理来自传输的cooKie。根据策略的配置或者设置,cookie可以以多种方式来处理。在一些实施例中,设备200确定为通过该设备200的响应或者请求来产生新的cookie。在进一步的实施例中,设备200确定修改来自响应或者请求的cookie的值。在进一步的实施例中,设备200确定重写来自响应或者请求的cookie的一部分。在进一步的实施例中,设备200确定将和客户机102或者服务器106关联的cookie插入到客户机102和服务器106之间的传输中。在又一个实施例中,设备200确定从客户机102和服务器106之间的信息移除cookie。在进一步的实施例中,设备确定终止用于在客户机102和服务器106之间的传输的cookie。还可以通过可包括或者指向用于制定或实现这些和类似决定的任意数量个步骤或者指令的策略来指定这些和类似的动作。
在步骤520,中间设备可以实现通过访问配置文件的策略确定的任一动作。在一些实施例中,中间设备代理一个或者多个Cookie或者忽略代理一个或者多个Cookie并且将响应转发给客户机102。在进一步的实施例中,中间设备代理一个或者多个Cookie或者忽略代理一个或者多个Cookie并且将响应转发给服务器106。中间设备可以按照配置所识别或者匹配的策略的一个或者多个动作所指示或者指定的方式来代理cookie。在一些实施例中,中间设备200产生cookie。在其他实施例中,中间设备200终止cookie。在一些实施例中,中间设备转发该响应或者请求,而不会对响应或者请求中的一个或多个cookie采取任何动作。在进一步的实施例中,中间设备按照由所识别的访问配置文件或由所识别的策略的动作所指示或者识别的方式来修改来自该响应或者请求的cookie。中间设备200在所采用或者执行的动作之后可以将该请求或者响应转发给目的地。在一些实施例中,中间设备200将该请求转发给服务器106。在其他实施例中,中间设备200将该响应转发给客户机102。
Claims (40)
1.一种用于通过中间设备对一个或者多个服务器和一个或者多个客户机之间的cookie进行配置驱动代理的方法,该中间设备在一个或者多个客户机和一个或者多个服务器之间建立SSL VPN会话,该方法包括:
(a)该中间设备经由中间设备在服务器和客户机之间建立的免客户机SSL VPN会话从服务器接收对于客户机的请求的响应,该响应包括一个或者多个cookie;
(b)该中间设备识别用于免客户机SSL VPN会话的访问配置文件,该访问配置文件识别用于代理cookie的一个或者多个策略;和
(c)该中间设备响应访问配置文件的一个或者多个策略来确定是否为客户机代理一个或者多个cookie或者忽略一个或者多个cookie的代理。
2.权利要求1的方法,其中,步骤(a)还包括该中间设备经由该响应来接收一个或者多个cookie中的客户机消耗的cookie,其中步骤(b)还包括该访问配置文件识别包括对于客户机消耗的cookie的cookie代理动作的策略,并且步骤(c)还包括中间设备响应于该策略来忽略客户机消耗的cookie的代理。
3.权利要求2的方法,还包括该中间设备在转发给客户机的响应中保留客户机消耗的cookie。
4.权利要求1的方法,其中步骤(a)还包括该中间设备经由响应来接收一个或者多个cookie中的服务器cookie,并且其中步骤(c)还包括中间设备代理该服务器cookie。
5.权利要求4的方法,还包括该中间设备从响应中移除服务器cookie并且将响应转发给客户机。
6.权利要求1的方法,其中步骤(c)包括该中间设备响应于经由一个或者多个策略确定客户机不支持该一个或者多个cookie来代理响应中的一个或者多个cookie。
7.权利要求1的方法,其中步骤(b)包括该访问配置文件识别出用于限定对于指定域名的服务器消耗的cookie的cookie代理动作的策略,并且其中步骤(c)包括该中间设备如策略动作所指定对该响应进行修改。
8.权利要求1的方法,还包括该中间设备基于应用类型的标识来经由请求或者响应识别访问配置文件。
9.权利要求1的方法,还包括该访问配置文件基于用户或者用户组的标识来识别出包括忽略代理一个或者多个cookie的一个cookie的cookie代理动作的策略。
10.权利要求1的方法,还包括该访问配置文件基于中间设备的虚拟服务器的标识来识别出忽略代理一个或者多个cookie的一个cookie的策略。
11.权利要求1的方法,其中步骤(c)还包括除非访问配置文件的一个或者多个策略识别出一个或者多个cookie的一个cookie将被忽略,否则中间设备代理响应的一个或者多个cookie。
12.一种用于对一个或者多个服务器和一个或者多个客户机之间的cookie进行配置驱动代理的中间设备,该中间设备在一个或者多个服务器和一个或者多个客户机之间建立SSL VPN会话,该中间设备包括:
用于从服务器经由免客户机SSL VPN会话接收对于客户机请求的响应的包引擎,该免客户机SSL VPN会话由中间设备在服务器和客户机之间建立,该响应包括一个或者多个cookie;
用于识别对于免客户机SSL VPN会话的访问配置文件的策略引擎,该访问配置文件识别用于代理cookie的一个或者多个策略;以及
其中,该中间设备响应于访问配置文件的一个或者多个策略来确定为客户机代理一个或者多个cookie或者忽略代理一个或者多个cookie。
13.权利要求12的中间设备,其中,该包引擎经由响应接收一个或者多个cookie中的客户机消耗的cookie,该访问配置文件识别包括对于客户机消耗的cookie的cookie代理动作的策略,并且其中该中间设备还响应于该策略来确定忽略对客户机消耗的cookie的代理。
14.权利要求13的中间设备,其中,该中间设备在转发给客户机的响应中保留客户机消耗的cookie。
15.权利要求12的中间设备,其中,该包引擎经由响应来接收一个或者多个cookie中的服务器cookie,并且其中该中间设备响应于一个或者多个策略来代理该服务器cookie。
16.权利要求15的中间设备,其中,该中间设备从响应中移除服务器cookie并且将响应转发给客户机。
17.权利要求12的中间设备,其中,该中间设备响应于经由一个或者多个策略确定客户机不支持一个或者多个cookie来代理响应中的一个或者多个cookie。
18.权利要求12的中间设备,其中,该策略引擎经由访问配置文件识别出对于指定域名的服务器消耗的cookie限定cookie代理动作的一个或者多个策略中的一个策略,并且其中该中间设备如策略动作所指定对响应进行修改。
19.权利要求12的中间设备,其中,该策略引擎基于应用类型的标识来经由请求或者响应识别访问配置文件。
20.权利要求12的中间设备,其中,该策略引擎基于用户或者用户组的标识来经由访问配置文件识别出包括忽略代理一个或者多个cookie的一个cookie的cookie代理动作的策略。
21.一种通过中间设备为客户机管理cookie的方法,该方法包括:
中间设备从服务器接收对于客户机请求的响应,该响应包括URL和cookie;
该中间设备通过将cookie从响应移除并且将唯一的客户机标识符插入URL来修改该响应;
该中间设备保存和唯一客户机标识符相关的所移除的cookie;并且
该中间设备将修改的响应转发到客户机。
22.权利要求21的方法,包括cookie管理器将与响应所包括的cookie相关联的一个或者多个值匹配到多个cookie中的一个cookie。
23.权利要求22的方法,其中,所述修改是响应于该匹配的。
24.权利要求21的方法,还包括:
该中间设备从客户机接收请求,该请求包括请求URL;和
Cookie管理器将请求的URL和多个cookie中的所移除的cookie匹配。
25.权利要求21的方法,还包括:
该中间设备通过增加已移除的cookie来修改请求的URL;并且
该中间设备将修改的请求URL转发给服务器。
26.权利要求24的方法,其中,多个cookie和请求URL所提供的至少一个域名或者至少一个路径相关联。
27.权利要求24的方法,还包括该中间设备响应于该匹配从cookie管理器接收一个或者多个名称值对。
28.权利要求21的方法,其中,该响应包括多个cookie并且修改的响应包括和多个cookie相关联的多个客户机标识符。
29.权利要求21的方法,其中,该唯一客户机标识符是包括cookie的一部分的cookie代理会话cookie。
30.权利要求21的方法,还包括:
该中间设备从客户机接收请求,该请求包括cookie代理会话cookie,cookie代理会话cookie包括所述cookie的一部分;
该中间设备将cookie代理会话cookie匹配到所述cookie;
该中间设备通过将cookie代理会话cookie从请求移除并且将该cookie增加到请求来修改该请求;并且
该中间设备将该修改后的请求转发给服务器。
31.一种用于使用网络上的代理来管理cookie的中间设备,该中间设备包括:
中间设备的包引擎从服务器接收对于客户机请求的响应,该响应包括URL和cookie;
中间设备的cookie代理,用于通过将cookie从响应中移除并且将唯一的客户机标识符插入URL来修改该响应;
中间设备的cookie管理器,用于保存和唯一客户机标识符相关的所移除的cookie;以及
该中间设备用于将修改的响应转发到客户机。
32.权利要求31的中间设备,其中,该响应还包括和所述cookie相关联的一个或者多个值,并且其中该cookie管理器将与该cookie相关联的一个或者多个值匹配到来自多个cookie中的一个cookie。
33.权利要求32的中间设备,其中,该修改是响应于该匹配的。
34.权利要求31的中间设备,其中,该包引擎从客户机接收请求,该请求包括请求URL,并且Cookie管理器将请求URL匹配到多个cookie中的所移除的cookie。
35.权利要求31的中间设备,其中,该中间设备:
通过增加已移除的cookie来修改请求URL;并且
将修改的请求URL转发给服务器。
36.权利要求34的中间设备,其中,该多个cookie和请求URL所提供的至少一个域名或者至少一个路径相关联。
37.权利要求34的中间设备,其中,该中间设备响应于该匹配从cookie管理器接收一个或者多个名称值对。
38.权利要求31的中间设备,其中,该响应包括多个cookie并且该修改的响应包括和多个cookie相关联的多个客户机标识符。
39.权利要求31的中间设备,其中,该唯一客户机标识符是包括cookie所包括的一部分信息的cookie代理会话cookie。
40.权利要求31的中间设备,其中,该中间设备:
从客户机接收请求,该请求包括cookie代理会话cookie,cookie代理会话cookie包括cookie的一部分;
将cookie代理会话cookie匹配到该cookie;
通过将cookie代理会话cookie从请求移除并且将该cookie增加到该请求来修改该请求;和
将该修改的请求转发给服务器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2384908P | 2008-01-26 | 2008-01-26 | |
US61/023849 | 2008-01-26 | ||
US61/023,849 | 2008-01-26 | ||
PCT/US2009/032046 WO2009094657A1 (en) | 2008-01-26 | 2009-01-26 | Systems and methods for fine grain policy driven cookie proxying |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101984778A true CN101984778A (zh) | 2011-03-09 |
CN101984778B CN101984778B (zh) | 2014-08-13 |
Family
ID=40530860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980109863.XA Expired - Fee Related CN101984778B (zh) | 2008-01-26 | 2009-01-26 | 用于细粒度策略驱动的cookie代理的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US8090877B2 (zh) |
EP (1) | EP2241081B1 (zh) |
CN (1) | CN101984778B (zh) |
WO (1) | WO2009094657A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139185A (zh) * | 2011-12-02 | 2013-06-05 | 中科信息安全共性技术国家工程研究中心有限公司 | 一种实现安全反向代理服务的方法 |
WO2013117157A1 (zh) * | 2012-02-10 | 2013-08-15 | 北京奇虎科技有限公司 | 多账号登录方法及装置 |
CN104144155A (zh) * | 2013-05-10 | 2014-11-12 | 百度在线网络技术(北京)有限公司 | 用于长连接的会话处理系统和会话处理方法 |
CN104935551A (zh) * | 2014-03-18 | 2015-09-23 | 杭州迪普科技有限公司 | 一种网页篡改防护装置及方法 |
CN104933058A (zh) * | 2014-03-18 | 2015-09-23 | 北京学之途网络科技有限公司 | 一种监测网络访问活动的方法和系统 |
CN106031097A (zh) * | 2015-01-14 | 2016-10-12 | 华为技术有限公司 | 业务处理方法及装置 |
CN107005567A (zh) * | 2014-12-12 | 2017-08-01 | 微软技术许可有限责任公司 | 实现通信事件 |
CN107430514A (zh) * | 2016-03-22 | 2017-12-01 | 谷歌公司 | 使用多服务器的低延迟应用 |
CN112788103A (zh) * | 2020-12-25 | 2021-05-11 | 江苏省未来网络创新研究院 | 一种基于nginx+lua解决同应用多实例web代理访问冲突的方法 |
WO2022036833A1 (zh) * | 2020-08-18 | 2022-02-24 | 厦门网宿有限公司 | cookie管理方法、中间节点及WebVPN系统 |
Families Citing this family (128)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418504B2 (en) | 1998-10-30 | 2008-08-26 | Virnetx, Inc. | Agile network protocol for secure communications using secure domain names |
US6839759B2 (en) | 1998-10-30 | 2005-01-04 | Science Applications International Corp. | Method for establishing secure communication link between computers of virtual private network without user entering any cryptographic information |
US6502135B1 (en) | 1998-10-30 | 2002-12-31 | Science Applications International Corporation | Agile network protocol for secure communications with assured system availability |
CA2349520C (en) | 1998-10-30 | 2011-05-17 | Science Applications International Corporation | An agile network protocol for secure communications with assured system availability |
US10511573B2 (en) | 1998-10-30 | 2019-12-17 | Virnetx, Inc. | Agile network protocol for secure communications using secure domain names |
US7360075B2 (en) | 2001-02-12 | 2008-04-15 | Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. | Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols |
US7383329B2 (en) * | 2001-02-13 | 2008-06-03 | Aventail, Llc | Distributed cache for state transfer operations |
US7958167B2 (en) * | 2008-03-05 | 2011-06-07 | Microsoft Corporation | Integration of unstructed data into a database |
US8117325B1 (en) | 2008-04-29 | 2012-02-14 | Juniper Networks, Inc. | Policy-based cross-domain access control for SSL VPN |
US8224936B2 (en) * | 2008-05-21 | 2012-07-17 | Cisco Technology, Inc. | Configuration file override |
US7986690B2 (en) * | 2008-08-12 | 2011-07-26 | Cisco Technology, Inc. | Inter-gateway cloned device detector using provisioning request analysis |
US8335917B2 (en) | 2008-08-12 | 2012-12-18 | Cisco Technology, Inc. | System for binding a device to a gateway to regulate service theft through cloning |
JP5135135B2 (ja) * | 2008-09-11 | 2013-01-30 | 株式会社日立製作所 | アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置 |
US8363658B1 (en) | 2008-11-13 | 2013-01-29 | Sprint Communications Company L.P. | Dynamic firewall and dynamic host configuration protocol configuration |
US8479266B1 (en) | 2008-11-13 | 2013-07-02 | Sprint Communications Company L.P. | Network assignment appeal architecture and process |
US8341717B1 (en) * | 2008-11-13 | 2012-12-25 | Sprint Communications Company L.P. | Dynamic network policies based on device classification |
US8914510B2 (en) * | 2008-11-17 | 2014-12-16 | At&T Intellectual Property I, L.P. | Methods, systems, and computer program products for enhancing internet security for network subscribers |
US8849988B2 (en) * | 2008-11-25 | 2014-09-30 | Citrix Systems, Inc. | Systems and methods to monitor an access gateway |
US9104778B2 (en) | 2008-12-02 | 2015-08-11 | Trueffect, Inc. | Cookie derivatives |
US9026641B2 (en) * | 2009-05-20 | 2015-05-05 | Genieo Innovation Ltd. | System and method for management of information streams delivered for use by a user |
US20100299517A1 (en) * | 2009-05-22 | 2010-11-25 | Nuvon, Inc. | Network System with a Plurality of Networked Devices with Various Connection Protocols |
US20110055021A1 (en) * | 2009-08-31 | 2011-03-03 | Digital River, Inc. | Affiliate Network Hybrid Tracking System and Method |
WO2011079182A2 (en) * | 2009-12-23 | 2011-06-30 | Citrix Systems, Inc. | Systems and methods for managing ports for rtsp across cores in a multi-core system |
US8635367B2 (en) * | 2009-12-23 | 2014-01-21 | Citrix Systems, Inc. | Systems and methods for managing static proximity in multi-core GSLB appliance |
US8412832B2 (en) * | 2009-12-23 | 2013-04-02 | Citrix Systems, Inc. | Systems and methods for GSLB MEP connection management across multiple core appliances |
US8654659B2 (en) | 2009-12-23 | 2014-02-18 | Citrix Systems, Inc. | Systems and methods for listening policies for virtual servers of appliance |
US8452835B2 (en) | 2009-12-23 | 2013-05-28 | Citrix Systems, Inc. | Systems and methods for object rate limiting in multi-core system |
US20120084348A1 (en) * | 2009-12-30 | 2012-04-05 | Wei-Yeh Lee | Facilitation of user management of unsolicited server operations |
US20120084349A1 (en) * | 2009-12-30 | 2012-04-05 | Wei-Yeh Lee | User interface for user management and control of unsolicited server operations |
US20110161172A1 (en) * | 2009-12-30 | 2011-06-30 | Wei-Yeh Lee | System and method for providing user control of the user's network usage data and personal profile information |
US9350702B2 (en) * | 2010-02-17 | 2016-05-24 | Hewlett Packard Enterprise Development Lp | Virtual insertion into a network |
US8799640B2 (en) * | 2010-02-27 | 2014-08-05 | Novell, Inc. | Techniques for managing a secure communication session |
FR2958478B1 (fr) * | 2010-04-02 | 2012-05-04 | Sergio Loureiro | Procede de securisation de donnees et/ou des applications dans une architecture informatique en nuage |
US9706035B2 (en) * | 2010-06-22 | 2017-07-11 | Qualcomm Incorporated | Method and apparatus for supporting operator specific profiles in wireless communications |
US8484287B2 (en) * | 2010-08-05 | 2013-07-09 | Citrix Systems, Inc. | Systems and methods for cookie proxy jar management across cores in a multi-core system |
US10127335B2 (en) | 2010-08-22 | 2018-11-13 | Qwilt, Inc | System and method of performing analytics with respect to content storing servers caching popular content |
US11032583B2 (en) | 2010-08-22 | 2021-06-08 | QWLT, Inc. | Method and system for improving high availability for live content |
US10097863B2 (en) | 2010-08-22 | 2018-10-09 | Qwilt, Inc. | System and method for live service content handling with content storing servers caching popular content therein |
US9723073B2 (en) | 2010-08-22 | 2017-08-01 | Qwilt, Inc. | System for detection of content servers and caching popular content therein |
US10097428B2 (en) * | 2010-08-22 | 2018-10-09 | Qwilt, Inc. | System and method for caching popular content respective of a content strong server in an asymmetrical routing topology |
US8650249B2 (en) | 2010-10-13 | 2014-02-11 | International Business Machines Corporation | Selectively processing cookies in a proxy |
US8495195B1 (en) | 2010-11-04 | 2013-07-23 | Sprint Communications Company L.P. | Cookie preservation when switching devices |
US8689303B1 (en) * | 2010-11-04 | 2014-04-01 | Sprint Communications Company L.P. | Cookie-handling gateway |
US8984164B2 (en) | 2010-11-09 | 2015-03-17 | Usablenet Inc. | Methods for reducing latency in network connections and systems thereof |
US8775606B2 (en) * | 2010-12-02 | 2014-07-08 | Yahoo! Inc. | System and method for counting network users |
US8856792B2 (en) | 2010-12-17 | 2014-10-07 | Microsoft Corporation | Cancelable and faultable dataflow nodes |
US9841956B2 (en) * | 2011-01-31 | 2017-12-12 | Sap Se | User interface style guide compliance reporting |
US9052845B2 (en) | 2011-01-31 | 2015-06-09 | Sap Se | Unified interface for meta model checking, modifying, and reporting |
US9459846B2 (en) | 2011-01-31 | 2016-10-04 | Sap Se | User interface style guide compliance |
US9461878B1 (en) | 2011-02-01 | 2016-10-04 | Palo Alto Networks, Inc. | Blocking download of content |
US8683559B2 (en) * | 2011-04-15 | 2014-03-25 | Exceedland Incorporated | Method and system of serving subscribed contents from multiple sources via a global communications network |
FR2974471B1 (fr) * | 2011-04-19 | 2013-04-19 | Sephira | Traitement de donnees pour permettre l'acces a un service heberge dans un serveur |
US10834167B1 (en) * | 2011-06-02 | 2020-11-10 | Amazon Technologies, Inc. | Client side navigation compositor |
KR101095447B1 (ko) * | 2011-06-27 | 2011-12-16 | 주식회사 안철수연구소 | 분산 서비스 거부 공격 차단 장치 및 방법 |
US8775628B2 (en) * | 2011-08-31 | 2014-07-08 | Metaswitch Networks Ltd. | Load balancing for SIP services |
US8683220B2 (en) * | 2011-09-29 | 2014-03-25 | Mcafee, Inc. | System and method for securing database activity |
CN102404223B (zh) * | 2011-11-28 | 2015-03-25 | 曙光信息产业(北京)有限公司 | 一种多应用收包细粒度优先级控制系统和方法 |
CN102594796B (zh) * | 2011-12-27 | 2015-05-20 | 中兴通讯股份有限公司 | 一种终端设备及用户信息同步方法 |
GB2498566A (en) * | 2012-01-20 | 2013-07-24 | Dolphin Speed Networks Ltd | Authenticating a user at a proxy using cookies |
US9152820B1 (en) * | 2012-03-30 | 2015-10-06 | Emc Corporation | Method and apparatus for cookie anonymization and rejection |
US9699169B2 (en) * | 2012-05-10 | 2017-07-04 | Symantec Corporation | Computer readable storage media for selective proxification of applications and method and systems utilizing same |
US9621667B2 (en) * | 2012-08-27 | 2017-04-11 | Adobe Systems Incorporated | Streaming media with a server identified at runtime |
JP6007697B2 (ja) * | 2012-09-19 | 2016-10-12 | 沖電気工業株式会社 | キャッシュ装置、キャッシュプログラム及びコンテンツ配信システム |
EP2711861A1 (en) * | 2012-09-20 | 2014-03-26 | Alcatel-Lucent | Method and system of controlling changes in an operating system |
US9253011B2 (en) * | 2012-09-27 | 2016-02-02 | Intuit Inc. | Session-server affinity for clients that lack session identifiers |
US9166979B2 (en) * | 2012-10-01 | 2015-10-20 | International Business Machines Corporation | Protecting online meeting access using secure personal universal resource locators |
WO2014071605A1 (zh) * | 2012-11-09 | 2014-05-15 | 华为技术有限公司 | 处理报文的方法、转发面装置及网络设备 |
US20140164447A1 (en) * | 2012-12-12 | 2014-06-12 | Akamai Technologies Inc. | Cookie synchronization and acceleration of third-party content in a web page |
CN103944942B (zh) * | 2013-01-22 | 2018-04-27 | 腾讯科技(深圳)有限公司 | 一种多web环境的数据访问方法和装置 |
US9148350B1 (en) | 2013-03-11 | 2015-09-29 | Amazon Technologies, Inc. | Automated data synchronization |
US10313345B2 (en) | 2013-03-11 | 2019-06-04 | Amazon Technologies, Inc. | Application marketplace for virtual desktops |
US10142406B2 (en) | 2013-03-11 | 2018-11-27 | Amazon Technologies, Inc. | Automated data center selection |
US9002982B2 (en) * | 2013-03-11 | 2015-04-07 | Amazon Technologies, Inc. | Automated desktop placement |
US9344426B2 (en) * | 2013-05-14 | 2016-05-17 | Citrix Systems, Inc. | Accessing enterprise resources while providing denial-of-service attack protection |
US9674192B2 (en) * | 2013-06-11 | 2017-06-06 | Gigamon Inc. | Security access for a switch device |
US10108987B2 (en) | 2013-06-21 | 2018-10-23 | Iheartmedia Management Services, Inc. | E-mail based dynamic advertising |
US10686646B1 (en) | 2013-06-26 | 2020-06-16 | Amazon Technologies, Inc. | Management of computing sessions |
US10623243B2 (en) | 2013-06-26 | 2020-04-14 | Amazon Technologies, Inc. | Management of computing sessions |
US9386104B2 (en) * | 2013-08-22 | 2016-07-05 | Juniper Networks Inc. | Preventing extraction of secret information over a compromised encrypted connection |
US10051066B1 (en) * | 2013-11-06 | 2018-08-14 | Google Llc | Sharing panelist information without providing cookies |
US9106620B2 (en) | 2013-11-14 | 2015-08-11 | Comcast Cable Communications, Llc | Trusted communication session and content delivery |
CN103699394B (zh) * | 2014-01-08 | 2017-04-12 | 夏夀民 | 一种基于多方交流协议自动生成软件系统交互框架的方法 |
US10154110B2 (en) | 2014-04-22 | 2018-12-11 | Qwilt, Inc. | System and methods thereof for delivery of popular content using a multimedia broadcast multicast service |
US10019533B2 (en) | 2014-05-27 | 2018-07-10 | AVAST Software s.r.o. | Method for regulating usage of a browser store for a web browser featuring tabbed web page viewing based on browser activity |
US9602543B2 (en) * | 2014-09-09 | 2017-03-21 | Shape Security, Inc. | Client/server polymorphism using polymorphic hooks |
US10425446B2 (en) * | 2014-09-29 | 2019-09-24 | Akamai Technologies, Inc. | HTTPS request enrichment |
US9565271B1 (en) * | 2014-10-10 | 2017-02-07 | Go Daddy Operating Company, LLC | Methods for website version control using bucket cookies |
US10037422B2 (en) * | 2015-01-21 | 2018-07-31 | Open Text Sa Ulc | Systems and methods for integrating with a native component using a network interface |
US10505850B2 (en) | 2015-02-24 | 2019-12-10 | Qualcomm Incorporated | Efficient policy enforcement using network tokens for services—user-plane approach |
US10516743B1 (en) * | 2015-03-24 | 2019-12-24 | Quest Software Inc. | Systems and methods for facilitating portable user sessions |
US9716701B1 (en) * | 2015-03-24 | 2017-07-25 | Trend Micro Incorporated | Software as a service scanning system and method for scanning web traffic |
US10157350B2 (en) * | 2015-03-26 | 2018-12-18 | Tata Consultancy Services Limited | Context based conversation system |
WO2017125161A1 (en) | 2016-01-21 | 2017-07-27 | Hewlett Packard Enterprise Development Lp | Resource allocation |
US10356112B2 (en) * | 2016-03-10 | 2019-07-16 | Huawei Technologies Co., Ltd. | Method of mitigating cookie-injection and cookie-replaying attacks |
EP3398311B1 (en) * | 2016-03-31 | 2021-05-26 | NEC Laboratories Europe GmbH | Method and system for preserving privacy in an http communication between a client and a server |
US10574706B2 (en) * | 2016-05-29 | 2020-02-25 | Flash Networks, Ltd | Method and system for upload optimization |
US10142440B2 (en) * | 2016-07-29 | 2018-11-27 | International Business Machines Corporation | Enforced registry of cookies in a tiered delivery network |
US10021194B2 (en) * | 2016-08-02 | 2018-07-10 | International Business Machines Corporation | Enforced registry of cookies through a theme template |
US10938915B1 (en) * | 2016-08-16 | 2021-03-02 | United Services Automobile Association (Usaa) | Session data isolation and management |
EP3300335B1 (en) * | 2016-09-22 | 2021-07-21 | InterDigital CE Patent Holdings | Device and method for data packet processing |
US10778684B2 (en) | 2017-04-07 | 2020-09-15 | Citrix Systems, Inc. | Systems and methods for securely and transparently proxying SAAS applications through a cloud-hosted or on-premise network gateway for enhanced security and visibility |
US10984452B2 (en) * | 2017-07-13 | 2021-04-20 | International Business Machines Corporation | User/group servicing based on deep network analysis |
US10949486B2 (en) | 2017-09-20 | 2021-03-16 | Citrix Systems, Inc. | Anchored match algorithm for matching with large sets of URL |
US10565106B2 (en) | 2017-11-29 | 2020-02-18 | International Business Machines Corporation | Garbage collection of nuisance cookies |
US11190492B2 (en) * | 2017-12-01 | 2021-11-30 | Twingate, Inc. | Local interception of traffic to a remote forward proxy |
US11106631B2 (en) * | 2017-12-12 | 2021-08-31 | International Business Machines Corporation | Cookie exclusion protocols |
US11075922B2 (en) * | 2018-01-16 | 2021-07-27 | Oracle International Corporation | Decentralized method of tracking user login status |
US11194930B2 (en) * | 2018-04-27 | 2021-12-07 | Datatrendz, Llc | Unobtrusive systems and methods for collecting, processing and securing information transmitted over a network |
GB2563497B (en) * | 2018-05-18 | 2019-10-09 | Qip Solutions Ltd | Data filtering |
US10992759B2 (en) | 2018-06-07 | 2021-04-27 | Sap Se | Web application session security with protected session identifiers |
US10972481B2 (en) * | 2018-06-07 | 2021-04-06 | Sap Se | Web application session security |
US10951588B2 (en) | 2018-07-26 | 2021-03-16 | Palo Alto Networks, Inc. | Object property getter and setter for clientless VPN |
US10831836B2 (en) | 2018-07-26 | 2020-11-10 | Palo Alto Networks, Inc. | Browser storage for clientless VPN |
US11093574B2 (en) | 2018-07-26 | 2021-08-17 | Palo Alto Networks, Inc. | Encoding-free javascript stringify for clientless VPN |
US10958745B2 (en) * | 2018-09-06 | 2021-03-23 | Linda M. Spulak | System and method for the creation, management, and delivery of personal cookie-like packets of information to be utilized as reverse cookies within network-based environments |
WO2020068875A1 (en) * | 2018-09-24 | 2020-04-02 | Andrew Robinson | Virtual private network environment for application unification over a public network |
US10965659B2 (en) * | 2018-11-09 | 2021-03-30 | International Business Machines Corporation | Real-time cookie format validation and notification |
US11030295B2 (en) * | 2018-12-20 | 2021-06-08 | Sap Se | Enabling webGUI access to target systems |
US11122086B2 (en) | 2019-05-30 | 2021-09-14 | International Business Machines Corporation | Cookie compliance management |
US11108763B2 (en) * | 2020-01-09 | 2021-08-31 | Cisco Technology, Inc. | Intelligent identity-aware application proxy |
US11190550B1 (en) | 2021-04-22 | 2021-11-30 | Netskope, Inc. | Synthetic request injection to improve object security posture for cloud security enforcement |
US11336698B1 (en) | 2021-04-22 | 2022-05-17 | Netskope, Inc. | Synthetic request injection for cloud policy enforcement |
US11178188B1 (en) | 2021-04-22 | 2021-11-16 | Netskope, Inc. | Synthetic request injection to generate metadata for cloud policy enforcement |
US11647052B2 (en) * | 2021-04-22 | 2023-05-09 | Netskope, Inc. | Synthetic request injection to retrieve expired metadata for cloud policy enforcement |
US11271973B1 (en) | 2021-04-23 | 2022-03-08 | Netskope, Inc. | Synthetic request injection to retrieve object metadata for cloud policy enforcement |
US11271972B1 (en) | 2021-04-23 | 2022-03-08 | Netskope, Inc. | Data flow logic for synthetic request injection for cloud security enforcement |
WO2023107572A1 (en) * | 2021-12-07 | 2023-06-15 | Eric Lee | Systems and methods for facilitating privacy disclosure and consent |
US11943260B2 (en) | 2022-02-02 | 2024-03-26 | Netskope, Inc. | Synthetic request injection to retrieve metadata for cloud policy enforcement |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1363068A (zh) * | 1999-05-10 | 2002-08-07 | 雅虎公司 | 用于代理服务器甜点程序的方法和设备 |
US20040039822A1 (en) * | 2002-06-20 | 2004-02-26 | Michael Bensimon | Process for managing context data using an intermediate server |
US20060112174A1 (en) * | 2004-11-23 | 2006-05-25 | L Heureux Israel | Rule-based networking device |
US7085817B1 (en) * | 2000-09-26 | 2006-08-01 | Juniper Networks, Inc. | Method and system for modifying requests for remote resources |
Family Cites Families (368)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044205A (en) | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
US6345288B1 (en) | 1989-08-31 | 2002-02-05 | Onename Corporation | Computer-based communication system and method using metadata defining a control-structure |
US6400996B1 (en) | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
US7006881B1 (en) | 1991-12-23 | 2006-02-28 | Steven Hoffberg | Media recording device with remote graphic user interface |
US6850252B1 (en) * | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
US7134131B1 (en) | 1992-12-09 | 2006-11-07 | Sedna Patent Services, Llc | Digital broadcast program billing |
US6515968B1 (en) * | 1995-03-17 | 2003-02-04 | Worldcom, Inc. | Integrated interface for real time web based viewing of telecommunications network call traffic |
GB2300551A (en) | 1995-05-03 | 1996-11-06 | Ibm | Computer workstation |
US5774670A (en) | 1995-10-06 | 1998-06-30 | Netscape Communications Corporation | Persistent client state in a hypertext transfer protocol based client-server system |
US5862325A (en) | 1996-02-29 | 1999-01-19 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
US5848396A (en) | 1996-04-26 | 1998-12-08 | Freedom Of Information, Inc. | Method and apparatus for determining behavioral profile of a computer user |
US6178409B1 (en) | 1996-06-17 | 2001-01-23 | Verifone, Inc. | System, method and article of manufacture for multiple-entry point virtual point of sale architecture |
US6253027B1 (en) | 1996-06-17 | 2001-06-26 | Hewlett-Packard Company | System, method and article of manufacture for exchanging software and configuration data over a multichannel, extensible, flexible architecture |
US5983208A (en) | 1996-06-17 | 1999-11-09 | Verifone, Inc. | System, method and article of manufacture for handling transaction results in a gateway payment architecture utilizing a multichannel, extensible, flexible architecture |
US6324525B1 (en) | 1996-06-17 | 2001-11-27 | Hewlett-Packard Company | Settlement of aggregated electronic transactions over a network |
US5812668A (en) | 1996-06-17 | 1998-09-22 | Verifone, Inc. | System, method and article of manufacture for verifying the operation of a remote transaction clearance system utilizing a multichannel, extensible, flexible architecture |
US6026379A (en) | 1996-06-17 | 2000-02-15 | Verifone, Inc. | System, method and article of manufacture for managing transactions in a high availability system |
US6373950B1 (en) | 1996-06-17 | 2002-04-16 | Hewlett-Packard Company | System, method and article of manufacture for transmitting messages within messages utilizing an extensible, flexible architecture |
US6314406B1 (en) | 1996-06-26 | 2001-11-06 | Telxon Corporation | Customer information network |
US6182139B1 (en) | 1996-08-05 | 2001-01-30 | Resonate Inc. | Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm |
EP0853788A1 (en) | 1996-08-08 | 1998-07-22 | Agranat Systems, Inc. | Embedded web server |
US5931917A (en) | 1996-09-26 | 1999-08-03 | Verifone, Inc. | System, method and article of manufacture for a gateway system architecture with system administration information accessible from a browser |
US5978840A (en) | 1996-09-26 | 1999-11-02 | Verifone, Inc. | System, method and article of manufacture for a payment gateway system architecture for processing encrypted payment transactions utilizing a multichannel, extensible, flexible architecture |
US5944791A (en) | 1996-10-04 | 1999-08-31 | Contigo Software Llc | Collaborative web browser |
US6335927B1 (en) | 1996-11-18 | 2002-01-01 | Mci Communications Corporation | System and method for providing requested quality of service in a hybrid network |
US5999525A (en) | 1996-11-18 | 1999-12-07 | Mci Communications Corporation | Method for video telephony over a hybrid network |
US5867494A (en) * | 1996-11-18 | 1999-02-02 | Mci Communication Corporation | System, method and article of manufacture with integrated video conferencing billing in a communication system architecture |
US6909708B1 (en) | 1996-11-18 | 2005-06-21 | Mci Communications Corporation | System, method and article of manufacture for a communication system architecture including video conferencing |
US7145898B1 (en) | 1996-11-18 | 2006-12-05 | Mci Communications Corporation | System, method and article of manufacture for selecting a gateway of a hybrid communication system architecture |
US6754181B1 (en) | 1996-11-18 | 2004-06-22 | Mci Communications Corporation | System and method for a directory service supporting a hybrid communication system architecture |
US6185625B1 (en) * | 1996-12-20 | 2001-02-06 | Intel Corporation | Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object |
WO1998035468A2 (en) * | 1997-01-27 | 1998-08-13 | Benjamin Slotznick | System for delivering and displaying primary and secondary information |
US6731625B1 (en) | 1997-02-10 | 2004-05-04 | Mci Communications Corporation | System, method and article of manufacture for a call back architecture in a hybrid network with support for internet telephony |
AUPO525497A0 (en) | 1997-02-21 | 1997-03-20 | Mills, Dudley John | Network-based classified information systems |
US5930801A (en) | 1997-03-07 | 1999-07-27 | Xerox Corporation | Shared-data environment in which each file has independent security properties |
US6085224A (en) | 1997-03-11 | 2000-07-04 | Intracept, Inc. | Method and system for responding to hidden data and programs in a datastream |
US6643696B2 (en) | 1997-03-21 | 2003-11-04 | Owen Davis | Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database |
US5909559A (en) | 1997-04-04 | 1999-06-01 | Texas Instruments Incorporated | Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width |
US6243815B1 (en) * | 1997-04-25 | 2001-06-05 | Anand K. Antur | Method and apparatus for reconfiguring and managing firewalls and security devices |
US6170017B1 (en) | 1997-05-08 | 2001-01-02 | International Business Machines Corporation | Method and system coordinating actions among a group of servers |
US6006260A (en) | 1997-06-03 | 1999-12-21 | Keynote Systems, Inc. | Method and apparatus for evalutating service to a user over the internet |
US5983227A (en) | 1997-06-12 | 1999-11-09 | Yahoo, Inc. | Dynamic page generator |
US6078956A (en) | 1997-09-08 | 2000-06-20 | International Business Machines Corporation | World wide web end user response time monitor |
US6247050B1 (en) * | 1997-09-12 | 2001-06-12 | Intel Corporation | System for collecting and displaying performance improvement information for a computer |
US6714979B1 (en) | 1997-09-26 | 2004-03-30 | Worldcom, Inc. | Data warehousing infrastructure for web based reporting tool |
US6009410A (en) | 1997-10-16 | 1999-12-28 | At&T Corporation | Method and system for presenting customized advertising to a user on the world wide web |
US6351467B1 (en) | 1997-10-27 | 2002-02-26 | Hughes Electronics Corporation | System and method for multicasting multimedia content |
US6256739B1 (en) | 1997-10-30 | 2001-07-03 | Juno Online Services, Inc. | Method and apparatus to determine user identity and limit access to a communications network |
US6167441A (en) | 1997-11-21 | 2000-12-26 | International Business Machines Corporation | Customization of web pages based on requester type |
US6185598B1 (en) * | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
US6560639B1 (en) | 1998-02-13 | 2003-05-06 | 3565 Acquisition Corporation | System for web content management based on server-side application |
US6055564A (en) | 1998-03-11 | 2000-04-25 | Hewlett Packard Company | Admission control where priority indicator is used to discriminate between messages |
US6549612B2 (en) * | 1998-05-06 | 2003-04-15 | Telecommunications Premium Services, Inc. | Unified communication services via e-mail |
US6157864A (en) | 1998-05-08 | 2000-12-05 | Rockwell Technologies, Llc | System, method and article of manufacture for displaying an animated, realtime updated control sequence chart |
US6108662A (en) | 1998-05-08 | 2000-08-22 | Allen-Bradley Company, Llc | System method and article of manufacture for integrated enterprise-wide control |
US6161051A (en) | 1998-05-08 | 2000-12-12 | Rockwell Technologies, Llc | System, method and article of manufacture for utilizing external models for enterprise wide control |
US6167406A (en) | 1998-05-08 | 2000-12-26 | Allen-Bradley Company, Llc | System, method and article of manufacture for building an enterprise-wide data model |
US6141699A (en) | 1998-05-11 | 2000-10-31 | International Business Machines Corporation | Interactive display system for sequential retrieval and display of a plurality of interrelated data sets |
US6578073B1 (en) | 1998-05-13 | 2003-06-10 | Hewlett-Packard Development Company, L.P. | Accelerated content delivery over a network using reduced size objects |
US6308212B1 (en) | 1998-05-29 | 2001-10-23 | Hewlett-Packard Company | Web user interface session and sharing of session environment information |
SE512672C2 (sv) * | 1998-06-12 | 2000-04-17 | Ericsson Telefon Ab L M | Förfarande och system för överföring av en cookie |
US6904519B2 (en) | 1998-06-12 | 2005-06-07 | Microsoft Corporation | Method and computer program product for offloading processing tasks from software to hardware |
US6157955A (en) | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6446109B2 (en) | 1998-06-29 | 2002-09-03 | Sun Microsystems, Inc. | Application computing environment |
US6430567B2 (en) | 1998-06-30 | 2002-08-06 | Sun Microsystems, Inc. | Method and apparatus for multi-user awareness and collaboration |
US6300947B1 (en) | 1998-07-06 | 2001-10-09 | International Business Machines Corporation | Display screen and window size related web page adaptation system |
US6680922B1 (en) | 1998-07-10 | 2004-01-20 | Malibu Networks, Inc. | Method for the recognition and operation of virtual private networks (VPNs) over a wireless point to multi-point (PtMP) transmission system |
US6182142B1 (en) * | 1998-07-10 | 2001-01-30 | Encommerce, Inc. | Distributed access management of information resources |
US6141010A (en) | 1998-07-17 | 2000-10-31 | B. E. Technology, Llc | Computer interface method and apparatus with targeted advertising |
US20010037400A1 (en) | 1998-07-22 | 2001-11-01 | Uri Raz | Method and system for decreasing the user-perceived system response time in web-based systems |
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 |
US6208991B1 (en) * | 1998-08-26 | 2001-03-27 | International Business Machines Corporation | Dynamic file mapping for network computers |
US6393467B1 (en) | 1998-08-31 | 2002-05-21 | Nortel Networks Limited | Network interconnected computing device, server and notification method |
US20010051956A1 (en) | 1998-09-29 | 2001-12-13 | Paul Bird | Global caching and sharing of sql statements in a heterogeneous application environment |
US8332478B2 (en) * | 1998-10-01 | 2012-12-11 | Digimarc Corporation | Context sensitive connected content |
US6772139B1 (en) | 1998-10-05 | 2004-08-03 | Smith, Iii Julius O. | Method and apparatus for facilitating use of hypertext links on the world wide web |
US6397253B1 (en) | 1998-10-06 | 2002-05-28 | Bull Hn Information Systems Inc. | Method and system for providing high performance Web browser and server communications |
US6625643B1 (en) | 1998-11-13 | 2003-09-23 | Akamai Technologies, Inc. | System and method for resource management on a data network |
US6360270B1 (en) * | 1998-11-16 | 2002-03-19 | Hewlett-Packard Company | Hybrid and predictive admission control strategies for a server |
US6510466B1 (en) * | 1998-12-14 | 2003-01-21 | International Business Machines Corporation | Methods, systems and computer program products for centralized management of application programs on a network |
US6928469B1 (en) | 1998-12-29 | 2005-08-09 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
US6981215B1 (en) | 1998-12-31 | 2005-12-27 | Microsoft Corp. | System for converting event-driven code into serially executed code |
US6889379B1 (en) | 1998-12-31 | 2005-05-03 | Microsoft Corporation | Transporting objects between a client and a server |
US6714219B2 (en) * | 1998-12-31 | 2004-03-30 | Microsoft Corporation | Drag and drop creation and editing of a page incorporating scripts |
US7389540B2 (en) | 1999-02-03 | 2008-06-17 | Cybersoft, Inc. | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer |
DK1157344T3 (da) | 1999-02-26 | 2003-03-17 | America Online Inc | Proxyserver til komplettering af en klientanordning med brugerprofildata |
CN1423786A (zh) | 1999-03-02 | 2003-06-11 | 奎克斯塔投资公司 | 包含一种会员购买机会的行销系统内的电子商务交易 |
US7032030B1 (en) | 1999-03-11 | 2006-04-18 | John David Codignotto | Message publishing system and method |
US6081900A (en) * | 1999-03-16 | 2000-06-27 | Novell, Inc. | Secure intranet access |
US9141717B2 (en) * | 1999-03-22 | 2015-09-22 | Esdr Network Solutions Llc | Methods, systems, products, and devices for processing DNS friendly identifiers |
US7231357B1 (en) | 1999-04-19 | 2007-06-12 | Neil Shanman | System and method for the targeted distribution of discount coupons over a network |
US7178106B2 (en) | 1999-04-21 | 2007-02-13 | Sonic Solutions, A California Corporation | Presentation of media content from multiple media sources |
AU4476600A (en) | 1999-04-22 | 2000-11-10 | Vanderbilt University | Polymeric encapsulation system promoting angiogenesis |
US6317777B1 (en) | 1999-04-26 | 2001-11-13 | Intel Corporation | Method for web based storage and retrieval of documents |
US6421768B1 (en) | 1999-05-04 | 2002-07-16 | First Data Corporation | Method and system for authentication and single sign on using cryptographically assured cookies in a distributed computer environment |
US6505230B1 (en) * | 1999-05-14 | 2003-01-07 | Pivia, Inc. | Client-server independent intermediary mechanism |
AU4979400A (en) | 1999-05-14 | 2000-12-05 | Pivia, Inc. | Applications and services supported by a client-server independent intermediary mechanism |
US7787907B2 (en) | 1999-05-26 | 2010-08-31 | Johnson Controls Technology Company | System and method for using speech recognition with a vehicle control system |
US7006993B1 (en) | 1999-05-28 | 2006-02-28 | The Coca-Cola Company | Method and apparatus for surrogate control of network-based electronic transactions |
US6584567B1 (en) | 1999-06-30 | 2003-06-24 | International Business Machines Corporation | Dynamic connection to multiple origin servers in a transcoding proxy |
US8150757B1 (en) * | 1999-07-01 | 2012-04-03 | Foundationip, Llc | Web-based infomediary for intellectual property transfer |
US6374300B2 (en) | 1999-07-15 | 2002-04-16 | F5 Networks, Inc. | Method and system for storing load balancing information with an HTTP cookie |
US6704873B1 (en) * | 1999-07-30 | 2004-03-09 | Accenture Llp | Secure gateway interconnection in an e-commerce based environment |
US7100195B1 (en) | 1999-07-30 | 2006-08-29 | Accenture Llp | Managing user information on an e-commerce system |
US6633878B1 (en) | 1999-07-30 | 2003-10-14 | Accenture Llp | Initializing an ecommerce database framework |
US6718535B1 (en) | 1999-07-30 | 2004-04-06 | Accenture Llp | System, method and article of manufacture for an activity framework design in an e-commerce based environment |
US6601233B1 (en) | 1999-07-30 | 2003-07-29 | Accenture Llp | Business components framework |
US6609128B1 (en) | 1999-07-30 | 2003-08-19 | Accenture Llp | Codes table framework design in an E-commerce architecture |
US6523027B1 (en) * | 1999-07-30 | 2003-02-18 | Accenture Llp | Interfacing servers in a Java based e-commerce architecture |
US6609198B1 (en) | 1999-08-05 | 2003-08-19 | Sun Microsystems, Inc. | Log-on service providing credential level change without loss of session continuity |
US6691232B1 (en) | 1999-08-05 | 2004-02-10 | Sun Microsystems, Inc. | Security architecture with environment sensitive credential sufficiency evaluation |
US6697824B1 (en) | 1999-08-31 | 2004-02-24 | Accenture Llp | Relationship management in an E-commerce application framework |
US7206805B1 (en) | 1999-09-09 | 2007-04-17 | Oracle International Corporation | Asynchronous transcription object management system |
US6687745B1 (en) | 1999-09-14 | 2004-02-03 | Droplet, Inc | System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection |
US7006893B2 (en) * | 1999-09-22 | 2006-02-28 | Telepharmacy Solutions, Inc. | Systems for dispensing medical products |
US6564121B1 (en) | 1999-09-22 | 2003-05-13 | Telepharmacy Solutions, Inc. | Systems and methods for drug dispensing |
US6993456B2 (en) * | 1999-09-30 | 2006-01-31 | Rockwell Automation Technologies, Inc. | Mechanical-electrical template based method and apparatus |
US6268853B1 (en) | 1999-09-30 | 2001-07-31 | Rockwell Technologies, L.L.C. | Data structure for use in enterprise controls |
US6556950B1 (en) * | 1999-09-30 | 2003-04-29 | Rockwell Automation Technologies, Inc. | Diagnostic method and apparatus for use with enterprise control |
US6826696B1 (en) | 1999-10-12 | 2004-11-30 | Webmd, Inc. | System and method for enabling single sign-on for networked applications |
US20040267820A1 (en) | 1999-10-14 | 2004-12-30 | Microsoft Corporation | Method and system for recording and replaying internet transactions |
US6697825B1 (en) | 1999-11-05 | 2004-02-24 | Decentrix Inc. | Method and apparatus for generating and modifying multiple instances of element of a web site |
US7152207B1 (en) | 1999-11-05 | 2006-12-19 | Decentrix Inc. | Method and apparatus for providing conditional customization for generating a web site |
US6449658B1 (en) | 1999-11-18 | 2002-09-10 | Quikcat.Com, Inc. | Method and apparatus for accelerating data through communication networks |
US7130807B1 (en) | 1999-11-22 | 2006-10-31 | Accenture Llp | Technology sharing during demand and supply planning in a network-based supply chain environment |
US7124101B1 (en) | 1999-11-22 | 2006-10-17 | Accenture Llp | Asset tracking in a network-based supply chain environment |
US6671818B1 (en) | 1999-11-22 | 2003-12-30 | Accenture Llp | Problem isolation through translating and filtering events into a standard object format in a network based supply chain |
US6754699B2 (en) | 2000-07-19 | 2004-06-22 | Speedera Networks, Inc. | Content delivery and global traffic management network system |
US6606744B1 (en) | 1999-11-22 | 2003-08-12 | Accenture, Llp | Providing collaborative installation management in a network-based supply chain environment |
US7523181B2 (en) | 1999-11-22 | 2009-04-21 | Akamai Technologies, Inc. | Method for determining metrics of a content delivery and global traffic management network |
US6754706B1 (en) | 1999-12-16 | 2004-06-22 | Speedera Networks, Inc. | Scalable domain name system with persistence and load balancing |
US7167844B1 (en) | 1999-12-22 | 2007-01-23 | Accenture Llp | Electronic menu document creator in a virtual financial environment |
US6629081B1 (en) | 1999-12-22 | 2003-09-30 | Accenture Llp | Account settlement and financing in an e-commerce environment |
US7069234B1 (en) | 1999-12-22 | 2006-06-27 | Accenture Llp | Initiating an agreement in an e-commerce environment |
GB2357599B (en) * | 1999-12-23 | 2004-08-04 | Ibm | Method for preventing parasitic usage of web page embedded files |
US7246370B2 (en) | 2000-01-07 | 2007-07-17 | Security, Inc. | PDstudio design system and method |
US6904449B1 (en) | 2000-01-14 | 2005-06-07 | Accenture Llp | System and method for an application provider framework |
US7954144B1 (en) * | 2000-01-18 | 2011-05-31 | Novell, Inc. | Brokering state information and identity among user agents, origin servers, and proxies |
US6449627B1 (en) | 2000-01-21 | 2002-09-10 | International Business Machines Corp. | Volume management method and system for a compilation of content |
US7089239B1 (en) | 2000-01-21 | 2006-08-08 | International Business Machines Corporation | Method and system for preventing mutually exclusive content entities stored in a data repository to be included in the same compilation of content |
US6839701B1 (en) * | 2000-01-21 | 2005-01-04 | International Business Machines | Hitmask for querying hierarchically related content entities |
US7043488B1 (en) | 2000-01-21 | 2006-05-09 | International Business Machines Corporation | Method and system for storing hierarchical content objects in a data repository |
US7007034B1 (en) * | 2000-01-21 | 2006-02-28 | International Business Machines Corporation | File structure for storing content objects in a data repository |
US7076494B1 (en) | 2000-01-21 | 2006-07-11 | International Business Machines Corporation | Providing a functional layer for facilitating creation and manipulation of compilations of content |
US6611840B1 (en) | 2000-01-21 | 2003-08-26 | International Business Machines Corporation | Method and system for removing content entity object in a hierarchically structured content object stored in a database |
US6986102B1 (en) | 2000-01-21 | 2006-01-10 | International Business Machines Corporation | Method and configurable model for storing hierarchical data in a non-hierarchical data repository |
US7096418B1 (en) | 2000-02-02 | 2006-08-22 | Persistence Software, Inc. | Dynamic web page cache |
US6732331B1 (en) | 2000-02-15 | 2004-05-04 | Vlad Alexander | System and process for managing content organized in a tag-delimited template using metadata |
US6718328B1 (en) | 2000-02-28 | 2004-04-06 | Akamai Technologies, Inc. | System and method for providing controlled and secured access to network resources |
US6249281B1 (en) | 2000-02-28 | 2001-06-19 | Presenter.Com | On-demand presentation graphical user interface |
TW550477B (en) | 2000-03-01 | 2003-09-01 | Passgate Corp | Method, system and computer readable medium for Web site account and e-commerce management from a central location |
IL151455A0 (en) | 2000-03-03 | 2003-04-10 | Sanctum Ltd | System for determining web application vulnerabilities |
US7565450B2 (en) | 2000-03-16 | 2009-07-21 | Adara Networks Inc. | System and method for using a mapping between client addresses and addresses of caches to support content delivery |
US7343413B2 (en) | 2000-03-21 | 2008-03-11 | F5 Networks, Inc. | Method and system for optimizing a network by independently scaling control segments and data flow |
US8380854B2 (en) | 2000-03-21 | 2013-02-19 | F5 Networks, Inc. | Simplified method for processing multiple connections from the same client |
US6502102B1 (en) | 2000-03-27 | 2002-12-31 | Accenture Llp | System, method and article of manufacture for a table-driven automated scripting architecture |
US6907546B1 (en) | 2000-03-27 | 2005-06-14 | Accenture Llp | Language-driven interface for an automated testing framework |
US6701514B1 (en) | 2000-03-27 | 2004-03-02 | Accenture Llp | System, method, and article of manufacture for test maintenance in an automated scripting framework |
US6968364B1 (en) | 2000-03-30 | 2005-11-22 | Microsoft Corporation | System and method to facilitate selection and programming of an associated audio/visual system |
US6553377B1 (en) | 2000-03-31 | 2003-04-22 | Network Associates, Inc. | System and process for maintaining a plurality of remote security applications using a modular framework in a distributed computing environment |
US7096495B1 (en) | 2000-03-31 | 2006-08-22 | Intel Corporation | Network session management |
US7028333B2 (en) | 2000-04-12 | 2006-04-11 | Corente, Inc. | Methods and systems for partners in virtual networks |
US7181542B2 (en) | 2000-04-12 | 2007-02-20 | Corente, Inc. | Method and system for managing and configuring virtual private networks |
US7085854B2 (en) * | 2000-04-12 | 2006-08-01 | Corente, Inc. | Methods and systems for enabling communication between a processor and a network operations center |
US7181766B2 (en) * | 2000-04-12 | 2007-02-20 | Corente, Inc. | Methods and system for providing network services using at least one processor interfacing a base network |
US7047424B2 (en) | 2000-04-12 | 2006-05-16 | Corente, Inc. | Methods and systems for hairpins in virtual networks |
US6996628B2 (en) * | 2000-04-12 | 2006-02-07 | Corente, Inc. | Methods and systems for managing virtual addresses for virtual networks |
US6631416B2 (en) | 2000-04-12 | 2003-10-07 | Openreach Inc. | Methods and systems for enabling a tunnel between two computers on a network |
US7028334B2 (en) | 2000-04-12 | 2006-04-11 | Corente, Inc. | Methods and systems for using names in virtual networks |
AU2001253613A1 (en) | 2000-04-17 | 2001-10-30 | Circadence Corporation | System and method for shifting functionality between multiple web servers |
US6996616B1 (en) | 2000-04-17 | 2006-02-07 | Akamai Technologies, Inc. | HTML delivery from edge-of-network servers in a content delivery network (CDN) |
US6976090B2 (en) | 2000-04-20 | 2005-12-13 | Actona Technologies Ltd. | Differentiated content and application delivery via internet |
US6785653B1 (en) | 2000-05-01 | 2004-08-31 | Nuance Communications | Distributed voice web architecture and associated components and methods |
US7225244B2 (en) | 2000-05-20 | 2007-05-29 | Ciena Corporation | Common command interface |
CN1300677C (zh) | 2000-06-22 | 2007-02-14 | 微软公司 | 分布式计算服务平台 |
US7444674B1 (en) * | 2000-06-26 | 2008-10-28 | Swisscom Mobile Ag | End-to-end security of transactions between a mobile terminal and an internet server at the application level |
US7133837B1 (en) | 2000-06-29 | 2006-11-07 | Barnes Jr Melvin L | Method and apparatus for providing communication transmissions |
US20020029269A1 (en) * | 2000-06-29 | 2002-03-07 | Campus Pipeline, Inc. | Methods and systems for coordinating the termination of sessions on one or more systems |
US7093020B1 (en) | 2000-06-29 | 2006-08-15 | Sungard Sct Inc. | Methods and systems for coordinating sessions on one or more systems |
US6779025B1 (en) | 2000-06-30 | 2004-08-17 | Cisco Technology, Inc. | IP web based messaging system for localized management of wireless messaging |
US9038170B2 (en) | 2000-07-10 | 2015-05-19 | Oracle International Corporation | Logging access system events |
US6785666B1 (en) | 2000-07-11 | 2004-08-31 | Revenue Science, Inc. | Method and system for parsing navigation information |
US6591266B1 (en) | 2000-07-14 | 2003-07-08 | Nec Corporation | System and method for intelligent caching and refresh of dynamically generated and static web content |
US6826594B1 (en) | 2000-07-15 | 2004-11-30 | Commission Junction | Method and system for remote content management of a designated portion of a web page |
JP2004504681A (ja) | 2000-07-17 | 2004-02-12 | エプリケーション ネットワークス リミテッド | キャッシュ分散ネットーク上に静的及び動的コンテンツをキャッシュすることによる、WWWサイトのビット・レートの節約及びQoS改善 |
US7155723B2 (en) * | 2000-07-19 | 2006-12-26 | Akamai Technologies, Inc. | Load balancing service |
EP1337936A2 (en) | 2000-07-31 | 2003-08-27 | James A. Starkey | Method and apparatus for generating web pages from templates |
US7373422B1 (en) | 2000-08-04 | 2008-05-13 | Oracle International Corporation | Techniques for supporting multiple devices in mobile applications |
AUPQ924100A0 (en) | 2000-08-07 | 2000-08-31 | Sharinga Networks Inc. | A method for controlling data at a client device |
AU2001278159A1 (en) | 2000-08-11 | 2002-02-25 | Incanta, Inc. | Resource distribution in network environment |
US7092370B2 (en) | 2000-08-17 | 2006-08-15 | Roamware, Inc. | Method and system for wireless voice channel/data channel integration |
US7216149B1 (en) | 2000-08-18 | 2007-05-08 | International Business Machines Corporation | Gathering enriched web server activity data of cached web content |
US7035907B1 (en) | 2000-09-13 | 2006-04-25 | Jibe Networks, Inc. | Manipulating content objects to control their display |
WO2002027552A2 (en) * | 2000-09-26 | 2002-04-04 | Neoteris, Inc. | Enhanced browsing environment |
US7210100B2 (en) | 2000-09-27 | 2007-04-24 | Eizel Technologies, Inc. | Configurable transformation of electronic documents |
FR2814881B1 (fr) | 2000-09-29 | 2003-08-15 | Vivendi Net | Procede d'optimisation, par un element d'architecture de reseau, de la consultation de donnees |
US20020065911A1 (en) | 2000-10-03 | 2002-05-30 | Von Klopp Ana H. | HTTP transaction monitor with edit and replay capacity |
CA2322597C (en) | 2000-10-06 | 2004-11-30 | Ibm Canada Limited-Ibm Canada Limitee | Method and apparatus for cryptographic stateless protocol using asymmetric encryption |
US6334111B1 (en) | 2000-10-06 | 2001-12-25 | Careau & Co. | Method for allocating commissions over the internet using tags |
US6757365B1 (en) | 2000-10-16 | 2004-06-29 | Tellme Networks, Inc. | Instant messaging via telephone interfaces |
WO2002033607A1 (en) | 2000-10-16 | 2002-04-25 | Iis Inc. | Method for offering multilingual information translated in many languages through a communication network |
GB2368246B (en) * | 2000-10-17 | 2004-09-01 | Hewlett Packard Co | Overview subsystem for information page server |
GB2368930B (en) * | 2000-10-17 | 2005-04-06 | Hewlett Packard Co | Establishment of a deferred network communication session |
GB2368227B (en) | 2000-10-17 | 2003-12-10 | Hewlett Packard Co | Contact center |
US6983331B1 (en) * | 2000-10-17 | 2006-01-03 | Microsoft Corporation | Selective display of content |
US7707305B2 (en) | 2000-10-17 | 2010-04-27 | Cisco Technology, Inc. | Methods and apparatus for protecting against overload conditions on nodes of a distributed network |
US20020055912A1 (en) * | 2000-10-20 | 2002-05-09 | Byron Buck | Network and method for facilitating on-line privacy |
US6795848B1 (en) | 2000-11-08 | 2004-09-21 | Hughes Electronics Corporation | System and method of reading ahead of objects for delivery to an HTTP proxy server |
US6952425B1 (en) | 2000-11-14 | 2005-10-04 | Cisco Technology, Inc. | Packet data analysis with efficient and flexible parsing capabilities |
CA2327078C (en) | 2000-11-30 | 2005-01-11 | Ibm Canada Limited-Ibm Canada Limitee | Secure session management and authentication for web sites |
US20020065919A1 (en) | 2000-11-30 | 2002-05-30 | Taylor Ian Lance | Peer-to-peer caching network for user data |
US20020116582A1 (en) | 2000-12-18 | 2002-08-22 | Copeland George P. | Batching of invalidations and new values in a web cache with dynamic content |
US6877025B2 (en) | 2000-12-18 | 2005-04-05 | International Business Machines Corp. | Integrated JSP and command cache for web applications with dynamic content |
US8266677B2 (en) * | 2000-12-20 | 2012-09-11 | Intellisync Corporation | UDP communication with a programmer interface over wireless networks |
US7418522B2 (en) * | 2000-12-21 | 2008-08-26 | Noatak Software Llc | Method and system for communicating an information packet through multiple networks |
US7085834B2 (en) | 2000-12-22 | 2006-08-01 | Oracle International Corporation | Determining a user's groups |
US7155515B1 (en) | 2001-02-06 | 2006-12-26 | Microsoft Corporation | Distributed load balancing for single entry-point systems |
US20040073512A1 (en) | 2001-02-23 | 2004-04-15 | David Maung | Unique session storage design |
US20020120743A1 (en) | 2001-02-26 | 2002-08-29 | Lior Shabtay | Splicing persistent connections |
US7185364B2 (en) | 2001-03-21 | 2007-02-27 | Oracle International Corporation | Access system interface |
US20020129271A1 (en) | 2001-03-12 | 2002-09-12 | Lucent Technologies Inc. | Method and apparatus for order independent processing of virtual private network protocols |
US7313822B2 (en) | 2001-03-16 | 2007-12-25 | Protegrity Corporation | Application-layer security method and system |
GB2373418A (en) | 2001-03-16 | 2002-09-18 | Kleinwort Benson Ltd | Method and system to provide and manage secure access to internal computer systems from an external client |
US7370351B1 (en) * | 2001-03-22 | 2008-05-06 | Novell, Inc. | Cross domain authentication and security services using proxies for HTTP access |
US7310687B2 (en) | 2001-03-23 | 2007-12-18 | Cisco Technology, Inc. | Methods and systems for managing class-based condensation |
US7340505B2 (en) | 2001-04-02 | 2008-03-04 | Akamai Technologies, Inc. | Content storage and replication in a managed internet content storage environment |
US7003565B2 (en) * | 2001-04-03 | 2006-02-21 | International Business Machines Corporation | Clickstream data collection technique |
US7213071B2 (en) * | 2001-04-03 | 2007-05-01 | International Business Machines Corporation | Quality of service improvements for network transactions |
US8019835B2 (en) | 2001-04-20 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Automated provisioning of computing networks using a network database data model |
US7134075B2 (en) | 2001-04-26 | 2006-11-07 | International Business Machines Corporation | Conversion of documents between XML and processor efficient MXML in content based routing networks |
US20020161904A1 (en) | 2001-04-30 | 2002-10-31 | Xerox Corporation | External access to protected device on private network |
US6925481B2 (en) | 2001-05-03 | 2005-08-02 | Symantec Corp. | Technique for enabling remote data access and manipulation from a pervasive device |
US7769845B2 (en) | 2001-05-04 | 2010-08-03 | Whale Communications Ltd | Method and system for terminating an authentication session upon user sign-off |
US20030051142A1 (en) * | 2001-05-16 | 2003-03-13 | Hidalgo Lluis Mora | Firewalls for providing security in HTTP networks and applications |
US7203722B2 (en) | 2001-05-24 | 2007-04-10 | International Business Machines Corporation | Optimistic processing of network frames to reduce latency |
US7102996B1 (en) | 2001-05-24 | 2006-09-05 | F5 Networks, Inc. | Method and system for scaling network traffic managers |
US7216173B2 (en) | 2001-06-12 | 2007-05-08 | Varian Medical Systems Technologies, Inc. | Virtual private network software system |
US7024477B2 (en) | 2001-06-29 | 2006-04-04 | International Business Machines Corporation | Service time analysis methods for the WSM QOS monitor |
US20030014368A1 (en) | 2001-07-09 | 2003-01-16 | Travelers Express Inc. | Systems, methods and apparatus for secure printing of negotiable instruments |
US7117504B2 (en) | 2001-07-10 | 2006-10-03 | Microsoft Corporation | Application program interface that enables communication for a network software platform |
US20040128346A1 (en) | 2001-07-16 | 2004-07-01 | Shmuel Melamed | Bandwidth savings and qos improvement for www sites by catching static and dynamic content on a distributed network of caches |
AU2002355530A1 (en) * | 2001-08-03 | 2003-02-24 | John Allen Ananian | Personalized interactive digital catalog profiling |
US6789170B1 (en) | 2001-08-04 | 2004-09-07 | Oracle International Corporation | System and method for customizing cached data |
US7100054B2 (en) | 2001-08-09 | 2006-08-29 | American Power Conversion | Computer network security system |
WO2003017123A1 (en) | 2001-08-16 | 2003-02-27 | Redline Networks, Inc. | System and method for maintaining statefulness during client-server interactions |
JP3961796B2 (ja) * | 2001-08-27 | 2007-08-22 | ソニー株式会社 | 情報提供システム、情報処理装置および方法、情報提供装置および方法、記録媒体、並びにプログラム |
US20030055762A1 (en) * | 2001-09-18 | 2003-03-20 | Holt Laurence E. | Incremental active user profile construction for content customization interspersed with content display |
US7350194B1 (en) | 2001-09-24 | 2008-03-25 | Oracle Corporation | Techniques for debugging computer programs involving multiple computing machines |
US6961759B2 (en) * | 2001-09-24 | 2005-11-01 | International Business Machines Corporation | Method and system for remotely managing persistent state data |
AUPR797501A0 (en) | 2001-09-28 | 2001-10-25 | BlastMedia Pty Limited | A method of displaying content |
US6952714B2 (en) | 2001-10-02 | 2005-10-04 | Citrix Systems, Inc. | Method for distributed program execution with server-based file type association |
US7117243B2 (en) | 2001-10-02 | 2006-10-03 | Citrix Systems, Inc. | Methods for distributed program execution with file-type association in a client-server network |
US7330872B2 (en) | 2001-10-02 | 2008-02-12 | Citrix Systems, Inc. | Method for distributed program execution with web-based file-type association |
IL161141A0 (en) | 2001-10-02 | 2004-08-31 | Citrix Systems Inc | Methods for distributed program execution with file - type association in a client-server network |
US7042879B2 (en) | 2001-11-02 | 2006-05-09 | General Instrument Corporation | Method and apparatus for transferring a communication session |
US7631084B2 (en) * | 2001-11-02 | 2009-12-08 | Juniper Networks, Inc. | Method and system for providing secure access to private networks with client redirection |
US6823374B2 (en) | 2001-11-16 | 2004-11-23 | Fineground Networks | Adjusting the cacheability of web documents according to the responsiveness of its content server |
US6981143B2 (en) | 2001-11-28 | 2005-12-27 | International Business Machines Corporation | System and method for providing connection orientation based access authentication |
US7051036B2 (en) | 2001-12-03 | 2006-05-23 | Kraft Foods Holdings, Inc. | Computer-implemented system and method for project development |
US7107338B1 (en) | 2001-12-05 | 2006-09-12 | Revenue Science, Inc. | Parsing navigation information to identify interactions based on the times of their occurrences |
US20030105957A1 (en) | 2001-12-05 | 2003-06-05 | International Business Machines Corporation | Kernel-based security implementation |
US7441119B2 (en) | 2001-12-05 | 2008-10-21 | International Business Machines Corporation | Offload processing for secure data transfer |
US20030110266A1 (en) | 2001-12-10 | 2003-06-12 | Cysive, Inc. | Apparatus and method of using session state data across sessions |
US7509393B2 (en) | 2001-12-19 | 2009-03-24 | International Business Machines Corporation | Method and system for caching role-specific fragments |
US20030126266A1 (en) | 2002-01-03 | 2003-07-03 | Amir Peles | Persistent redirection engine |
US7313613B1 (en) | 2002-01-03 | 2007-12-25 | Microsoft Corporation | System and method facilitating network diagnostics and self-healing |
EP1326185A1 (en) | 2002-01-08 | 2003-07-09 | Alcatel | Offline behaviour analysis for online personalisation of value added services |
US7949702B2 (en) | 2002-01-09 | 2011-05-24 | International Business Machines Corporation | Method and apparatus for synchronizing cookies across multiple client machines |
AU2003205083A1 (en) | 2002-01-11 | 2003-07-30 | Akamai Tech Inc | Java application framework for use in a content delivery network (cdn) |
US7058718B2 (en) | 2002-01-15 | 2006-06-06 | International Business Machines Corporation | Blended SYN cookies |
US7034691B1 (en) | 2002-01-25 | 2006-04-25 | Solvetech Corporation | Adaptive communication methods and systems for facilitating the gathering, distribution and delivery of information related to medical care |
US7246230B2 (en) | 2002-01-29 | 2007-07-17 | Bea Systems, Inc. | Single sign-on over the internet using public-key cryptography |
US7984157B2 (en) | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7970816B2 (en) | 2002-03-01 | 2011-06-28 | NetSuite Inc. | Client-side caching of pages with changing content |
US7093018B1 (en) | 2002-03-06 | 2006-08-15 | Novell, Inc. | Methods, systems, and data structures to connect services |
JP4179535B2 (ja) | 2002-09-03 | 2008-11-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワークシステム、リバースプロキシ、コンピュータ装置、データ処理方法及びプログラム |
US20030177196A1 (en) | 2002-03-14 | 2003-09-18 | Aditya Bhasin | Method and system for providing proxy based caching services to a client device |
US7047315B1 (en) | 2002-03-19 | 2006-05-16 | Cisco Technology, Inc. | Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states |
US7512702B1 (en) * | 2002-03-19 | 2009-03-31 | Cisco Technology, Inc. | Method and apparatus providing highly scalable server load balancing |
US7707287B2 (en) | 2002-03-22 | 2010-04-27 | F5 Networks, Inc. | Virtual host acceleration system |
US20040044731A1 (en) * | 2002-03-22 | 2004-03-04 | Kailai Chen | System and method for optimizing internet applications |
EP1495432A2 (en) | 2002-04-10 | 2005-01-12 | TransTech Pharma Inc. | System and method for data analysis, manipulation, and visualization |
ES2431307T3 (es) | 2002-04-19 | 2013-11-25 | Open Tv, Inc. | Soporte de funcionalidad de televisión común interactiva a través de la presentación de sintaxis de motor |
US7899915B2 (en) | 2002-05-10 | 2011-03-01 | Richard Reisman | Method and apparatus for browsing using multiple coordinated device sets |
US20030217149A1 (en) | 2002-05-20 | 2003-11-20 | International Business Machines Corporation | Method and apparatus for tunneling TCP/IP over HTTP and HTTPS |
US7209466B2 (en) | 2002-06-06 | 2007-04-24 | Symbol Technologies, Inc. | Software method utilizing gateways for maintaining connectivity during communications over distinct wireless networks by mobile computer terminals |
US7367044B2 (en) | 2002-06-14 | 2008-04-29 | Clink Systems, Ltd. | System and method for network operation |
US6987987B1 (en) | 2002-07-03 | 2006-01-17 | Sprint Spectrum L.P. | Method and system for providing advanced notice of cost to access web content |
US7107309B1 (en) | 2002-07-03 | 2006-09-12 | Sprint Spectrum L.P. | Method and system for providing interstitial notice |
US20040049673A1 (en) * | 2002-09-05 | 2004-03-11 | Docomo Communications Laboratories Usa, Inc. | Apparatus and method for a personal cookie repository service for cookie management among multiple devices |
US7953820B2 (en) | 2002-09-11 | 2011-05-31 | Hughes Network Systems, Llc | Method and system for providing enhanced performance of web browsing |
US7171469B2 (en) | 2002-09-16 | 2007-01-30 | Network Appliance, Inc. | Apparatus and method for storing data in a proxy cache in a network |
US20040073629A1 (en) | 2002-10-10 | 2004-04-15 | International Business Machines Corporation | Method of accessing internet resources through a proxy with improved security |
US7171478B2 (en) | 2002-10-25 | 2007-01-30 | Sap Aktiengesellschaft | Session coupling |
US20040088349A1 (en) | 2002-10-30 | 2004-05-06 | Andre Beck | Method and apparatus for providing anonymity to end-users in web transactions |
US7360025B1 (en) | 2002-12-13 | 2008-04-15 | O'connell Conleth | Method and system for automatic cache management |
US7188216B1 (en) | 2002-12-13 | 2007-03-06 | Vignette Corporation | Method and system for an extensible caching framework |
US20040122951A1 (en) | 2002-12-18 | 2004-06-24 | Andre Beck | Method and apparatus for providing Web users with a click-to-contact service |
US7616597B2 (en) | 2002-12-19 | 2009-11-10 | Intel Corporation | System and method for integrating mobile networking with security-based VPNs |
US7216713B2 (en) | 2003-01-15 | 2007-05-15 | Schlumberger Technology Corporation | Downhole actuating apparatus and method |
US7624173B2 (en) | 2003-02-10 | 2009-11-24 | International Business Machines Corporation | Method and system for classifying content and prioritizing web site content issues |
CA2515488C (en) | 2003-02-10 | 2013-04-16 | Raindance Communications, Inc. | Methods and apparatus for providing egalitarian control in a multimedia collaboration session |
EP1593026A1 (en) | 2003-02-14 | 2005-11-09 | Whale Communications Ltd. | System and method for providing conditional access to server-based applications from remote access devices |
US20040177247A1 (en) | 2003-03-05 | 2004-09-09 | Amir Peles | Policy enforcement in dynamic networks |
US7072807B2 (en) | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7461337B2 (en) | 2003-03-12 | 2008-12-02 | International Business Machines Corporation | Exception markup documents |
GB0305959D0 (en) * | 2003-03-15 | 2003-04-23 | Ibm | Client web service access |
WO2004114529A2 (en) | 2003-06-16 | 2004-12-29 | Mentat Inc. | Pre-fetch communication systems and methods |
US7636917B2 (en) | 2003-06-30 | 2009-12-22 | Microsoft Corporation | Network load balancing with host status information |
US7613822B2 (en) | 2003-06-30 | 2009-11-03 | Microsoft Corporation | Network load balancing with session information |
US7546630B2 (en) * | 2003-07-17 | 2009-06-09 | International Business Machines Corporation | Methods, systems, and media to authenticate a user |
US7921152B2 (en) * | 2003-07-17 | 2011-04-05 | International Business Machines Corporation | Method and system for providing user control over receipt of cookies from e-commerce applications |
US7437734B2 (en) * | 2003-08-12 | 2008-10-14 | Hewlett-Packard Development Company, L.P. | Propagating web transaction context into common object model (COM) business logic components |
US7464332B2 (en) | 2003-11-18 | 2008-12-09 | Aaa News, Inc. | Devices, systems and methods for selecting the appearance of a viewer displaying digital content |
US7584500B2 (en) | 2003-11-19 | 2009-09-01 | Hughes Network Systems, Llc | Pre-fetching secure content using proxy architecture |
US20050183140A1 (en) | 2003-11-20 | 2005-08-18 | Goddard Stephen M. | Hierarchical firewall load balancing and L4/L7 dispatching |
US7743420B2 (en) | 2003-12-02 | 2010-06-22 | Imperva, Inc. | Dynamic learning method and adaptive normal behavior profile (NBP) architecture for providing fast protection of enterprise applications |
US20050144315A1 (en) * | 2003-12-08 | 2005-06-30 | International Business Machines Corporation | Method and structure to analyze web client dialogs |
US7827590B2 (en) | 2003-12-10 | 2010-11-02 | Aventail Llc | Controlling access to a set of resources in a network |
US8572249B2 (en) | 2003-12-10 | 2013-10-29 | Aventail Llc | Network appliance for balancing load and platform services |
US8255973B2 (en) | 2003-12-10 | 2012-08-28 | Chris Hopen | Provisioning remote computers for accessing resources |
US8078739B1 (en) * | 2003-12-29 | 2011-12-13 | Cisco Technology, Inc. | Solution for handling URL-substitution for data access in a private network architecture |
US7197502B2 (en) | 2004-02-18 | 2007-03-27 | Friendly Polynomials, Inc. | Machine-implemented activity management system using asynchronously shared activity data objects and journal data items |
US20050262357A1 (en) | 2004-03-11 | 2005-11-24 | Aep Networks | Network access using reverse proxy |
US20050273849A1 (en) | 2004-03-11 | 2005-12-08 | Aep Networks | Network access using secure tunnel |
US20050251856A1 (en) | 2004-03-11 | 2005-11-10 | Aep Networks | Network access using multiple authentication realms |
US20050262063A1 (en) | 2004-04-26 | 2005-11-24 | Watchfire Corporation | Method and system for website analysis |
US7870608B2 (en) * | 2004-05-02 | 2011-01-11 | Markmonitor, Inc. | Early detection and monitoring of online fraud |
US7913302B2 (en) | 2004-05-02 | 2011-03-22 | Markmonitor, Inc. | Advanced responses to online fraud |
US7992204B2 (en) | 2004-05-02 | 2011-08-02 | Markmonitor, Inc. | Enhanced responses to online fraud |
US20070299915A1 (en) | 2004-05-02 | 2007-12-27 | Markmonitor, Inc. | Customer-based detection of online fraud |
AU2004100333A4 (en) | 2004-05-06 | 2004-06-03 | Go Blue Pty Ltd | URL Rewriting Proxy |
US7231405B2 (en) | 2004-05-08 | 2007-06-12 | Doug Norman, Interchange Corp. | Method and apparatus of indexing web pages of a web site for geographical searchine based on user location |
US20050256923A1 (en) | 2004-05-14 | 2005-11-17 | Citrix Systems, Inc. | Methods and apparatus for displaying application output on devices having constrained system resources |
US7454479B2 (en) * | 2004-05-28 | 2008-11-18 | Microsoft Corporation | Flexible teleport architecture |
US8136149B2 (en) | 2004-06-07 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology providing verified secured individual end points |
EP1771979B1 (en) | 2004-07-23 | 2011-11-23 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
US7571464B2 (en) | 2004-08-27 | 2009-08-04 | International Business Machines Corporation | Secure bidirectional cross-system communications framework |
US7506338B2 (en) * | 2004-08-30 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for simplifying the deployment and serviceability of commercial software environments |
US20060080432A1 (en) | 2004-09-03 | 2006-04-13 | Spataro Jared M | Systems and methods for collaboration |
US7818781B2 (en) | 2004-10-01 | 2010-10-19 | Microsoft Corporation | Behavior blocking access control |
CN101133623B (zh) | 2004-12-30 | 2011-11-16 | 茨特里克斯系统公司 | 用于提供客户端加速技术的系统和方法 |
US7373462B2 (en) | 2005-03-29 | 2008-05-13 | International Business Machines Corporation | Snoop filter for filtering snoop requests |
US7734722B2 (en) | 2005-06-02 | 2010-06-08 | Genius.Com Incorporated | Deep clickflow tracking |
US7937756B2 (en) | 2005-08-19 | 2011-05-03 | Cpacket Networks, Inc. | Apparatus and method for facilitating network security |
CA2632235A1 (en) | 2005-12-02 | 2007-06-07 | Citrix Systems, Inc. | Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource |
US8380855B2 (en) | 2005-12-12 | 2013-02-19 | Answer Financial, Inc. | HTTP header intermediary for enabling session-based dynamic site searches |
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 |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US20070180088A1 (en) | 2006-01-27 | 2007-08-02 | Array Networks, Inc. | Seamless roaming across multiple data networks |
US7739744B2 (en) * | 2006-03-31 | 2010-06-15 | Novell, Inc. | Methods and systems for multifactor authentication |
US8151323B2 (en) | 2006-04-12 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for providing levels of access and action control via an SSL VPN appliance |
US20070300185A1 (en) | 2006-06-27 | 2007-12-27 | Microsoft Corporation | Activity-centric adaptive user interface |
US7934253B2 (en) | 2006-07-20 | 2011-04-26 | Trustwave Holdings, Inc. | System and method of securing web applications across an enterprise |
US8572721B2 (en) | 2006-08-03 | 2013-10-29 | Citrix Systems, Inc. | Methods and systems for routing packets in a VPN-client-to-VPN-client connection via an SSL/VPN network appliance |
US8694684B2 (en) * | 2006-08-21 | 2014-04-08 | Citrix Systems, Inc. | Systems and methods of symmetric transport control protocol compression |
US8312120B2 (en) | 2006-08-22 | 2012-11-13 | Citrix Systems, Inc. | Systems and methods for providing dynamic spillover of virtual servers based on bandwidth |
US7706266B2 (en) | 2007-03-12 | 2010-04-27 | Citrix Systems, Inc. | Systems and methods of providing proxy-based quality of service |
US7853678B2 (en) | 2007-03-12 | 2010-12-14 | Citrix Systems, Inc. | Systems and methods for configuring flow control of policy expressions |
US8490148B2 (en) | 2007-03-12 | 2013-07-16 | Citrix Systems, Inc | Systems and methods for managing application security profiles |
US7853679B2 (en) | 2007-03-12 | 2010-12-14 | Citrix Systems, Inc. | Systems and methods for configuring handling of undefined policy events |
US7865589B2 (en) | 2007-03-12 | 2011-01-04 | Citrix Systems, Inc. | Systems and methods for providing structured policy expressions to represent unstructured data in a network appliance |
US8484656B2 (en) | 2007-03-12 | 2013-07-09 | Citrix Systems, Inc. | Systems and methods for providing global server load balancing of heterogeneous devices |
EP2015236A1 (en) | 2007-07-10 | 2009-01-14 | Ubs Ag | Redirection technique in a communication network |
US7925694B2 (en) | 2007-10-19 | 2011-04-12 | Citrix Systems, Inc. | Systems and methods for managing cookies via HTTP content layer |
US20100071052A1 (en) * | 2008-09-13 | 2010-03-18 | Microsoft Corporation | Reverse proxy architecture |
US8073829B2 (en) * | 2008-11-24 | 2011-12-06 | Microsoft Corporation | HTTP cache with URL rewriting |
US8484711B1 (en) * | 2012-10-31 | 2013-07-09 | Fmr Llc | System and method for providing access to a software application |
-
2009
- 2009-01-26 US US12/360,014 patent/US8090877B2/en active Active
- 2009-01-26 US US12/360,019 patent/US8769660B2/en active Active
- 2009-01-26 WO PCT/US2009/032046 patent/WO2009094657A1/en active Application Filing
- 2009-01-26 EP EP09703631.3A patent/EP2241081B1/en active Active
- 2009-01-26 CN CN200980109863.XA patent/CN101984778B/zh not_active Expired - Fee Related
-
2014
- 2014-06-17 US US14/306,354 patent/US9059966B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1363068A (zh) * | 1999-05-10 | 2002-08-07 | 雅虎公司 | 用于代理服务器甜点程序的方法和设备 |
US7085817B1 (en) * | 2000-09-26 | 2006-08-01 | Juniper Networks, Inc. | Method and system for modifying requests for remote resources |
US20040039822A1 (en) * | 2002-06-20 | 2004-02-26 | Michael Bensimon | Process for managing context data using an intermediate server |
US20060112174A1 (en) * | 2004-11-23 | 2006-05-25 | L Heureux Israel | Rule-based networking device |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139185A (zh) * | 2011-12-02 | 2013-06-05 | 中科信息安全共性技术国家工程研究中心有限公司 | 一种实现安全反向代理服务的方法 |
WO2013117157A1 (zh) * | 2012-02-10 | 2013-08-15 | 北京奇虎科技有限公司 | 多账号登录方法及装置 |
US9485240B2 (en) | 2012-02-10 | 2016-11-01 | Beijing Qihoo Technology Company Limited | Multi-account login method and apparatus |
CN104144155B (zh) * | 2013-05-10 | 2018-01-02 | 百度在线网络技术(北京)有限公司 | 用于长连接的会话处理系统和会话处理方法 |
CN104144155A (zh) * | 2013-05-10 | 2014-11-12 | 百度在线网络技术(北京)有限公司 | 用于长连接的会话处理系统和会话处理方法 |
CN104935551A (zh) * | 2014-03-18 | 2015-09-23 | 杭州迪普科技有限公司 | 一种网页篡改防护装置及方法 |
CN104933058A (zh) * | 2014-03-18 | 2015-09-23 | 北京学之途网络科技有限公司 | 一种监测网络访问活动的方法和系统 |
CN104933058B (zh) * | 2014-03-18 | 2018-09-11 | 北京学之途网络科技有限公司 | 一种监测网络访问活动的方法和系统 |
CN104935551B (zh) * | 2014-03-18 | 2018-09-04 | 杭州迪普科技股份有限公司 | 一种网页篡改防护装置及方法 |
CN107005567B (zh) * | 2014-12-12 | 2020-07-28 | 微软技术许可有限责任公司 | 实现通信事件 |
CN107005567A (zh) * | 2014-12-12 | 2017-08-01 | 微软技术许可有限责任公司 | 实现通信事件 |
CN106031097A (zh) * | 2015-01-14 | 2016-10-12 | 华为技术有限公司 | 业务处理方法及装置 |
CN107430514A (zh) * | 2016-03-22 | 2017-12-01 | 谷歌公司 | 使用多服务器的低延迟应用 |
CN107430514B (zh) * | 2016-03-22 | 2021-02-05 | 谷歌有限责任公司 | 使用多服务器的低延迟应用 |
WO2022036833A1 (zh) * | 2020-08-18 | 2022-02-24 | 厦门网宿有限公司 | cookie管理方法、中间节点及WebVPN系统 |
CN112788103A (zh) * | 2020-12-25 | 2021-05-11 | 江苏省未来网络创新研究院 | 一种基于nginx+lua解决同应用多实例web代理访问冲突的方法 |
CN112788103B (zh) * | 2020-12-25 | 2022-08-02 | 江苏省未来网络创新研究院 | 一种基于nginx+lua解决同应用多实例web代理访问冲突的方法 |
Also Published As
Publication number | Publication date |
---|---|
US8769660B2 (en) | 2014-07-01 |
EP2241081B1 (en) | 2018-05-02 |
CN101984778B (zh) | 2014-08-13 |
US20090193129A1 (en) | 2009-07-30 |
US8090877B2 (en) | 2012-01-03 |
US9059966B2 (en) | 2015-06-16 |
EP2241081A1 (en) | 2010-10-20 |
US20140298410A1 (en) | 2014-10-02 |
WO2009094657A1 (en) | 2009-07-30 |
US20090199285A1 (en) | 2009-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101984778B (zh) | 用于细粒度策略驱动的cookie代理的系统和方法 | |
CN101981888B (zh) | 用于ssl vpn免客户机访问的策略驱动的细粒度url编码机制 | |
CN101981887B (zh) | 用于配置和细粒度策略驱动web内容检测和重写的系统和方法 | |
CN102549985B (zh) | 用于为互联网协议加速设备提供多核结构的系统和方法 | |
CN102577302B (zh) | 用于在具有流量管理的连接中使用端点审计的系统和方法 | |
CN102246489B (zh) | 对通过http的异步消息通信进行连接管理的系统和方法 | |
CN102763368B (zh) | 用于跨站点伪造保护的方法和系统 | |
CN102292961B (zh) | 用于对由域名服务(dns)获得的ip地址进行转换的系统和方法 | |
CN102292708B (zh) | 用于策略的http调出的系统和方法 | |
CN102301338B (zh) | 用于基于健康的溢出的系统和方法 | |
CN102292955B (zh) | 用于负载平衡实时流传输协议的系统和方法 | |
CN102224722B (zh) | 用于对象速率限制的系统和方法 | |
CN101632067B (zh) | 用于终端用户体验监控的系统和方法 | |
CN103155496B (zh) | 用于在多核系统中管理服务器发起的连接的系统和方法 | |
CN102763374B (zh) | 用于基于策略地集成到水平地部署的wan优化设备的系统和方法 | |
CN103154895A (zh) | 用于在多核系统中的核上管理cookie代理的系统和方法 | |
CN101682526B (zh) | 用于配置、应用和管理网络装置的面向对象策略表达式的系统和方法 | |
CN103299594A (zh) | 用于可扩展的认证框架的系统和方法 | |
CN104322010A (zh) | 用于比较配置文件和生成校正命令的系统和方法 | |
CN104054316A (zh) | 用于通过网络中的字典压缩短文本的系统和方法 | |
CN105229996A (zh) | 用于减少对动态生成的下一安全记录的拒绝服务攻击的系统和方法 | |
CN103202002A (zh) | 用于自负载平衡访问网关的系统和方法 | |
CN103765851A (zh) | 用于到任何服务的透明的层2重定向的系统和方法 | |
CN103503424A (zh) | 用于实现多核系统中的连接镜像的系统和方法 | |
CN103403707A (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: 20140813 |
|
CF01 | Termination of patent right due to non-payment of annual fee |