首页 > 代码库 > cookie(转)

cookie(转)

Cookie,也称之为HTTP Cookie、Web Cookie或者浏览器Cookie,是一小段由网站生成的并被存储在用户浏览器的数据,它随着用户访问网站而产生。当用户在以后再次浏览相同的网站,这小段包含用户之前信息的数据将被发送回网站。

Cookie的种类

Session Cookie:一个用户的Session Cookie(也称之为内存Cookie或瞬息Cookie)是当用户浏览网站时候,网站暂存的Cookie。当不在该Cookie的过期日期或者有效间 隔内,访问网站Session Cookie将被创建,当用户关闭浏览器的时候,Session Cookie将被删除。
第一方Cookie:第一方Cookie是由受访网站相同域名(或其子域名)创建的。
第三方Cookie:第三方Cookie是由不同于受访网站域名创建的。
Cookie的构成

Cookie名字(Name);
Cookie的值(Value);
Cookie的过期时间(Expires / Max-Age);
Cookie作用路径(Path);
Cookie所在域名(Domain);
使用Cookie进行安全连接(Secure)。
前两个参数是Cookie应用的必要条件,另外,还包括Cookie大小(Size,不同浏览器对Cookie个数及大小限制是有差异的)。

Cookie的用途

1.Session管理
2.个性化识别
3.跟踪与监测
前两者就不多说了,关于Cookie应用于跟踪与监测。虽然跟踪也可以使用用户IP之类,但是Cookie会更准确一些:

如果用户请求一个站点的页面,但是这个请求不包含Cookie,服务端将认为是第一个访问的页面,并为其创建一个随机字符串并且和页面内容一同发送给浏览器(客户端);
从这之后,Cookie将自动的随着每次的页面请求一同发向服务器,而服务器也将在日志中记录下来这些请求Cookie、请求页面的URL、请求日期时间。
Cookie的实现

浏览器向客户端请求index.html网址;

浏览器向客户端请求index.html网址;

服务器响应到请求信息

服务器响应到请求信息,为该浏览器创建Cookie,名为name的Cookie为value;名为name2的Cookie为value2,并且其过期时间为2021年。同时返回页面内容给浏览器;

当浏览器再次向服务端请求一个页面,将附上Cookie信息

当浏览器再次向服务端请求一个页面,将附上Cookie信息,其中包含name的Cookie的值为value,name2的Cookie的值为value2,这个时候服务端就可以根据这个Cookie对应到之前的行为和特征了。

第一方Cookie和第三方Cookie?

首先,Cookie安全机制决定Cookie信息只在相同域名中读写。对于一个网站而言,就存在第一方Cookie与第三方Cookie了,第一方Cookie即和网站同域名下生成的Cookie,而第三方Cookie则是一个第三方域名创建的Cookie,因此两者不能相互读写。

而各个浏览器的安全级别设置的不一样,也会不同程度的接受或者拒绝Cookie。在过往的调查中显示,拒绝第三方Cookie的用户比拒绝第一方Cookie的用户多不少,因此也就没法进行识别统计了(当然,绝大多数用户还是会接受第一方Cookie的)。

Google Analytics(Universal Analytics)中的Cookie

在新版的UA中,Cookie已经由之前的多个变为一个了。Cookie Name叫_ga,形如:

_ga=1.2.17184633.1172761150.1374069301

这个Cookie仅记录了用户的唯一ID信息(Client ID,cid)。创建Cookie的域名为网站域名(第一方Cookie),有效期为2年。我们可以通过Chrome的开发者工具中Resources中的Cookies来查看到该Cookie信息。设置Google Analytics(Universal Analytics)便捷跨域的时候,该Cookie信息也会被写在目标网址的_ga参数中。

参考资料:

http://en.wikipedia.org/wiki/HTTP_cookie

http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html

【本文精选自:http://www.myttnn.com/web-analytics/cookie/】