一、域名的概念
一个完整的域名由2个或2个以上的部分组成,各部分之间用英文的句号“.”来分隔,最后一个“.”的右边部分称为顶级域名(TLD,也称为一级域名),最后一个“.”的左边部分称为二级域名(SLD),二级域名的左边部分称为三级域名,以此类推,每一级的域名控制它下一级域名的分配。
举🌰:
一级域名:aaa.com 二级域名:bbb.aaa.com 三级域名:ccc.bbb.aaa.com
二、cookie
1、cookie访问规则
cookie挂载在某个域下,只有在此域名下或者此域名的子域下才能获取cookie。
举🌰:
- cookie 在aaa.com域名下, aaa.com 和 bbb.aaa.com 以及 XX.bbb.aaa.com都能读取
- cookie 在bbb.aaa.com域名下, bbb.aaa.com 以及 XX.bbb.aaa.com都能读取; aaa.com不能读取
2、cookie设置规则
在当前域名下,只能设置当前域以及父域的cookie,不能设置子域下的cookie。
举🌰:
- 当前在 aaa.com 域名下,只能设置在 aaa.com 域名下的cookie,不能设置 bbb.aaa.com、ccc.bbb.aaa.com 域名下的cookie
- 当前在 bbb.aaa.com 域名下,可以设置在 bbb.aaa.com 和 aaa.com 域名下的cookie,不能设置 ccc.bbb.aaa.com 域名下的cookie
3、cookie属性
-
;path=path (例如 '/', '/mydir') 如果没有定义,默认为当前文档位置的路径。
-
;domain=domain (例如 'example.com', 'subdomain.example.com') 如果没有定义,默认为当前文档位置的路径的域名部分。与早期规范相反的是,在域名前面加 . 符将会被忽视,因为浏览器也许会拒绝设置这样的 cookie。如果指定了一个域,那么子域也包含在内。
-
;max-age=max-age-in-seconds (例如一年为 606024*365)
-
;expires=date-in-GMTString-format 如果没有定义,cookie 会在对话结束时过期
-
;secure (cookie 只通过 https 协议传输)
4、cookie使用插件 js-cookie
import Cookies from 'js-cookie'
Cookies.set('name', 'value', { expires: 7, path: '', domain: '.aaa.com' })
Cookies.get('name') // => 'value'
Cookies.remove('name')