cookie 也叫 HTTP Cookie, 最初是客戶端與服務(wù)器端進(jìn)行會(huì)話使用的淹魄。 比如, 會(huì)員登錄 钳宪,下次回訪網(wǎng)站時(shí)無(wú)須登錄了揭北;或者是購(gòu)物車扳炬,購(gòu)買的商品沒(méi)有及時(shí)付款,過(guò)兩天發(fā)現(xiàn)購(gòu)物車?yán)镞€有之前的商品列表搔体。
HTTP Cookie 要求服務(wù)器對(duì)任意 HTTP 請(qǐng)求發(fā)送 Set-Cookie恨樟,因此,Cookie 的處理原則上需要在服務(wù)器環(huán)境下進(jìn)行疚俱。當(dāng)然劝术,現(xiàn)在大部分瀏覽器在客戶端也能實(shí)現(xiàn) Cookie 的生成和獲取
Cookie的局限性:
cookie 雖然在持久保存客戶端用戶數(shù)據(jù)提供了方便,分擔(dān)了服務(wù)器存儲(chǔ)的負(fù)擔(dān)呆奕。但是有很多局限性的养晋。
第一:每個(gè)特定的域名下最多生成 20 個(gè) cookie(根據(jù)不同的瀏覽器有所區(qū)別) 。
為了更好的兼容性梁钾,所以按照最低的要求來(lái)绳泉,也就是最多不得超過(guò) 20 個(gè) cookie。當(dāng)超過(guò)指定的 cookie 時(shí)姆泻,瀏覽器會(huì)清理掉早期的 cookie零酪。IE 和 Opera 會(huì)清理近期最少使用的 cookie,F(xiàn)irefox 會(huì)隨機(jī)清理 cookie拇勃。
1.IE6 或更低版本最多 20 個(gè) cookie
2.IE7 和之后的版本最多可以 50 個(gè) cookie四苇。 IE7 最初也只能 20 個(gè), 之后因被升級(jí)不定后增加了方咆。
3.Firefox 最多 50 個(gè) cookie
4.Opera 最多 30 個(gè) cookie
5.Safari 和 Chrome 沒(méi)有做硬性限制月腋。
第二:cookie 的最大大約為 4096 字節(jié)(4k),為了更好的兼容性瓣赂,一般不能超過(guò) 4095 字節(jié)即可榆骚。
第三:cookie 存儲(chǔ)在客戶端的文本文件,所以特別重要和敏感的數(shù)據(jù)是不建議保存在cookie 的钩述。比如銀行卡號(hào)寨躁,用戶密碼等
cookie 的組成
?? cookie 由名/值對(duì)形式的文本組成:name=value。
完整格式為:
Document.cookie=name=value; [expires=date]; [path=path]
中括號(hào)是可選牙勘,name=value 是必選职恳。
expires=date 失效時(shí)間,如果沒(méi)有聲明方面,則為瀏覽器關(guān)閉后即失效放钦。聲明了失效時(shí)間 ,那么時(shí)間到期后方能失效恭金。
var date = new Date();?
date.setDate(date.getDate() + 7);
document.cookie = "user= " + encodeURIComponent(‘XX') +";expires=" + date;