更新時(shí)間:2022-01-24 09:52:52 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1356次
因?yàn)闉g覽器提供了 cookie 屬性給 JavaScript,所以可以通過(guò) document.cookie 來(lái)訪(fǎng)問(wèn)這個(gè)頁(yè)面中的cookie。

這是一串字符串,仔細(xì)觀察,我們可以發(fā)現(xiàn)規(guī)律。每個(gè) cookie 都以名/值對(duì)的形式,即 name=value,名稱(chēng)和值都必須是URL編碼的,且兩對(duì)cookie間以分號(hào)和空格隔開(kāi)。(ps:千萬(wàn)不要忘了空格,特別是在獲取某個(gè) cookie 時(shí))
內(nèi)存cookie,是指沒(méi)有設(shè)在cookie的Expires的屬性,此時(shí)cookie將停留在客戶(hù)端的內(nèi)存中。
硬盤(pán)cookie,是指在你設(shè)置了cookie的Expires屬性,此時(shí)cookie將保存到你的硬盤(pán)上。
服務(wù)器端設(shè)置
服務(wù)器通過(guò)發(fā)送一個(gè)名為 Set-Cookie 的HTTP頭來(lái)創(chuàng)建一個(gè)cookie,作為 Response Headers 的一部分。如下圖所示,每個(gè)Set-Cookie 表示一個(gè) cookie(如果有多個(gè)cookie,需寫(xiě)多個(gè)Set-Cookie),每個(gè)屬性也是以名/值對(duì)的形式(除了secure),屬性間以分號(hào)加空格隔開(kāi)。格式如下:
Set-Cookie: name=value[; expires=GMTDate][; domain=domain][; path=path][; secure]

注意,通過(guò) Set-Cookie 指定的可選項(xiàng)(域、路徑、失效時(shí)間、secure標(biāo)志)只會(huì)在「瀏覽器端」使用,它們都是服務(wù)器給瀏覽器的指示,以指定何時(shí)應(yīng)該發(fā)送cookie。這些參數(shù)不會(huì)被發(fā)送至服務(wù)器端,只有name和value才會(huì)被發(fā)送。
瀏覽器端設(shè)置
瀏覽器端設(shè)置cookie的格式和Set-Cookie頭中使用的格式一樣。如下:
document.cookie = "name=value[; expires=GMTDate][; domain=domain][; path=path][; secure]"
Cookie 可以作為全局變量,這是它最大的一個(gè)優(yōu)點(diǎn)。它最根本的用途是 Cookie 能夠幫助 Web 站點(diǎn)保存有關(guān)訪(fǎng)問(wèn)者的信息,以下列舉cookie的幾種小用途。
(1)保存用戶(hù)登錄信息。這應(yīng)該是最常用的了。當(dāng)您訪(fǎng)問(wèn)一個(gè)需要登錄的界面,例如微博、百度及一些論壇,在登錄過(guò)后一般都會(huì)有類(lèi)似"下次自動(dòng)登錄"的選項(xiàng),勾選過(guò)后下次就不需要重復(fù)驗(yàn)證。這種就可以通過(guò)cookie保存用戶(hù)的id。
(2)創(chuàng)建購(gòu)物車(chē)。購(gòu)物網(wǎng)站通常把已選物品保存在cookie中,這樣可以實(shí)現(xiàn)不同頁(yè)面之間數(shù)據(jù)的同步(同一個(gè)域名下是可以共享cookie的),同時(shí)在提交訂單的時(shí)候又會(huì)把這些cookie傳到后臺(tái)。
(3)跟蹤用戶(hù)行為。例如百度聯(lián)盟會(huì)通過(guò)cookie記錄用戶(hù)的偏好信息,然后向用戶(hù)推薦個(gè)性化推廣信息,所以瀏覽其他網(wǎng)頁(yè)的時(shí)候經(jīng)常會(huì)發(fā)現(xiàn)旁邊的小廣告都是自己最近百度搜過(guò)的東西。這是可以禁用的。
如果大家想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下動(dòng)力節(jié)點(diǎn)的Cookie的工作原理,希望對(duì)大家能夠有所幫助,希望對(duì)大家能夠有所幫助。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)