1、cookie的作用:
我們在瀏覽器中,經(jīng)常涉及到數(shù)據(jù)的交換,比如你登錄郵箱,登錄一個(gè)頁面。我們經(jīng)常會(huì)在此時(shí)設(shè)置30天內(nèi)記住我,或者自動(dòng)登錄選項(xiàng)。那么它們是怎么記錄信息的呢,答案就是今天的主角cookie了, **Cookie是由HTTP服務(wù)器設(shè)置的,保存在瀏覽器中,但
HTTP協(xié)議是一種無狀態(tài)協(xié)議,在數(shù)據(jù)交換完畢后,服務(wù)器端和客戶端的鏈接就會(huì)關(guān)閉,每次交換數(shù)據(jù)都需要建立新的鏈接。
就像我們?nèi)コ匈I東西,沒有積分卡的情況下,我們買完東西之后,超市沒有我們的任何消費(fèi)信息,但我們辦了積分卡之后,超市就有了我們的消費(fèi)信息。cookie就像是積分卡,可以保存積分,商品就是我們的信息,超市的系統(tǒng)就像服務(wù)器后臺,http協(xié)議就是交易的過程。**
2、機(jī)制的區(qū)別:
session機(jī)制采用的是在服務(wù)器端保持狀態(tài)的方案,而cookie機(jī)制則是在客戶端保持狀態(tài)的方案,cookie又叫會(huì)話跟蹤機(jī)制。打開一次瀏覽器到關(guān)閉瀏覽器算是一次會(huì)話。說到這里,講下HTTP協(xié)議,前面提到,HTTP協(xié)議是一種無狀態(tài)協(xié)議,在數(shù)據(jù)交換完畢后,服務(wù)器端和客戶端的鏈接就會(huì)關(guān)閉,每次交換數(shù)據(jù)都需要建立新的鏈接。此時(shí),服務(wù)器無法從鏈接上跟蹤會(huì)話。cookie可以跟蹤會(huì)話,彌補(bǔ)HTTP無狀態(tài)協(xié)議的不足。
3、cookie的分類:
cookie分為會(huì)話cookie和持久cookie,會(huì)話cookie是指在不設(shè)定它的生命周期expires時(shí)的狀態(tài),前面說了,瀏覽器的開啟到關(guān)閉就是一次會(huì)話,當(dāng)關(guān)閉瀏覽器時(shí),會(huì)話cookie就會(huì)跟隨瀏覽器而銷毀。當(dāng)關(guān)閉一個(gè)頁面時(shí),不影響會(huì)話cookie的銷毀。會(huì)話cookie就像我們沒有辦理積分卡時(shí),單一的買賣過程,離開之后,信息則銷毀。
持久cookie則是設(shè)定了它的生命周期expires,此時(shí),cookie像商品一樣,有個(gè)保質(zhì)期,關(guān)閉瀏覽器之后,它不會(huì)銷毀,直到設(shè)定的過期時(shí)間。對于持久cookie,可以在同一個(gè)瀏覽器中傳遞數(shù)據(jù),比如,你在打開一個(gè)淘寶頁面登陸后,你在點(diǎn)開一個(gè)商品頁面,依然是登錄狀態(tài),即便你關(guān)閉了瀏覽器,再次開啟瀏覽器,依然會(huì)是登錄狀態(tài)。這就是因?yàn)閏ookie自動(dòng)將數(shù)據(jù)傳送到服務(wù)器端,在反饋回來的結(jié)果。持久cookie就像是我們辦理了一張積分卡,即便離開,信息一直保留,直到時(shí)間到期,信息銷毀。