每个cookie都有四个可选的属性,他们分别控制cookie的生存周期、可见性、安全性等。
1.expires
它指定了cookie的生存期。默认情况下,cookie是暂时存在的,他们存储的值只在浏览器会话期间存在。当浏览器推出后,这些值也就丢失了。通过expires属性,可以为cookie设置一个过期日期。尽管expires属性仍然有效,但是它已经被max-age属性取代,后者用秒来设置cookie的声明周期。设置这两个属性中的任何一个,都会使浏览器把cookie保存到一个本地文件中,以便用户下次访问这个网页时能够再将它读出来。一旦超过了终止日期,或者超过了max-age的生命期,那个cookie就会被浏览器自动从cookie文件中删除。
2.path
它指定了与cookie关联在一起的网页。默认情况下,cookie会和创建它的网页以及与这个网页处于同一个目录下的网页和处于该目录的子目录下的网页关联。例如,如果一个cookie由位于
http://www.wanjiacai.com/login/index.html的网页创建,那么它对位于
http://www.wanjiacai.com/login/order.html和位于
http://www.wanjiacai.com/login/validate/index.html的网页也是可见的,但是对于位于
http://www.wanjiacai.com/lottery/index.html的网页就不可见了。
3.domain
默认情况下,只有和设置cookie的网页来自同一web服务器的页面才能访问这个cookie。但是,大的网站可能需要由多个web服务器共享cookie。例如,位于talk.wanjiancai.com的服务器就可能读取info.wanjiancai.com设置的cookie值。这里就引入了第三个cookie属性domain。将定由位于talk.wanjiancai.com的页面创建的cookie把自己的path属性设置成“/”,把domain设置成了“.wanjiacai.com”,那么所有位于info.wanjiancai.com的页面和所有位于talk.wanjiancai.com的页面以及所有位于wanjiancai.com域的其他服务器上的网页都能够访问这个cookie。如果没有设置cookie的domain值,该属性的默认值就是创建cookie的网页所在的服务器的主机名。注意,不能将一个cookie的域设置成服务器所在的域之外的域。
4.secure
secure是一个布尔值,它指定了在网络上如何传输cookie值。默认情况下,cookie是不安全的,也就是说,他们是通过一个普通的、不安全的http链接传输的。但是如果将cookie标记为安全的,那么它将只在浏览器和服务器通过https或其他安全协议链接是才被传输。
由于对第三方cookie(也就是那些和web页面中的图像相关而不是和web页面本身相关的cookie)的滥用,cookie对很多web用户来说声名很坏。例如,第三方cookie使用一个广告商公司从一个站点到另一个站点地跟踪用户,这种实际情况带来的隐私问题使得一些用户关闭了他们的cookie。在javascript代码中使用cookie之间,希望首先查看他们是否激活。在大多数浏览器中,可以通过检查navigator.cookieEnabled属性来做到这一点。
posted on 2009-08-14 18:05
zhangxl 阅读(2570)
评论(0) 编辑 收藏 所属分类:
web