1、cookie简介
cookie的出现是辅助HTTP协议的,因为HTTP协议是无状态的,不知道每次是谁在请求它,所以产生了cookie,存放一些信息。
1.2 定义
- 可以长时间存储用户的数据,默认是临时,想要长时间存储需要手动设置。
- 当用户访问了网站的时候,就可以通过cookie在访问者的电脑上存储数据。
- 不同浏览器存储的位置不同也不通用。
- cookie的存储是以域名形式进行区分。
- cookie的数据可以设置名字。
- 一些浏览器不允许本地形式操控cookie。
- cookie是可读可写的。当我们通过document.cookie来获取当前网站下的cookie的时候,得到的是一个字符串形式的值,它包含了当前网站下所有的cookie,用分号加一个空格隔开每条cookie。
- 一个域名下的cookie数量是有限制的,不同浏览器不同版本不一样。
- 每条cookie存放的内容大小有限制。
1.2 缺陷
- cookie 是存放到 浏览器上的 ,服务器可以设置,每此请求时会带上cookie
- cookie 不安全 不能存放敏感信息
2、写法
1、临时存储:document.cookie = ‘名字 = 值’
;默认的存储时间是在浏览器生命周期之内,当浏览器关闭的时候自动销毁。
2、长时间存储:document.cookie = ‘cat = 21;expires’ + 时间
;
3、长时间存储
动态设置cookie的生命周期。
//获取时间
var oDate = new Date();
//设置时间为(用户访问的时间 + 7天)
oDate.setDate( oDate.getDate() + 7 );
//把时间设置为字符串格式
document.cookie = document.cookie = 'cat = 21;expires' + oDate.toGMTString();
4.存放注意
1、在存cookie值的时候可能会存一些特殊字符,最好编码(encodeURI)存放。
2、存放:document.cookie = document.cookie = 'cat = '+encodeURI('你好')+';expires' + oDate.toGMTString();
3、读取:decodeURI(document.cookie);
5.编码和解码
1、编码:encodeURI(‘要编码的内容’);
2、解码:decodeURI(‘要解开的编码’);