Cookie相關(guān)

設(shè)置Cookie

使用document.cookie與Server端 set-cookie字段區(qū)別:

字段名稱 document.cookie set-cookie 備注
expires document.cookie只支持 Data.toUTCString() 形式
max-age max-age優(yōu)先級比 expires高
domain
path
secure
httpOnly
SameSite 不隨跨域請求發(fā)送,防止csrf

設(shè)置cookie方式:

  1. docuemnt.cookie:
document.cookie="token=xxxx"
document.cookie="a=xx"
  1. set-cookie:
Set-cookie: token=xxxx
Set-cookie: a=xx

刪除一個cookie

cookie應(yīng)該使用 Domain + Name + Path來唯一標識的。cookie本身只是一個字符集合,并沒有提供刪除的api,如果想要刪除,可以巧用過期時間。例如刪除當前域名下的 path為/ 同時Name為 a的cookie:

document.cookie = 'a=1;expires=Thu, 01 Jan 1970 00:00:00 GMT' // 時間需要時 Date().toUTCString()格式,通用的1970-01-01不識別

同理如果需要刪除path為其他域名的,需要指定path

document.cookie="a=2;path=/qr;expires=Thu, 01 Jan 1970 00:00:00 GMT" // 指定path為 /qr

在最新的chrome下面使用 max-age也是可以刪除的

document.cookie='a=1;max-age=-1'

如果刪除不了,請設(shè)置domain?。?!

瀏覽器對Cookie的限制

基于chrome的測試

每一個cookie的大小4KB,此處現(xiàn)在應(yīng)該是document.cookie值的總長度限制;
如果一個cookie超過4kb執(zhí)行不報錯,但是會設(shè)置不成功
同理對于 set-cookie也是一樣大道理

基于Firefox的測試

每一個cookie的大小為4KB,但是不會包含 = 和選項的大小

具體可以通過 http://browsercookielimits.squawky.net/ 進行測試

參考文檔

  1. MDN Document.Cookie
  2. MDN Set-Cookie
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容