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注入的風險,因為可以在控制臺直接訪問它們,所以不要存入敏感數據。