【js学习笔记-104】-----客户端存储cookie

客户端存储---cookie

cookie数据会自动在web浏览器和Web服务器之间传输,因此服务端脚本就可以读、写存储在客户端的cookie值。操作cookie的API很早就已经定义和实现,因此该API兼容性很好。便,该API几乎形同虚设。根本没有提供诸如查询、设置、删除cookied的方法,所有这些操作都要通过以特殊格式的字符串形式读写Document对象的cookie属性来完成。每个cookie的有效期和作用域都可以通过cookie属性来分别指定。这些属性也是通过在同一个cookie属性上以特殊格式的字符串来设定的

javascript代码中使用cookie前,首先要确保cookie是启用的。在绝大多数浏览器中,可以通过检测navigator.cookieEnable这个属性来实现。若该值为true,则当前cookie是启用,否则为禁用。但这个属性不是标准属性。因此在不支持该属性的浏览器上,必须通过使用下面介绍的技术尝试读写删除来测试是否支持cookie。

cookie属性:有效期和作用域

   cookie默认的有效期很短暂;它只能持续在web浏览器的会话期间,一旦用户关闭浏览器,cookie保存的数据就会丢失了。要注意的是:这与sessionStorage的有效期还是有区别的:cookie的作用域并不是局限在浏览器的单个窗口中,它的有效期,可以通过设置max-age属性,但是必须要明确告诉浏览器cookie的有效期是多少(单位秒)一旦设置了有效期,浏览器就会将cookie数据存储在一个文件中,并且直到过了指定的有效期才会删除该文件。

cookie的作用域是通过文档源和文档路径来确定的。该作用域通过cookie的path和domain属性也是可配置的。默认情况下,cookie和创建它的web页面有关,并对该web页面以及和该web页面同目录或者子目录的其他web页面可见。默认的cookier的可见行为满足了最觉的需求。不过,有时候,你可能希望记整个网站都能够使用cookie的值,而不管是哪个页面创建的。比方说,当用户在一个页面表单中输入了他的邮件地址,你想将它保存下来,为了下次该用户回到这个页面填写表单,或者在网站其他页面的任何地方要求输入帐单地址的时候,将其作为默认的邮件地址。要满足这样的需要,可以设置cookie的路径。(设置cookiepath属性)这样一来,来自同一个web服务器的web页面,只要其url是以指定的路径前缀开始的,都可以共享cookie。如cookie的path调协为”/”,那么该cookie对任何该网站的页面都是可见的。将路径设置成”/”就等于是让cookie和localStorage拥有同样的作用域同时当它请求该站点上任何一个web页面的时候,浏览器都必须将cookie的名字和值传递给服务器。但是,要注意的是,cookie的path属性不能被用做访问控制机制。如果一个web页面想要读取同一站点其他页面的cookie,只要简单地将其他页面以隐藏