javascript-cookie字符串说明

页面导航:首页 > 网络编程 > JavaScript > javascript-cookie字符串说明

javascript-cookie字符串说明

来源: 作者: 时间:2016-01-23 10:23 【

一个完整的cookie需要6个子串:name(名字),value(),expires(过期时间),path(路径),domain(域)和secure(安全性),其中后4个子串是可选的 下面逐一介绍这6个子串的设置 1 name和value n

一个完整的cookie需要6个子串:name(名字),value(值),expires(过期时间),path(路径),domain(域)和secure(安全性),其中后4个子串是可选的.下面逐一介绍这6个子串的设置.

 

1.namevalue

name用来引用该cookie,value则是该cookie所保存的信息.name/value对是必须设置的.例如:

 

 document.cookie = 'UserName=Paul';

 

cookie的值是一个简单的字符串,如果要保存的是数值类型的数据,也必须按字符串形式保存在cookie中.除非对这些特殊字符进行了特定的编码,否则在将字符串保存在cookie中时,某些字符如分号(;),不能包含在值字符串中,这是因为在cookie字符串将分号作为不同部分的分隔符.

 

2.expires(过期时间)

cookie只具有有限的生命期,,如果没有设置一个cookie的过期时间,则当用户关闭后,该cookie就会过期.当用户再次打开浏览器时,该cookie就已经不存在了.这种生存期为浏览器会话期的cookie被称为会话cookie.用户会话(usersession)指的是某用户单次访问网站的持续时间.如果使cookie存在更长的时间,就要给cookie设置一个过期时间,如下所示:

 

var date=new Date();
date.setDate((date.getDate()+7));
document.cookie ='UserName='+'P'+';expires='+date;

 

上段代码使该cookie的过期时间为当前时间(cookie创建时间)之后的7天.其他一些因素可能导致cookie在过期时间之前就失效,例如当用户手动删除cookie,或者cookie的数量达到浏览器所能支持的cookie数量的上限.

(注意:过期时间的格式是分成重要的,特别对于IE浏览器来说.cookie的过期时间格式必须与toGMTString()方法所返回的日期时间格式完全相同.实际使用中我们通常会采用以上的方法,先使用Date对象获取时间,然后在赋给过期时间)

 

3.path(路径)

web服务器将整个网站合理的划分为不同的目录,而不是整个网站的所有文件统一放在一个目录之中.这与cookie有什么关系呢?cookie不仅仅是特定于某个域,还特定于该域中的具体路径.例如,位于www.xufengzhu.com/a/目录下的页面创建一个cookie,那么只有在该目录中的界面,或者在该目录的子目录中的页面才允许访问或修改这个cookie.位于www.xufengzhu.com/b/目录下的页面则不能访问.这大大提高了站点的安全性.如下例子所示:

 

var path = '/E:/JS/demo';
document.cookie = 'user='+ encodeURIComponent('徐凤竹') + '; path=' + path;

 

但是,如果我们想从两个不同的路径来访问某一cookie,那该怎么办?很简单,将cookie的path设置为父目录的路径,根据上面的逻辑,我们就可以实现啦.

值得注意的是,尽管windows对于目录名并不区分大小写,但是其他的操作系统则可能对目录名区分字母的大小写.例如,如果网站运行于基于Unix或系统的服务器上,则path标记就区分大小写.

 

4.domain()

默认情况下,cookie仅对设置该cookie的页面所在的域有效.例如,在某个web服务器上运行着两个站点,一个是域名为a.book.com的站点,一个是域名为b.book.com的站点.一个站点上设置cookie,另一个是不能访问的.大多数情况下这正是我们想要的,但是特殊情况下就不同了.这个时候我们可以使用domain子串来设置一个域名,使得该域名及其所有的子域都可以访问该cookie.如下代码,创建一个cookie, book.com域及其所有子域都可以访问该cookie.

 

document.cookie= 'user=' + encodeURIComponent('徐凤竹') + '; domain= book.com';

 

注意:只有book.com域及其所有子域可以访问该cookie,其他域不可以.

 

5.secure(安全性)

secure是一个布尔值,它指定了如何在网络上传输cookie的值.默认情况下,cookie将忽略安全

性问题,总是通过一个普通的http连接来传输.但是如果将cookie的安全性标记设置为true,则该cookie将仅在浏览器和服务器通过SSL(Secure Sockets Layer , 安全套接字层)安全协议连接时才被传输.

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<