2018-4-16 seo達(dá)人
如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里
1、cookie的作用:
我們?cè)跒g覽器中,經(jīng)常涉及到數(shù)據(jù)的交換,比如你登錄郵箱,登錄一個(gè)頁(yè)面。我們經(jīng)常會(huì)在此時(shí)設(shè)置30天內(nèi)記住我,或者自動(dòng)登錄選項(xiàng)。那么它們是怎么記錄信息的呢,答案就是今天的主角cookie了,Cookie是由HTTP服務(wù)器設(shè)置的,保存在瀏覽器中,但HTTP協(xié)議是一種無(wú)狀態(tài)協(xié)議,在數(shù)據(jù)交換完畢后,服務(wù)器端和客戶端的鏈接就會(huì)關(guān)閉,每次交換數(shù)據(jù)都需要建立新的鏈接。就像我們?nèi)コ匈I東西,沒(méi)有積分卡的情況下,我們買完?yáng)|西之后,超市沒(méi)有我們的任何消費(fèi)信息,但我們辦了積分卡之后,超市就有了我們的消費(fèi)信息。cookie就像是積分卡,可以保存積分,商品就是我們的信息,超市的系統(tǒng)就像服務(wù)器后臺(tái),http協(xié)議就是交易的過(guò)程。
2、機(jī)制的區(qū)別:
session機(jī)制采用的是在服務(wù)器端保持狀態(tài)的方案,而cookie機(jī)制則是在客戶端保持狀態(tài)的方案,cookie又叫會(huì)話跟蹤機(jī)制。打開(kāi)一次瀏覽器到關(guān)閉瀏覽器算是一次會(huì)話。說(shuō)到這里,講下HTTP協(xié)議,前面提到,HTTP協(xié)議是一種無(wú)狀態(tài)協(xié)議,在數(shù)據(jù)交換完畢后,服務(wù)器端和客戶端的鏈接就會(huì)關(guān)閉,每次交換數(shù)據(jù)都需要建立新的鏈接。此時(shí),服務(wù)器無(wú)法從鏈接上跟蹤會(huì)話。cookie可以跟蹤會(huì)話,彌補(bǔ)HTTP無(wú)狀態(tài)協(xié)議的不足。
3、cookie的分類:
cookie分為會(huì)話cookie和持久cookie,會(huì)話cookie是指在不設(shè)定它的生命周期expires時(shí)的狀態(tài),前面說(shuō)了,瀏覽器的開(kāi)啟到關(guān)閉就是一次會(huì)話,當(dāng)關(guān)閉瀏覽器時(shí),會(huì)話cookie就會(huì)跟隨瀏覽器而銷毀。當(dāng)關(guān)閉一個(gè)頁(yè)面時(shí),不影響會(huì)話cookie的銷毀。會(huì)話cookie就像我們沒(méi)有辦理積分卡時(shí),單一的買賣過(guò)程,離開(kāi)之后,信息則銷毀。
持久cookie則是設(shè)定了它的生命周期expires,此時(shí),cookie像商品一樣,有個(gè)保質(zhì)期,關(guān)閉瀏覽器之后,它不會(huì)銷毀,直到設(shè)定的過(guò)期時(shí)間。對(duì)于持久cookie,可以在同一個(gè)瀏覽器中傳遞數(shù)據(jù),比如,你在打開(kāi)一個(gè)淘寶頁(yè)面登陸后,你在點(diǎn)開(kāi)一個(gè)商品頁(yè)面,依然是登錄狀態(tài),即便你關(guān)閉了瀏覽器,再次開(kāi)啟瀏覽器,依然會(huì)是登錄狀態(tài)。這就是因?yàn)閏ookie自動(dòng)將數(shù)據(jù)傳送到服務(wù)器端,在反饋回來(lái)的結(jié)果。持久cookie就像是我們辦理了一張積分卡,即便離開(kāi),信息一直保留,直到時(shí)間到期,信息銷毀。
4、簡(jiǎn)單的使用cookie的代碼
cookie的幾種常見(jiàn)屬性:document.cookie="key=value;expires=失效時(shí)間;path=路徑;domain=域名;secure;(secure表安全級(jí)別),
cookie以字符串的形式保存在瀏覽器中。下面貼段代碼出來(lái),是一個(gè)類似購(gòu)物網(wǎng)站的將商品添加到購(gòu)物車,再?gòu)馁?gòu)物車還原商品信息的過(guò)程,是自己用原生JS封裝的函數(shù)。
封裝的cookie的存入,讀取以及刪除的函數(shù):(這里是將信息以對(duì)象的形式存放到cookie中的,會(huì)用到JSON的知識(shí))
下面是商品詳情頁(yè)的JS代碼
購(gòu)物車還原商品信息:
藍(lán)藍(lán)設(shè)計(jì)( sillybuy.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)
藍(lán)藍(lán)設(shè)計(jì)的小編 http://sillybuy.com