Cookie是什么?
借助document的cookie属性,Javascript程序就可
以实现与www服务器一样的cookie功能,即获取当前的
cookie信息和产生一个新的cookie。
一个浏览器访问www服务器的每个网页文件,都是独立的,
每个网页的javascript程序之间的信息也不能共享。即使
是同一个网页的上一次访问和下一次访问之间也无法传递
数据。同一张网页的两次访问,对浏览器和服务器来说,
都是两个完全不同的实体。就好像按照同一个图纸制造出
的两辆汽车一样,各跑各的,没有任何关系。这就是“无状
态会话”。
cookie它是在浏览器和服务器之间产生有状态会话的一种方式。
由服务器将某个信息发送给浏览器,并在浏览器中进行存储,然后
由浏览器每次访问这个服务器的时候,都将这个状态信息返回
给服务器,服务器又可以取得浏览器返回的这个状态信息。
cookie的工作原理和过程:
在浏览器中,有一个cookie存储区,这个cookie存储区可以是硬
盘上的一个目录,也可以是浏览器进程中的一片内存,它里面存储
着各个服务器发送过来的状态信息。当浏览器每次访问某个服务器
的时候 ,它都会来检查是否存在与那个服务器相关的状态信息,
如果有,它就会将这些状态信息连同访问请求一起发给服务器。
好比去商场购物的时候,每次去商场之前我们都会去检查,我们是
否保存有商场的优惠卡,如果有,我们就会带着优惠卡去商场,如
果没有,我们就直接去。商场除了接待我们顾客本身之外,还会依
照优惠卡给我们做附加的优惠活动。
浏览器第一次访问服务器的时候是不会有cookie的。当服务器第一
次回复浏览器的时候,除了返回一般的响应之外,还可以决定是否
附加含有cookie的响应头信息。
cookie格式为:name=value
document对象-cookie属性
cookie属性是具有一定格式的字符串,设置给document对象
的cookie属性的值与document对象的cookie属性的返回值是
不一样的。
1.设置格式
设置给document对象的cookie属性的值的格式:
name=value;expires=Fri,31 Dec 1999 23:59:59 GMT;
path=/bookshop;domain=baidu.com;secure;
<!--
(a) expires指的是保存时间,如果时间比现在早的话,
浏览器就会删除该cookie,这常常是我们删除cookie的
一种方式。如果比现在时间朝后的话,浏览器将在用户
计算机的文件系统中保存cookie信息,直到cookie的
保存时间达到expires保存的时间时,浏览器才会删除
该cookie。
如果没有设置expires保存时间字段,那么浏
览器将cookie保存在他自身进程的内存当中,这条cookie
信息将随浏览器的关闭而消失。在这种情况下,如果在同
一台机器上启动的多个浏览器窗口属于不同的进程,那么
在一个浏览器进程中产生的cookie就不能被其他浏览器进
程所使用。
(b)domain是域属性,是指定cookie作用的有效区域。如果
没有设置,那么这条cookie信息只对浏览器访问的当前主机
有效。
(c)path用于设置cookie在那些有效的服务器上的那个目录
下面的子目录下有效。例如这条cookie信息,只有访问
baidu.com这个域中的主机下的bookshop文件夹以及文件夹
下的子目录有作用。如果没有设置,那么这条cookie信息,
只在当前请求的URL地址所在的目录及其子目录的所有页面
当中起作用。
(d)secure字段没有设置值。当设置值后,这条cookie信息
将成为安全的信息,浏览器只有在安全的环境下,才可以访
问这个被存储的cookie信息。
-->
cookie的名称name和设置值value为开头;后面可以增加一些
可选的字段,每个字段之间加分号+空格来进行分隔。
document对象的cookie属性的设置是一个累加的过程,我们不
能在一次document对象的cookie属性设置语句中增加多个cookie。
也就是设置给document对象的cookie属性的字符串当中只能包含
有一个cookie的信息。我们每一次在浏览器中每增加一个cookie
的时候,都要单独调用一次document对象的cookie属性的设置语句。
2.读取格式
而读取浏览器的cookie属性的时候,它返回的是浏览器中当前所有
可用的cookie信息所组成的字符串,它的返回值情况就是这样的:
name1=vakue1;name2=value2
cookie value的编解码:
(8:19)
转载请注明出处:http://blog.csdn.net/acmman/article/details/44276329