手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >cookie在javascript中的使用技巧以及隐私在服务器端的设置
cookie在javascript中的使用技巧以及隐私在服务器端的设置
摘要:读取cookie字符串方法:复制代码代码如下:alert(document.cookie);一个网站的cookie字符串包含了该站点域名下的...

读取cookie字符串方法:

复制代码 代码如下:

alert(document.cookie);

一个网站的cookie字符串包含了该站点域名下的所有cookie(javascript 可访问的,不包括 httponly 的cookie ),多个cookie之间用分号和一个空格隔开,最多一般是20个或50个,例如,包含2个cookie的字符串格式为

复制代码 代码如下:

document.cookie = "key1=value1; key2=value2"

一个cookie字符串最长为4k,超出个数限制或长度限制时将返回空值,cookie个数超出限制时,会造成另外一些cookie丢失,按规范,丢失的应该是最近、最少使用的,但是浏览器的实现并不完全遵循这个规范。

设置一个cookie的方法:

复制代码 代码如下:

document.cookie="key=value;expires=date;path=/;domain=xxx.com;secure";

要设置多个cookie只要反复使用document.cookie=XXX即可,会自动和其他cookie拼接成一个cookie字符串。

如果要读取某个cookie的值,只能通过解析cookie字符串来得到。

下面是设置cookie时的几个参数

1、名和值:key为cookie名称,value为cookie值

2、过期时间:expires用于设置过期时间,为格林威治字符串格式,如

复制代码 代码如下:

expires = new Date('2011-12-30').toUTCString(); //"Fri, 30 Dec 2011 00:00:00 GMT"

如果没有设置过期时间,cookie将在浏览器关闭时失效。

3、所属路劲:网站某张网页中的脚本所设置的cookie默认情况下只能供该网页所在文件夹及其子文件夹中的网页访问,如http://www.jb51.net/aa/1.html所设置的cookie不能被http://www.jb51.net/bb/2.html访问,更多的时候都希望一个cookie能被本站所有网页访问,这就需要设置path属性,path=/表示该cookie的所属路劲是网站根目录,这样本站所有网页都能访问。

4、所属域名:cookie无法跨域访问,一般情况下,cookie仅供本站使用,如果想在多个网站下共享,那么共享cookie的网站必须拥有同一个主域名,通过设置domain属性来实现。比如,如果想让www.jb51.net和bbs.jb51.net这两个二级域名下的网站共享cookie,在设置cookie时需要设置domain=jb51.net

5、加密传输:如果一个cookie带有secure属性,那么cookie在传输到服务器的过程中将使用加密数据的方式传输。

cookie字符串编码:

cookie字符串中不能包含空格,分号,逗号等特殊符号,如果可能包含这些符号,可以使用encodeURIComponent()函数将cookie的值进行编码,读取cookie的值时再使用decodeURIComponent()函数把值进行转换回来,如document.cookie="key="+encodeURIComponent(value);

在服务器设置cookie并声明其私密性(secure 及httponly):

有时候为安全,你可能需要限制一些cookie的访问

secure:该cookie仅供https安全连接使用

httponly:cookie仅供http传输过程中使用,javascript不能访问该cookie

例如,在PHP中使用内置函数setcookie()设置一个具有私密性限制的cookie

setcookie("UserIDCookie","123456",time()+60*30,'/','mytest.com',false,true);

其中第六个参数表示是否仅供https连接使用,第七个参数true表示是否为httponly

跨域请求及第三方cookie ,以及 P3P(个人隐私保护策略):

浏览器的隐私设置(或者内容设置,chrome 在高级设置--内容设置 选项)中,设置禁止使用第三方cookie时,跨域请求(包括iframe,img,javascript文件等请求)无法发送属于该域的cookie.

例如,通过iframe引用一个跨域的页面http://www.jb51.net/index.html,即使浏览器中保存了属于other.com域名下的某个名为otherLoginFrag的cookie,在iframe中请求该页面时,otherLoginFrag并不会随请求一起发往www.other.com的服务器。

第三方cookie限制在不同的浏览器中可能略有不同,比如,safari在禁用第三方cookie时,from表单的提交也只有post方式才能提交cookie.

如果在希望在浏览器禁用第三方cookie时仍能发送跨域请求的cookie,就需要在跨域的服务器中使用P3P 响应头预先声明允许发送的cookie.

复制代码 代码如下:

//php header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); setcookie("UserIDCookie","123456");

【cookie在javascript中的使用技巧以及隐私在服务器端的设置】相关文章:

JavaScript中的italics()方法的使用介绍

浅谈JavaScript中的Math.atan()方法的使用

JavaScript中的fontsize()方法使用介绍

在JavaScript中使用NaN值的方法

浅析JavaScript中的事件机制

JavaScript中的Math.SQRT1_2属性使用简介

JavaScript中继承用法实例分析

谈一谈javascript中继承的多种方式

在JavaScript中处理时间之setMinutes()方法的使用

JavaScript中strike()方法的使用介绍

精品推荐
分类导航