Cookie的属性
Cookie的属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> // 1、Cookie的名称(Name)和值(Value) // 最重要的两个属性,创建Cookie时必须填写,其它属性可以使用默认值 // Cookie的名称或值如果包含非英文字母,则写入时需要使用encodeURIComponent()编码,读取使用decodeURIComponent()解码 // document.cookie = 'username = alex'; document.cookie = 'username = ${encodeURICompont('张三')}'; document.cookie = '${encodeURIComponent('用户名')} = ${encodeURIComponent('张三')}'; // 一般名称使用英文字母,不要中文,值可以用中文,但是编码不要 </script> </body> </html>
2、失效时间
对于失效时间的Cookie,会被浏览器清理
如果没有设置失效(到期时间)这样的Cookie称为会话Cookie
它存在内存中,当会话结束,也就是浏览器关闭时,Cookie消失
document.cookie = ' username = alex ';
想长时间存在,设置Expires或Max-Age
expire
值为Date类型
document.cookie = ' username = alex;expires = ${new Date(' 2100-1-01 00:00:00 ')} ';
max-age
值为数字,表示当前时间 + 多少秒后过期,单位是秒
document.cookie = ' username = alex ;max-age = 5';
document.cookie = ' username = alex;max-age = ${24*3600*30} ';
如果max-age的值是0或负数,则Cokkie会被删除
document.cookie = ' username = alex ';
document.cookie = ' username = alex ';
3、Domain域
Domain限定访问Cookie的范围(不同域名)
使用JS只能读写当前域或父域的Cookie,无法读写其他域的Cookie
document.cookie = ' username = alex;domain = www.imooc.com ';
www.imooc.com m.imooc.com 当前域
父域:.imooc.com
4、Path路径
Path限定访问Cookie的范围(同一域名下)
使用JS只能读写当前路径和上下级路径的Cookie,无法读写下级路径的Cookie
document.cookie = 'username = alex;path=/course/list';
document.cookie = 'username = alex;path =/1.Cookie/';
当 Name、Domain、Path这3个字段都相同的时候,才是同一个Cookie
5、HttpOnly
设置了HttpOnly属性的Cookie不能通过JS去访问
6、Secure安全标志
Secure限定了只有在使用了https而不是http的情况下才可以发送给服务端
Dommain、Path、Secure都要满足条件,还不能过期的Cookie才能随着请求发送到服务器端