概念
Cookie用于存儲web頁面的用戶信息,由用戶客戶端計算機暫時或永久保存的信息耕捞。
構成
Cookie由名鍵值對、有效期烫幕、作用域俺抽、安全性等組成。
Name=Value
設置Cookie的名稱及對應的值较曼。
Expires = 日期
有效期一般分為會話性和持久性磷斧,默認是會話性。
Path = 路徑
定義Web應用可訪問的目錄捷犹。
Domain = 域名
設置Web應用訪問的域名弛饭。
Secure = 布爾值
指是否使用HTTPS安全協(xié)議發(fā)送Cookie,默認是false萍歉。
特點
存儲大小限制侣颂,一般存儲4kb。
數量限制枪孩,每個域名最多不能超過50個憔晒。
有效期限制,時效性蔑舞。
域的限制拒担,瀏覽器機制同源策略。
存儲類型是字符串攻询,不支持特殊字符从撼,需要轉義。
cookie會隨請求頭協(xié)議數據傳輸钧栖。
cookie明文存儲容易偽造及篡改谋逻。
cookie可以被瀏覽器禁用呆馁。
操作
一、獲取cookie的值
function getCookie(key){
? ? key = `${key}=`;
let cookieStr = decodeURIComponent(document.cookie.replace(/;s*/ig, ';'));
if(!cookieStr){
return '';
? ? }
let arr = cookieStr.split(';');
let curItem = arr.find(item=>item.indexOf(key) == 0);
if(!curItem){
return '';
? ? }
return curItem.replace(key, '');
}
二毁兆、設置cookie的值及相關屬性
function setCookie(key, value, options){
let def = { path: '/', expires: 0 };
let params = Object.assign({}, def, options);
let d = new Date();
if(!!params.expires){
? ? ? ? d.setTime(d.getTime() + params.expires*1000);
? ? ? ? params.expires = d.toUTCString();
? ? }
let result = Object.keys(params).reduce((acc, akey)=>{
let curVal = params[akey];
return curVal?acc+=`${akey}=${curVal};`:acc;
? ? },`${key}=${encodeURIComponent(value)};`);
document.cookie = result;
}
三浙滤、刪除cookie
function delCookie(key){
document.cookie = `${key}=;expires=-1`;
}
————————————————
版權聲明:本文為CSDN博主「weixin_39863918」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權協(xié)議气堕,轉載請附上原文出處鏈接及本聲明纺腊。
原文鏈接:https://blog.csdn.net/weixin_39863918/article/details/111374174