Cooke是一种软件构件,它能够在用户端存储用户访问服务器的信息。在服务器端可存储关于Cookie的记录,就是Cooke logs,一般格式是:“name,expiry-date,path,domain,security-level”。对于网络信息服务网站,一切方便用户是其追求的目标,Cookie的分析挖掘提供了分析用户的很好的工具。它是一种允许HTTP协议的服务器端可以取出或存储在用户端的小段信息。当服务器将文件经过HTTP协议传送至用户端时,它可以在HTTP协议的文件头中顺便传送一些额外的信息给用户程序,这其中就可以包含一个Set-Cookie语句。
Cookie的工作原理主要是:服务器向用户建立Cookie。首先由用户方向服务器发起一个请求;服务器接收到请求后,产生一个Set-Cookie报头,放在HTTP报文中一起发给用户方,发起一次会话;用户方收到应答后,若要继续该次会话,则将Set-Cookie中的内容取出,形成一个Cookie文件。Cookie文件由响应浏览器URL请求的服务器程序发送的信息组成,是一个保存在用户端的文本信息。在未退出浏览器前,它被保存在内存;退出浏览器后,便保存在硬盘。不同浏览器把Cookie放在不同文件中,如IE将Cookie存放在\windows\Cookie目录内的多个文件中。用户方向服务器发出请求时,浏览器先对Cookie报头格式中的各项进行解释,根据这些解释信息产生相应的页面。产生Set-Cookie报头,根据应用程序的设计需求和用户的请求信息,、设定Set-Cookie报头中各个项的内容,在应答报文中加入Set-Cookie报头,并发起一次会话。用户方的主要功能是:
(1)发送Cookie报头:用户方在向服务器方发送请求时,依据请求主机、所请求的URL和Cookie期限生成相应的Cookie请求报头,一起送给服务器方。
(2)解释Set-Cookie报头:用户方检索服务器方传来的Set-Cookie应答报头的状态信息,用相应的默认值对未指明的可选项进行解释,并将Set-Cookie报头的信息保存在Cookie.txt文件中。
(3)拒绝Cookie信息:其目的是为了安全防护和禁止对私人信息的侵入。
(4)进行Cookie的管理:当用户方受到一个Set-Cookie报头的NAME值与以前的Cookie的NAME值相同,并且域值、路径的属性也与之相同,则旧的Cookie被新的Cookie取代;也根据expires等属性值来丢弃或保存Cookie信息。不同浏览器的Cookie不能互用,即IE建立的Cookie只能供IE使用,Netscape无法使用。反之亦然。在Client/Server模式中实现Cookie机制,可以利用服务器方的CGI(Common GatewayInterface)、ASP(Active Server Pages)和用户方的Javascript、VB Script等来实现。HTTP协议本身是一种非事务型的,这一种特征对于事务型的网络信息服务来说是不合适的,给网络信息服务带来了一些问题。这些问题通过使用Cookie得到在一定的程度上得到了克服。
Cookie分析具有一定的局限性:首先是用户可能会反利用Cookie,导致服务器收集的信息失真。由于Cookie存放于文本书件中,用户完全可以修改、删除Cookie的内容。其次,由于不同的浏览器所建立的Cookie不可互用,所以,同一个用户完全会打开两个不同的浏览器访问同一个URL的网页,而网站的服务器却误认为是两个不同的用户。这两种情况在统计用户数或进行投票之类的统计时,都会造成重复计算,导致服务器收集的信息失真。在这种情况下,可以结合记录用户的IP地址及上网时间等方法去综合分析。