欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cookie

程序员文章站 2024-03-20 13:43:10
...

是什么

  1. web服务器存储在你本地磁盘的一个小的文本文件
  2. cookie记录了你的用户名,密码,浏览的网页等

属性

  1. Expires ,Max Age:
  1. 都用来指定cookie的过期时间;
    2. Expires在HTTP/1.0中定义。max-age在HTTP/1.1中才有定义;
    3. Expires指定一个绝对的过期时间(GMT格式)。max-age 指定的是从文档被访问后的存活时间,这个时间是个相对值(比如:3600s),相对的是文档第一次被请求时服务器记录的Request_time(请求时间),
  1. Domain和Path

Domain是域名,Path是路径,两者加起来就构成了 URL,Domain和Path一起来限制 cookie 能被哪些 URL 访问。

  1. size

cookie的大小

  1. Secure

Secure选项用来设置cookie只在确保安全的请求中才会发送。当请求是HTTPS或者其他安全协议时,包含 Secure选项的
cookie 才能被发送至服务器。

  1. httpOnly

设置cookie是否能通过 js 去访问

客户端设置cookie

方法:

document.cookie=“name=123”;

注意:

document.cookie="name=syl; age=18"

这样的话只有name生效,即每次只能设置一个。因此需要封装或者多次调用。
封装:

//设置cookies
function setCookie(name,value,MyDay){
    var ExDate = new Date();
    ExDate.setDate(ExDate.getDate() + MyDay);//如果需要时间的话以这样获取。
    document.cookie = name + "=" + value + ";expires=" + ExDate;
}
//获取cookies
function getCookie(name){
    //例如cookie是"username=abc; password=123"
    var arr = document.cookie.split('; ');//用“;”和空格来划分cookie
    for(var i = 0 ;i < arr.length ; i++){
        var arr2 = arr[i].split("=");
        if(arr2[0] == name){
            return arr2[1];
        }
    }
    return "";//整个遍历完没找到,就返回空值
}
//删除cookies
function removeCookie(name){
    setCookie(name, "1", -1)//第二个value值随便设个值,第三个值设为-1表示:已经过期。
}

缺点

  1. 每个特定域名下的cookie数量有限,E6或更低版本最多20个cookie,IE7及之后可以有50个cookie,firefox最多50个cookie;

  2. 存储量太小,只有4KB;

  3. 每次HTTP请求都会发送到服务端,影响获取资源的效率;

  4. 安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。;

相关标签: 前端