1京景,什么是 Cookie?
Cookie
是一些數(shù)據(jù), 存儲于你電腦上的文本文件中骗奖。
當(dāng)web
服務(wù)器向?yàn)g覽器發(fā)送web
頁面時确徙,在連接關(guān)閉后醒串,服務(wù)端不會記錄用戶的信息。Cookie
的作用就是用于解決如何記錄客戶端的用戶信息鄙皇。當(dāng)用戶訪問web
頁面時芜赌,他的名字可以記錄在Cookie
中。在該用戶下一次訪問該頁面時育苟,可以在Cookie
中讀取該用戶的訪問記錄较鼓。
- 當(dāng)瀏覽器從服務(wù)器上請求
web
頁面時, 屬于該頁面的Cookie
會被添加到該請求中违柏。服務(wù)端可以通過這種方式來獲取用戶的信息。
1.1香椎,存儲形式
Cookie
以鍵值對形式存儲漱竖,如下所示:
userName=pony
1.2,常用屬性
屬性 | 用處 | 默認(rèn)值 |
---|---|---|
Name | 鍵 | 無 |
Value | 值 | 無 |
Domain | 允許訪問的域 | 當(dāng)前域 |
Path | 允許訪問的路徑 | 當(dāng)前路徑 |
Expires / Max-Age | 過期時間 | 關(guān)閉頁面即清除(Session) |
Size | 占用字節(jié)大小 | 無需設(shè)置 |
1.3畜伐,大小限制
瀏覽器 | 大小 (KB) | 每個域存儲個數(shù)限制 |
---|---|---|
Firefox | 4 | 無 |
Safari | 4 | 無 |
Opera | 4 | 30 |
IE | 4 | 50 |
Edge | 4 | 50 |
Chrome | 4 | 50 |
2馍惹,增 or 改Cookie
/**
* 設(shè)置cookie
* @param {String} key 鍵
* @param {String} value 值
* @param {String} expires 過期時間(yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss 或 時間戳) => default:頁面關(guān)閉即過期(Session)
* @param {String} domain 域 => default:當(dāng)前域
* @param {String} path 路徑 => default:/
*/
function setCookie(key, value, expires = '', domain = window.location.hostname, path = '/') {
const time = expires ? new Date(expires) : expires
console.log(time)
const cookie = `${key}=${value}; expires=${time}; domain=${domain}; path=${path}`
document.cookie = cookie
}
調(diào)用例子:
setCookie('user', '我是你爸爸', '2022-02-20 16:29:00').
// 或者
setCookie('user', '我是你爸爸', '2022-02-20')
// 或者
const timestamp = new Date('2022-10-01').getTime()
setCookie('user', '我是你爸爸', timestamp)
3,查Cookie
/**
* 獲取所有cookie的key
* @return {Array<string>} Cookie鍵組成的數(shù)組
*/
function getAllCookieKey() {
const Cookie = document.cookie
const cookieList = Cookie.split('; ')
return cookieKeyList = cookieList.map(item => {
return item.split('=')[0]
})
}
/**
* 根據(jù)cookie的key獲取對應(yīng)的值
* @param {String} key 鍵
* @return {String} value 值
*/
function cookieKeyGetValue(key) {
const Cookie = document.cookie
const cookieList = Cookie.split('; ')
const cookieKeyList = cookieList.map(item => {
return item.split('=')[0]
})
const index = cookieKeyList.indexOf(key)
return cookieList[index].split('=')[1]
}
4玛界,刪Cookie
/**
* 根據(jù)key清除cookie
* @param {String} key 鍵
* @param {String} domain 域 => default:當(dāng)前域
* @param {String} path 路徑 => default:/
*/
function clearCookie(key, domain = window.location.hostname, path = '/') {
const Time = new Date()
Time.setTime(Time.getTime() + -1 * 24 * 60 * 60 * 1000)
const expires = `expires=${Time.toUTCString()}`
document.cookie = `${key}=; ${expires}; path=${path}; domain=${domain}`
}
// 清除所有cookie
function clearAllCookie() {
const cookieKeyList = getAllCookieKey()
for (let key of cookieKeyList) {
clearCookie(key)
}
}
如果看了覺得有幫助的万矾,我是@鵬多多,歡迎 點(diǎn)贊 關(guān)注 評論慎框;
END
PS:在本頁按F12良狈,在console中輸入document.querySelectorAll('._2VdqdF')[0].click(),有驚喜哦
往期文章
- 助你上手Vue3全家桶之Vue3教程
- 助你上手Vue3全家桶之VueX4教程
- 助你上手Vue3全家桶之Vue3教程
- 超詳細(xì)笨枯!Vuex手把手教程
- 使用nvm管理node.js版本以及更換npm淘寶鏡像源
- 超詳細(xì)薪丁!Vue-Router手把手教程
- vue中利用.env文件存儲全局環(huán)境變量,以及配置vue啟動和打包命令
- 微信小程序?qū)崿F(xiàn)搜索關(guān)鍵詞高亮
個人主頁