介绍
cookie是浏览器提供的一种机制,它将document对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。
什么是cookie
Cookie是浏览器提供给客户端的用来存储少量数据的一种机制.通过Cookie无论是客户端脚本还是服务器端脚本,都可以很方便的在一个页面引用另一个页面的数据.Cookie是浏览器提供给javascript的少数持久化对象之一.所谓持久化对象,是指他的生命周期长于浏览器Window对象的生命周期.
客户端Cookie
Document对象的cookie属性可以操作浏览器的cookie对象,这个对象是个单例模式,也就意味着它在浏览器实例中是唯一的,两个完全不同的窗口访问的是一个实例
javascript是通过设置字符串的描述方式来通知浏览器创建和删除cookie的.(一直以来cookie是一个颇受争议的话题,由于涉及到安全隐患,遭到了众多网络专家的批评).
Cookie的属性
浏览器的cookie对象可以看做一个key-value的关联数组.有name和value两个必填属性,还有4个可选属性,分别是生存期,可见性,安全性.
(1)生存期(expires).默认情况下cookie存储的值只在浏览器会话期间存在,当用户关闭浏览器,这些值就被销毁,如果要让cookie存在的时间超过会话期间,可以通过expires指定一个长久的失效日期,只要在这日期之 前,cookie就是存在的.
(2)可见路径(path).指定了和cookie关联一起的网页,只有在设置的路径下才能访问到cookie,如果想让某个服务器域的任何网页都能访问这个cookie,可以将他的path设置成"/".
(3)可见域(domain).同大多数浏览器持久化对象一样,cookie因为安全因素遵循"同源策略",因此在某个服务器域上创建的cookie只有在本域才能访问.默认情况下domain的值就是创建cookie所在服务器的主机名,在domain设置成子域可以限制cookie只有在子域下才能访问,但浏览器不允许将cookie设置成服务器所在域之外的域.
(4)安全性(secure).是一个布尔值,指定了网络cookie的传输方式,默认的secure值为false,意味着可以通过普通的,不安全的http连接传输.但如果设置为true,那么cookie将只在浏览器通过Https或其他的安全协议才被传输.
Cookie的操作
<script type="text/javascript"> <!-- var Cookie = { // 设置Cookie setCookie: function(name, value, expires, path, domain){ document.cookie = name + "=" + escape( value ) + ( ( expires ) ? ";expires=" + expires.toGMTString() : "" ) + ( ( path ) ? ";path=" + path : "" ) + ( ( domain ) ? ";domain=" + domain : "" ); }, // 获取Cookie getCookie: function( name ){ var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); if(arr != null) return unescape(arr[2]); return null; }, // 删除Cookie delCookie: function( name ){ var d = new Date(); d.setTime(d.getTime() - 3600 * 1000); this.setCookie(name, "", d); } } Cookie.setCookie("a", 34); // 设置cookie为 name : a; value : 34 Cookie.delCookie("a") // 删除name为a的cookie alert(Cookie.getCookie("a")); // 返回null 因为cookie已经删除 //--> </script>
详细讲解
建议--http://www.cnblogs.com/chengxiaohui/articles/1869244.html