小管

winner2009

   :: 首页  ::  ::  ::  :: 管理

 

希望通过这篇文章能让你了解Cookie。

 

cookie介绍

 

cookie是document的属性。某些网站为了辨别用户身份而储存在用户本地终端的数据(用户硬盘上的一个字符串) 。定义 于 RFC2019.

  

cookie的由来

 

cookie 最初的设计是为服务器端程序设计,所以服务器端的脚本可以读写客户端的cookie值。写入cookie有两种方式,服务器端写入Cookie、客户端写入Cookie.

 

这时候,我们可以在服务器和客户端都可以访问他的值。

 

cookie的属性:expires、path、secure。

 

expires: 指定了cookie的生存期。

默认情况下,cookie是暂时存在的,他们存储的值只在浏览器会话期间存在,退出浏览器后,这些值也就消失。

如果让一个cookie的存在超过会话期,就需要设置expires为未来的一个日期,浏览器会把cookie保存到本地文件中,一旦超过了终止日期,浏览器
自动的从cookie文件中删除掉cookie.  (不同的浏览器的cookie文件夹是不同的)。

 

path:

默认情况下,cookie会和创建它的网页以及与这个网页处于同一个目录下的网页  和处于该目录的子目录下的网页关联。

 

例如:我们在这个网页创建了cookie,www.cnblogs.com/articl/index.html   那么他对于位于

 

www.cnblogs.com/articl/view.html  和   www.cnblogs.com/articl/widget/index.html  都可见。

 

 

但是对于 www.cnblogs.com/index.html不可见。(如下图)
 

 

 

 

 

 

 

 

如果我们在:www.cnblogs.com/articl/widget/index.html  设置的 path = '/articl'

 

那么  对www.cnblogs.com/articl/index.html 也是可见的。 如果设置为 '/'  

 

那么对www.cnblogs.com 服务器上的所有网页都可见。

 

 

  

默认情况下:

只有和设置cookie的网页来自同一个web服务器的网页才能访问这个cookie. 

但是  大的网站可能需要多个web服务器共享cookie.
例如:位于blogs.cnblog.com   和  aa.cnblogs.com  共享cookie.   这里就需要第三个属性Domain.  我们一般把path设置为'/' .  Domain='.cnblogs.com' .   如果没有设置cookie,

默认情况是网页所在服务器的主机名。

 

 

 

 

 

 

 

secure :  指定如何传输cookie,   是http(不安全)   还是 https 或其他安全协议 连接时才被传输。

 

 

Cookie的存储和访问:

 

通常情况下使用:

     document.cookie = 'version=' + encodeURIComponent(保存的值);

     cookie值不允许使用分号、逗号、空白符。所以通常使用 encodeURIComponent,  当你读取的时候不要忘记 decodeURIComponent()解码;

 

Cookie的读取:

     他是一个name=value的列表。之间使用分号隔开。可以使用  String.indexof() 或者 String.substring() 或者 String.split()  将字符传分割成单独的cookie.

 

抛砖引玉,如果您不同的想法,我们大家一起交流、共同进步。谢谢!

 

最后推荐书籍:

 

  

 

web开发工具书    

 

posted on 2011-04-11 08:55  管宇  阅读(2081)  评论(13编辑  收藏  举报