一、cookie 工作原理
Cookie是在浏览器访问Web服务器的某个资源时,由Web 服务器在HTTP 响应消息头文件中附带传递给浏览器的一些数据。如果浏览器保存了这些数据,当它每次访问该web服务器时,都应在HTTP 请求头文件中将这些数据回传给WEB 服务器。WEB 服务器将这些数据在HTTP 请求头文件中使用Set-Cookie响应头字段将Cookie信息发送给浏览器,浏览器则通过在HTTP 请求消息中增加Cookie请求字段将Cookie回传给web服务器,一个Cookie只能标识一种信息。一个web 服务器可以给浏览器发送多个Cookie ,这样web服务器和浏览器之间可以使用多个Cookie 来传递信息。
*name:cookie属性中唯一必须设置的属性,名称。
*expires:指定cookie在删除之前要在用户的计算机上保留多长时间。如果不设置,则该cookie只对当前浏览器的会话有用,当关闭浏览器页面时,cookie自动消失。
*path:决定该cookie对于服务器上的其他网页的可用性,一般情况下,cookie对于同一目录下的所有页面都可用。当设置path后,cookie只对指定路劲及其子目录下的所有网页有效。
*domain:许多服务器由多台服务器组成,domain属性主要用于设置相同域的多台服务器共享一个cookie。name1=value1;name2=value2;name3=value3;
重要说明:
1、当用户将cookie写入后,新的cookie字符串并不覆盖原来的字符串,而是自动添加到原来cookie字符串的后面。例如:
name1=value1;name2=value2;name3=value3;name4=value4
2、一般情况下,cookie本身并不能包括分号、逗号或空格等专用字符,但是对于这些字符可以使用编码的形式进行传输,也就是将文本字符串中的专用字符转换成对应的16进制ASCII码。
3、在JavaScript中可以使用encodeURL()函数将文本字符串编辑为一个有效的URL.相应的,读取时使用decodeURL()进行解码。
4、将单选框的值放入cookie中较为特别,需要遍历页面中所有的单选框。关键代码可为:
function testRadio(){*cookie读取:
思路简单,通过字符串的split("splitChar")函数分割document.cookie中各值对取出即可。split函数返回一个数组,该数组包含分割后的各字符串子串。
四、cookie的安全问题
*有种技术手段可截取cookie,从而造成信息的不安全,为此可通过MD5 技术加密。但依旧不是绝对安全的(似乎没有什么是绝对安全的)。cookie仍然广泛使用。