cookie概述
cookie属性
只有name、domain、path三个属性的属性值相同,才是同一个cookie
Name和Value
最重要的两个属性,创建cookie时必须填写,其他属性可以使用默认值
在js中,如果名称或者值包含非英文字母,写入时必须使用encodeURIComponent(),读取时使用decodeURIComponent
document.cookie='username=kobe';
document.cookie=`username=${encodeURIComponent('张三'}`;
失效时间
失效的cookie,会被浏览器清除
如果没有数组失效时间,cookie称为会话cookie
可以通过expires(到期时间)和max-age设置
expires
参数值为Date类型,表示到期时间
document.cookie=`username=kobe; expires=${new Date('2022-1-1 10:10:10')}`
max-age
参数值为数字,表示多少秒之后失效
设置为0或者负数,cookie会被清除
Domain域
限制访问cookie的域
使用js只能读写当前域或父域的Cookie
document.cookie='username=Jame; domain=www.baidu.com';
Path
限制同一个域名下访问cookie的路径
使用js只能读写当前路径和上级路径的cookie
document.cookie='username=kobe; path=/course';
HttpOnly
设置了HttpOnly的属性不能通过js去访问
Secure
限制只有使用https协议而不是http协议,该cookie才能被发送到服务器
注意事项
- 前端和后端都可以创建cookie
- cookie有数量限制:当个域名的的cookie数量有限(大概在20~50个)。如果超过单个域名限制后,再设置cookie,浏览器会清除以前设置的cookie
- cookie有大小限制:每个cookie的大小只有4KB左右