Cookie交换,是指捕获、分析和交换基于HTTP cookie传输流的功能。这一功能使网络管理人员能够对用户的传输流进行前所未有的控制,并提供定制Web服务的新选择。
在RFC 2109中被定义为HTTP头,并在Netscape的HTTP 1.0规范中也有定义的cookie是插入到HTTP流中用以保持客户机与初始服务器之间状态的一种标记。尽管传统包交换机对第二层媒介访问控制和第三层IP地址信息进行检查,但它不能读取URL或cookie,并且不能跟踪全部Web会话。而新型设备,即Web交换机则支持具有内容智能的处理功能。
广泛应用在搜索引擎、购物车(shopping carts)、基于Web 的电子邮件以及安全电子商务应用中的cookie可以帮助管理人员对不同用户的传输进行识别和分类。
许多重要的Web应用都要求持续性。持续性是指来自一台客户机的交易必须由同一台服务器来处理以保证每次交易的完整性。使所有的商品都放在一部在线购物车上以及需要信用卡处理的结账交易就是两个很好的例子。
但是在用户传输流汇集在所谓的“元代理”点(如美国在线)上的情况下,多个用户可以用相同的IP地址进入一个站点。而在使用多台代理服务器的情况下,有可能同一个用户的每一次TCP连接被分配给不同的IP地址。
这就给保持会话持续性的传统负载平衡器带来了问题。由于传统负载平衡器一般使用安全IP地址将用户会话绑定到一台特定的服务器上提供电子商务应用,因此,从美国在线或其它元代理进入Web站点的传输流会给服务器造成灾难,这是因为所有的传输流都流到同一台服务器上。
由于cookie是在每次TCP会话建立后在HTTP头中发送的,所以捕获cookie 是一项复杂、需要进行大量处理的工作,它可能会大大降低性能。其原因是:在捕获cookie时,Web交换机必须与客户机完成三路TCP握手。
当Web交换机接收到客户机向这台Web交换机上的一个虚拟IP地址发送TCP SYN 请求时,捕获cookie的工作就开始了。这台交换机接收到的所有数据帧都被缓存起来,直到cookie出现。一旦捕获到cookie,交换机将对它进行处理以决定处理这次请求的最佳服务器。然后,Web交换机将TCP SYN 请求发送到被选中的服务器上,并且建立从Web交换机到这台服务器的新连接。随后,以前缓存的来自客户机的传输流被发送到服务器上,Web交换机将客户机到交换机接入与交换机到服务器接入连接起来。
为解决这类问题,Web交换机在设计上是围绕分布式处理结构开发的。这种结构在每个交换端口上使用专用处理器(一般为两个以上)。这些处理器独立运行,对与特定端口相关的所有Web会话进行分析和连接。
总之,cookie 交换朝着在赋予网络管理人员更多的控制和灵活的同时,向最终用户提供创新的新型服务的方向前进了一大步。