cookie

来源:互联网 发布:有韵味的句子知乎 编辑:程序博客网 时间:2024/06/08 09:10
cookie,在我第一次知道这个东西的时候,以为是饼干,但是当时是在手机浏览器中看见有一个关闭cookie的选项,然后当时百度了一下依稀记得它是一个存储信息的东西。直到现在我认真学习有关方面的东西的时候,终于了解了它是一个什么东西。以及它是用来干什么的。
一、cookie是什么?
Cookie(复数形态Cookies),中文名称为“小型文本文件”或“小甜饼”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。定义于RFC2109。是网景公司的前雇员卢·蒙特利(英语:Lou Montulli)(Lou Montulli)在1993年3月的发明。(当然摘自网络了)
二、在js中cookie的含义。
在js中,cookie是一个变量,这个变量放在使用者的计算机硬盘当中。js可以创建cookie并且也可以取回cookie。当同一台计算机浏览某个网页时,就会发送cookie。(cookie是针对浏览器的)。举一个例子很好说明cookie,当某个用户在使用网站时创建了一个用户名和密码时,如果他开启了cookie那么当他在下次访问这个网站的时候就可以调用cookie,而不用再次输入账号和密码啦。从而为用户节省了时间,简化了操作。cookie其实是一个对象的属性,这个对象是:document。而document是HTML中的一个对象,在这里不过多说明。
三、怎么创建cookie。
创建cookie很简单比如:
document.cookie = "名字:晨风";

但是此时应该注意,这个cookie只是短暂存在于浏览器中的,一旦关闭浏览器则cookie就失效了,cookie的查看在每个浏览器中对应的位置不同,在Google的浏览器中,cookie在地址栏的前面的感叹号之中。平时所用到的cookie的过期时间很长,那么如何能办到长久的使cookie有效呢?下面就完整的说明在创建cookie字符串的时候需要注意的部分:
name(名称)、value(值)、expires(过期时间)、path(路径)、domain(域)、和secure(安全性)。
1、名称和值
cookie字符串的第一部分包括名称和值,名称是用来引用cookie的,而值是用来表达cookie的信息部分。第一部分为必选的部分,就如同不以结婚为目的的谈恋爱是耍流氓一样,不存储名称和值的cookie是数流氓的行径,因为保存信息是cookie的目的所在,必须确保cookie的名称和值在cookie字符串的开头部分。
2、过期时间
document.cookie = '名字 = 晨风;expires = Tue, 01 Dec  2020 00:00:00 GMT;'

如果希望cookie存在的时间比较长,那么就涉及到了cookie的第二部分,也是就是expires,过期时间,在上述代码中,cookie的过期时间是2020年12月1号。这里需要注意的是:格式,过期时间的格式十分重要,与toGMTString()方法给出的cookie的格式相同。当然也可以用Date对象来获取当前的日期和时间,然后将cookie设置成该日期后的3或6个月过期,这样就不用一直更改时间了。(比如2020年过后还得再改代码,岂不是很不好?)
var exprieDate = new Date();expireDate.setMonth(expireDate.getMonth() + 6);document.cookie = '名字 = 晨风;expires = '+expireDate.toGMTString()+';';

这个代码就是在当前日期后的6个月过期。当然如果用户提前把cookie删除的话那也是没有办法的。
3.路径
在一般情况之下,一般的cookie只用设置neme,value,exprice就可以了。访问网站也是有路径的,Web服务器采用的路径方法和硬盘的存储方法类似,但是在网页中,cookie只是针对于某个特定的路径,而不是全域的,如果一旦cookie的路劲出现问题,那么用户的安全也就出现了问题,对于免费的Web而言,大部分的时候是不允许共享cookie的所以cookie的路径设置也是很重要的。
如果你登录一个网站,比如说,你在某网站买了一件衣服(这时需要你的cookie),也买了一块面包(这时也需要你的cookie),然后结账的页面也需要你的cookie,那么此时你就需要把cookie的路径设置成该网页的主目录中(这个主目录并非全域),以便可以方便的使用cookie,
document.cookie = '名字 = 晨风;expires =  Tue, 01 Dec  2020 00:00:00 GMT'+';path=/store;';


当然如果想要全域都可以访问这个cookie那么path = /就可以了。
4、域和安全
由于我水平有限,而且这是比较高级的操作技巧,所以只简单的介绍一下。
域是cookie的第四部分,域的设置是可选的。如果同一个域里面有好几个子域,想让这几个子域都可以共享一个cookie那么就可以用域来指定域的所有子目录,
document.cookie = '名字 = 晨风;expires =  Tue, 01 Dec  2020 00:00:00 GMT'+';path=/;'+';domain = '域'.com;';


cookie的最后一部分是安全,secure,这是一个布尔值,如果为true  ,cookie仅发送给尝试使用安全通道检索它的Web服务器。它的默认值为false时表示:总是发送cookie,不考虑安全性,仅用于SSL建立服务器的情况。





































原创粉丝点击