cookie的作用域范围是如何界定的,即如何确定哪些页面可以共享cookie
------------------------------------
举例吧,我在一个文件夹下,比如 d:\tmp\下建了几个html文件,我发现在a.htm中创建的cookie,在b.htm中是可以识别的。
是不是可以认为,只要是同一个文件夹下的html文件,就可以共享cookie,
当然,我是在本机上做测试,如果作为一个网站来讲,cookie的作用域又是如何界定的呢?
------------------------------------
举例吧,我在一个文件夹下,比如 d:\tmp\下建了几个html文件,我发现在a.htm中创建的cookie,在b.htm中是可以识别的。
是不是可以认为,只要是同一个文件夹下的html文件,就可以共享cookie,
当然,我是在本机上做测试,如果作为一个网站来讲,cookie的作用域又是如何界定的呢?
在默认情况下,cookie都是采用不加密的HTTP的传输方法,这种方法传输容易被别人窃听。如果cookie中的信息很重要,就不能用这种方法了。因此,在JavaScript提供了cookie的secure属性,可以解决这个问题。
secure就是安全的意思。当设置了cookie的secure属性之后,cookie就只能通过HTTP或其他安全协议来传输,这样消息就不容易被别人窃听了。cookie的secure属性是一个布尔类型的值。
【范例14-6】在本例中,cookie"username"被设置成在10分钟之后过期,可以被服务器上的所有目录访问,可以被localhost域里的所有服务器访问,安全状态为安全。如示例代码14-6所示。
示例代码14-6
01 <html>
02 <head><title>cookie的参数</title>
03 <script language="javascript">
04 function setCookie()
05 {
06 var value=prompt("请输入cookie变量的值",""); //接收用户输入的值
07 if(value!=null) //判断value是否为空
08 {
09 var expiration = new Date((new Date()).getTime() + 10 * 60000); //设置cookie存活期
10 document.cookie = "username=" + escape(value)+ "; //给cookie编码
11 xpires ="+ expiration.toGMTString()+";path=/;domain=local host; secure"; //设路径
12 alert("设置cookie值成功编码结果为:username="+escape(value)); //输出结果
13 }
14 else
15 {
16 alert("设置失败,你没有输入任何值!"); //检查输入是否为空
17 }
18 }
19 function getCookie(cookie_name) //自定义函数用于获取cookie的值
20 {
21 var allcookies = document.cookie; //声明一个变量allcookies
22 var value=null; //将value的初始值设为空
23 var searchs=cookie_name+"="; //给变量searchs赋cookie名
24 if(allcookies.length>0) //查看cookie是否为空
25 {
26 var offset=allcookies.indexOf(searchs); //找到要查找的变量名
27 if(offset!=-1) //判断所查找的变量名是否存在
28 {
29 offset+=searchs.length;
30 var end=allcookies.indexOf(";",offset); //找到变量值的结束位置
31 if(end==-1) //防止没加“;”号的情况发生
32 {
33 end=allcookies.length; //取得cookie的长度
34 }
35 value=unescape(allcookies.substring (offset,end)); //取得变量的值
36 }
37 else
38 {
39 value=null; //将变量value赋为空
40 }
41 }
42 return value; //返回变量value的值
43 }
44 </script>
45 </head> <!--文档头结束-->
46 <body> <!--文档体->
47 <input type="submit" name="Submit" value="设置cookie值" onClick="set Cookie()">
48 <input type="submit" name="Submit2" value="读取cookie值" onClick="alert (getCookie('username'))">
49 </body> <!--文档体结束-->
【运行结果】打开网页文件运行程序。
【代码解析】该代码段第4~18行的作用是设置cookie,这里设置了这个cookie的键、值、存活期、路径等,同时还编码过。第19~43行是读取所设置的过程,注意读取的时候要先解码。再有,Date设置是以毫秒为单位,因此getTime方法返回时间,单位为毫秒。提示:设置了secure属性,只保证cookie与Web服务器之间的数据传输过程加密,而保存在本地的cookie文件并不加密