资讯专栏INFORMATION COLUMN

cookie详解

qingshanli1988 / 2225人阅读

摘要:通过加密和安全传输技术,减少被破解的可能性。只在中存放不敏感数据,即使被盗也不会有重大损失。限制每个与最多个和对于每个域的数量限制没有硬性规定。安全性文件中可能含有涉密信息,可能会导致信息泄露。

一、 什么是cookie

A cookie is a small stub of information left by a website on a visitor"s computer through the web browser.

HTTP cookie,通常称为cookie,用于在客户端存储会话信息。

二、 cookie的构成

一般有以下几部分组成

set cookie: name=value; domain=.mozilla.org; expires=Feb, 13-Mar-2018 11:47:50; path=/; secure

名称:一个唯一确定cookie的名称,部分大小写,cookie的名字必须是经过URL编码的,一般可以采用某个前缀在加上当前时间的做法,这样的话名称能够确保是唯一的,也比较方便。

值:存储在cookie中的字符串值,必须经过被URL编码

域:对于哪个域是有效的,如果没有设置的话,默认来自设置cookie的那个域,在上诉例子中就是.Mozilla.org

失效时间:表示cookie何时应该被删除的时间戳,这个日期是GMT格式的日期,如果设置是以前的时间,cookie会被立刻删除。上诉cookie的失效时间是Feb,13-Mar-2018 11:47:50。

路径:指定域中的那个路径,应该想服务器发送cookie,/ 表示没有限制
安全标志:指定以后,cookie只有在使用SSL连接的时候才可以发送到服务器。

三、cookie常见操作 1. cookie的建立
function setCookie(name,value,expiredate,domain,path,secure){
    var cookieText=escape(name)+"="+escape(value);
    if(expiredate){
        var exdate=new Date();
        exdate.setDate(exdate.getDate()+expiredate);
        cookieText+=";expires="+exdate.toGMTString();
    }
    if(domain){
        cookieText+=";domain="+domain;
    }
    if(path){
        cookieText+=";path="+path;
    }
    if(secure){
        cookieText+=";secure";
    }
    document.cookie=cookieText;
}

把这六个参数传入进去,或者传入几个参数就可以了,必须传入的参数为name和value。
调用的方式可以如下:

setCookie("my","hello world","January 1,2017");
2.cookie的查询
function getCookie(name){
    var cookieName=encodeURIComponent(name)+"=",
    cookieStart=document.cookie.indexOf(cookieName),
    cookieValue=null;
    if(cookieStart>-1){
        var cookieEnd=document.cookie.indexOf(";",cookieStart);
        if(cookieEnd==-1){
            cookieEnd=document.cookie.Length;
        }
        cookieValue=decodeURIComponent(document.cookie.substring(cookieStart+document.cookie.length,cookieEnd));
    }
    return cookieValue;
}

主要的思路是通过找到字符串的开头和结尾,然后通过substring()函数把value值提取出来。

3.cookie的删除
function deCookie(name,value,expiredate,domain,path,secure){
    this.setCookie(name,"",new Date(0),domain,path,secure);
    }

重新定义cookie,把时间调为过去,原先的cookie就会失效,value也被设置为空值,这样就可以删除一个cookie。

四、 cookie的应用

购物车(网购)

自动登录(登录账号时的自动登录)

精准广告
平常浏览网页时有时会推出商品刚好是你最近浏览过,买过的类似东西,这些是通过cookie记录的。

记住登录状态

五、cookie优点

通过良好的编程,控制保存在cookie中的session对象的大小。

通过加密和安全传输技术(SSL),减少cookie被破解的可能性。

只在cookie中存放不敏感数据,即使被盗也不会有重大损失。

控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。、

不需要服务器资源,直接存储在本地。

六、cookie缺点 1. 每个域的cookie总数是有限的,不同浏览器之间各有不同。

IE6以及更低版本限制每个域名最多20个cookie

IE7之后的版本每个域名最多50个。

Firefox限制每个与最多50个cookie

Safari和Chrome对于每个域的cookie数量限制没有硬性规定。

2.cookie的清理

IE和Opera会删除最近最少使用过的cookie,但是Firefox是随机决定要清除哪个cookie。

3. cookie大小的限制

大多数浏览器4096B的长度限制,为了兼容多种浏览器,最好将长度限制在4095B以内.
每个domain最多只能有20条cookie。

4. 安全性

Cookie文件中可能含有涉密信息,可能会导致信息泄露。
Cookie可以被改写,欺骗服务程序或者搜集资料从事非法活动。

七、参考资料

Document.cookie

《JavaScript高级程序设计》Nicholas C.Zakas著 李松峰 曹力译

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91646.html

相关文章

  • Cookie 详解以及实现一个 cookie 操作库

    摘要:详解以及实现一个操作库在前端有着大量的应用,但有时我们对它还是一知半解。若没有设置则是当前主机不包括子域名。现在我们来实现一个的操作库通过设置过期时间来实现删除,也是必须,因为需要知道作用范围,没有设置则会生成一个空的同名属性。 Cookie 详解以及实现一个 cookie 操作库 cookie 在前端有着大量的应用,但有时我们对它还是一知半解。下面来看看它的一些具体的用法 Set-C...

    yck 评论0 收藏0
  • Cookie 和 session详解

    摘要:协议是无状态的,一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换建立新的连接,也就是说,服务器无法跟踪会话。而和就是用与解决这种问题。值得一提的是是建立在的基础上创建的。注意在的文件中,设置了的生命周期最长为分钟。 在将cookie 和 session 之前需要先理解什么是会话会话: 用户打开一个浏览器,点击多个超链接,访问多个web资源,然后关闭浏览器,整个过程称为一个...

    wow_worktile 评论0 收藏0
  • Cookie和Session详解

    摘要:例如要想在多个二级域名中共享,需要设置为顶级域名,这样就可以在所有二级域名里面或者到这个的值了。顶级域名只能获取到设置为顶级域名的,设置为其他子级域名的无法获取。 Cookie和Session详解 Cookie Cookie只存储在客服端 Cookie是什么:Cookies是web服务器存放在用户硬盘的一段文本,Cookies允许一个wen站点在用户的机器存放一些文本的信息,并可以在以...

    Little_XM 评论0 收藏0
  • cookie与session的使用(详解

    摘要:什么是用来存储客户端的一小段文本是一门客户端的技术因为是存储在客户端浏览器中的是为了实现客户端与服务器端之间的状态的保持技术,不安全,不要使用存储敏感信息比如登录状态和登录信息一些敏感的数据应该存储在服务器端的值从哪里来的当你访问一个网站这 什么是cookie, 用来存储客户端的一小段文本是一门客户端的技术 因为cookie是存储在客户端浏览器中的是为了实现 客户端与服务器端之间的状态...

    liujs 评论0 收藏0
  • 详解Cookie,localStorage与seesionStorage

    摘要:缺点数量和长度受限制,数量部分不同的浏览器不一样,长度是不能超过,否则会被截掉。更容易受到安全攻击。不会在每个请求中被携带。遵循同源政策,保存数据会相对来说安全些。的优缺点基本上和是相同的,同属于,返回的也都是一个对象。 前言 这些api的发展历程? 这些api各自的优缺点是什么? 这些api的使用场景? 怎么用就不说了,因为直接看文档就可以了 参考了很多篇文章,现在把所看的内容总...

    Rango 评论0 收藏0

发表评论

0条评论

qingshanli1988

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<