Cookie
HTTP Cookie简称cookie,在HTTP请求发送Set-Cookie HTTP头作为响应的一部分。通过name=value的形式存储。
cookie由以下信息构成:
- 名称:name(不区分大小写,但最好认为它是区分的)
- 值:value(通过URL编码:encodeURIComponent)
- 域
- 路径
- 失效时间:一般默认是浏览器关闭失效,可以自己设置失效时间
- 安全标志:设置安全标志后只有SSL连接的时候才发送到服务器
cookie主要用于保存登录信息。
一段cookie信息:
name=value; expries=Mon, 07-Apr-04 10:15:32 GMT; domain=www.qcla.sinaapp.com; path=/; secure;
注意:每段信息用分号加空格进行分隔。
cookie的接口很蹩脚(document.cookie),一般情况下都要自己封装。
function setcookie(name,value,days)
{
var date=new Date();
date.setDate(date.getDate()+days);
document.cookie=name+'='+value+';expires='+date;
}
function getcookie(name)
{
var arr=document.cookie.split(';');
for(var i=0;i<arr.length;i++)
{
var arr2=arr[i].split('=');
if(arr2[0]==name)return arr2[1];
}
return '';
}
function removecookie(name)
{
setcookie(name,'1',-1);
}
session
sessionStorage是Storage类型的一个对象,拥有clear(),getItem(name),key(index),removeItem(name),setItem(name,value)方法。
sessionStorage对象存储特定于某个会话的数据,也就是该数据只保持到浏览器关闭。
localStorage
localStorage也是Storage类型的一个对象。
在HTML5中localStorage作为持久保存在客户端数据的方案取代了globalStorage(globalStorage必须指定域名)。
localStorage会永久存储会话数据,除非removeItem,否则会话数据一直存在。
三者的区别
安全性的问题:使用这三者的时候都要时刻注意XSS注入的风险,因为可以在控制台直接访问它们,所以不要存入敏感数据。