Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30465033
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: Java

2011-11-14 11:34:58

  1. .什么是Cookie

  2.   Cookie是浏览器提供给客户端的用来存储少量数据的一种机制.通过Cookie无论是客户端脚本还是服务器端脚本,都可以很方便的在一个页面引用另一个页面的数据.Cookie是浏览器提供给javascript的少数持久化对象之一.所谓持久化对象,是指他的生命周期长于浏览器 Window对象的生命周期.

  3.  

  4. .客户端Cookie

  5.   Document对象的cookie属性可以操作浏览器的cookie对象,这个对象是个单例模式,也就意味着它在浏览器实例中是唯一的,两个完全不同的窗口访问的是一个实例

  6.   javascript是通过设置字符串的描述方式来通知浏览器创建和删除cookie的.(一直以来cookie是一个颇受争议的话题,由于涉及到安全隐患,遭到了众多网络专家的批评).

  7.  

  8. .Cookie的属性

  9.   浏览器的cookie对象可以看做一个key-value的关联数组.有name和value两个必填属性,还有4个可选属性,分别是生存期,可见性,安全性.

  10.   (1)生存期(expires).默认情况下cookie存储的值只在浏览器会话期间存在,当用户关闭浏览器,这些值就被销毁,如果要让cookie存在的时间超过会话期间,可以通过expires指定一个长久的失效日期,只要在这日期之前,cookie就是存在的.

  11.   (2)可见路径(path).指定了和cookie关联一起的网页,只有在设置的路径下才能访问到cookie,如果想让某个服务器域的任何网页都能访问这个cookie,可以将他的path设置成"/".

  12.   (3)可见域(domain).同大多数浏览器持久化对象一样,cookie因为安全因素遵循"同源策略",因此在某个服务器域上创建的 cookie只有在本域才能访问.默认情况下domain的值就是创建cookie所在服务器的主机名,在domain设置成子域可以限制cookie只有在子域下才能访问,但浏览器不允许将cookie设置成服务器所在域之外的域.

  13.   (4)安全性(secure).是一个布尔值,指定了网络cookie的传输方式,默认的secure值为false,意味着可以通过普通的,不安全的http连接传输.但如果设置为true,那么cookie将只在浏览器通过Https或其他的安全协议才被传输.

  14.  

  15. .Cookie的基本形式结构

  16. document.cookie = "name=value;expire=date;path=path;domain=domain;secure=boolean";

  17.  

  18. .Cookie操作

  19.  
  20. <script type="text/javascript">
  21. <!--
  22.     var Cookie = {
  23.         // 设置Cookie
  24.         setCookie: function(name, value, expires, path, domain){
  25.             document.cookie = name + "=" + escape( value ) +
  26.             ( ( expires ) ? ";expires=" + expires.toGMTString() : "" ) +
  27.             ( ( path ) ? ";path=" + path : "" ) +
  28.             ( ( domain ) ? ";domain=" + domain : "" );
  29.         },
  30.         // 获取Cookie
  31.         getCookie: function( name ){
  32.             var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
  33.             if(arr != null) return unescape(arr[2]); return null;
  34.         },
  35.         // 删除Cookie
  36.         delCookie: function( name ){
  37.             var d = new Date();
  38.             d.setTime(d.getTime() - 3600 * 1000);
  39.             this.setCookie(name, "", d);
  40.         }
  41.     }

  42.     Cookie.setCookie("a", 34); // 设置cookie为 name : a; value : 34
  43.     Cookie.delCookie("a") // 删除name为a的cookie
  44.     alert(Cookie.getCookie("a")); // 返回null 因为cookie已经删除
  45. //-->
  46. </script>

  47.  

  48.  附注:谷歌的Chrome不支持离线单机设置cookie(如静态html的形式),cookie只存在网络状态.
阅读(1281) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~