cookie是浏览器访问服务器后,服务器发送给浏览器的一段数据。Cookie是http协议的一部分。当客户端第一次向服务器发送请求时,服务器会向客户端发送一个cookie来保存一些信息。当客户端下次向同一个服务器发送请求时,服务器通过识别客户端的cookie做出相应的动作。例如,当我们登录一个网站时,该网站记录了我们的用户名和密码,下次登录时不需要输入用户名和密码就可以直接登录。Web服务器通过发送一个Set-CookieHTTP标头。Set-Cookieheader是一个字符串,格式如下:Set-Cookie:NAME=VALUE;Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE在chrome控制台,我们可以使用开发者工具查看http消息服务器响应请求后发送给浏览器的header,从而看到set-cookie,具体步骤如下:F12打开开发者工具→Network也在开发者工具中,可以查看服务器通过Application发送哪些cookie:NAME:cookie的名称,value为设置的cookie的值。expires:确定cookie的有效失效日期,指定cookie何时不再发送给服务器,浏览器将在指定时间后删除cookie。DATE属性值必须遵循特定格式:Wdy(星期几),Date-Month-YearHH:MM:SSGMT,如果不是这种格式,将无法识别。当没有设置expires选项时,cookie的生命周期仅限于当前session,当浏览器关闭时cookie文件会自动消失。Path:控制Cookie消息头的发送时机。当用户请求的资源URL中存在Path指定的路径时,Web服务器会发送Cookie消息头。通常,如果用户输入的URL中的路径部分从第一个字符开始就包含Path属性定义的字符串,浏览器就认为通过了检查。如果Path属性的值为“/”,则Web服务器上的所有WWW资源都可以读取该cookie。如果没有设置path选项,Path的属性值默认为Web服务器传递给浏览器的资源的路径名。域:确定哪些互联网域Web服务器可以读取浏览器访问的cookies,即只有来自该域的页面才能使用cookies中的信息。当没有设置Domain选项时,cookie的属性值被设置为web服务器的域名。请注意,仅在验证域选项后才比较路径属性。SECURE:只有当标志没有值时,只有当通过SSL或HTTPS发出请求时,包含安全选项的cookie才能发送到服务器。表示只有当浏览器与Web服务器之间的通信协议为加密认证协议时,浏览器才会向服务器提交相应的Cookie。在JavaScript中,cookie用于保存状态并为网络浏览器提供识别机制。在JavaScript中我们可以通过document.cookie属性创建、维护和删除cookie。设置cookie:document.cookie="userName=mavis";每个cookie都是一个名称/值对。如果想一次设置多个名称/值对,可以使用如下方法:document.cookie="userName=mavis;userId=023";在cookie中,使用escape()函数进行编码,可以使用一些特殊符号的十六进制表示,特殊符号包括分号(;)、逗号(,)、等号(=)和空格等。但是用escape编码后(),提取值后需要使用unescape()解码得到原始的cookie值。JavaScript中的escape()函数对字符串进行编码,以便它可以在所有计算机上读取。语法如下:escape(string),string为要转义或编码的字符串。获取cookie的值:使用document.cookie直接获取由多个以分号分隔的name/value(名称/值)组成的字符串。这些名称/值对包括该域的所有cookie。varmyCookie=document.cookie;获取指定的cookie值,//设置两个cookiedocument.cookie="userName=mavis";document.cookie="userId=023";//获取cookie字符串varmyCookie=document.曲奇饼;vararrCookie=myCookie.split(";");变种用户名;for(vari=0;i
