【Javascript】——Cookie安全机制

**前言:
在javascript视频有一章主讲了cookie的使用和作用,其实对于cookie的作用以前也有过接触,比如一些浏览记录等临时文件等都和它有关系,这次将系统的进行学习它的概念和基本操作。
内容:
一:Cookie的概念
Cookie是一小段文本,存储着特定网站或网站相关的信息,以便在不同页面之间,浏览器与服务器之间相互传递数据。
其实用一句话的意思就是在浏览器端保存一些数据的一种方式。
二.Cookie的限制
浏览器限制了Cookie的大小,容量是4kb;
浏览器限制了Cookie的数量,文件数量是20个.
三.Cookie的机制**

<Cookiename+Cookievalue;expire=expirationdategmt;path=urlpath;domain=sitedomain;secure 
其中cookiename是cookie的名字和值
    expire是有效期
    path关联的路径
    domain是域名,也可以表示的是路径名。
    secure是安全保密

四:Cookie的基本操作
1.Cookie的存取

//创建cookie的通用函数。
function setCookie(name, value, expires, path, domain, secure) {

    var cookiename = encodeURIComponent(name) + '=' + encodeURIComponent(value); //设置cookie的名字和值

    if (expires instanceof Date) {
        cookiename += ';expires=' + expires;  //设置cookie的保存时间
    }
    if (path) {
        cookiename += 'path=' + path;  //设置cookie的保存路径
    }
    if (domain) {
        cookiename += 'domain=' + domain;  //设置cookie的域名
    }
    if (secure) {
        cookiename += ';secure=';  //设置访问的权限。
    }
    document.cookie = cookiename;
}
------------------------------------------------------------------------------------------------
//设置过期的时间
   function setCookieDate(day) {
       var date = null;
       if (typeof day=='number'&& day>0) {
           date = new Date();
           date.setDate(date.getDate() + day);
       } else {
           throw new Error('您传递的天数不合法!');
       }
       return date;
   }
------------------------------------------------------------------------------------------------
 //创建了一个名为user的cookie,保存时间为7天
  setCookie('user', 'changyinling', setCookieDate(7)); 
  //创建了一个名为url的cookie,保存时间为7天
   setCookie('url','yc60.com',setCookieDate(7));
  // 创建了一个名为email的cookie,保存时间为30天。
  setCookie('email', 'yc60@163.com', setCookieDate(30));

2.Cookie的删除

删除的方式有三种:
一种通过在浏览器上手动清空cookie文件;
二是通过代码设置它的保存时间为0;
三是将时间调到过期的时间以后。

时间调到过期的时间以后。

//删除cookie的通用函数
 function deleteCookie(name, value) {
       var cookiename = encodeURIComponent(name) + '=' + encodeURIComponent(value);   //获取cookie的名字和值
       var exp = new Date();
       //关键是这一步,让保存的时间早于现在的时间
       exp.setTime(exp.getDate() - 10000);
       document.cookie = name + '=' + escape(value) + ';expires=' + exp.toGMTString();
       var checkcookie = document.cookie;
       if (checkcookie=='') {
           alert('当前网页已经没有cookie!');
       }
   }
   deleteCookie('user', 'changyinling')

设置它的保存时间为0

  function deleteCookie(name, value) {
       var cookiename = encodeURIComponent(name) + '=' + encodeURIComponent(value);   //获取cookie的名字和值
       //使保存的时间为0,也就是不保存
       var exp = new Date(0);
       document.cookie = name + '=' + escape(value) + ';expires=' + exp.toGMTString();
       var checkcookie = document.cookie;
       if (checkcookie=='') {
           alert('当前网页已经没有cookie!');
       }
   }
      deleteCookie('user', 'changyinling')

3.获取对应的cookie

//获取相对应的cookie的value值的通用的代码

   function getcookie(name) {
       var cookiename=encodeuricomponent(name)+'=';
       var cookiestart = document.cookie.indexof(cookiename);
       if (cookiestart > -1) {  //表示当前的cookiename是存在的。
       //获取从开始索引处到分号处的索引。
           var cookieend = document.cookie.indexof(';', cookiestart);
        //表示的是最后一个cookie,因为最后没有分号,所以cookieend的索引为应该是整个cookie的长度。
           if (cookieend==-1) {
               cookieend = document.cookie.length;
           }
      //获取对应cookiename的value值
           var cookievalue = document.cookie.substring(cookiestart + cookiename.length, cookieend);
       }
       return cookievalue;     
  }

总结
基本上对于cookie的基本操作已经讲完了,其实我们在创建了一个cookie的时候需要结合浏览器查看是否已经创建成功了,cookie其实就是在浏览器上的缓冲文件的一类,还有两种方式用于保存临时文件,接下的博客将细细讲解!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 33
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值