Cookie的domain以及path详解

之前写过一篇关于cookie 的增删改查,但是写的比较粗糙,这里提两个比较重点的,分别是domain和path

一、domain

1.介绍

可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”。

2.例子

document.cookie = "token=abc;path=/;domain=.csdn.net"

3.运用

平常用的比较多的地方是在登录模块,通过在父级域设置Cookie,因为各个子级域都可以拿到父级域中的Cookie值,即可通过父级域中的Cookie值来确定登录的状态。而如果2中例子写成如下

document.cookie = "token=abc;path=/;"

则会导致Cookie只有在当前域和子域中查看,在父域或者兄弟域之中是无法读取cookie的,会出现跨域的情况,这样就无法再全局通过cookie去判断状态。

二、path

1.介绍

Cookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”。

2.例子

document.cookie = "token=abc;path=/;domain=.csdn.net"

3.运用

举个例子,在mine/register目录下写了个Cookie而没设置path的话,在mine/login目录下则拿不到之前写的Cookie。拿前面的登录模块来说,退出登录需要清除Cookie的时候,若是忽略了写Cookie的目录,则会导致无法清除Cookie等bug出现。

所以一种比较好的方法就是写Cookie的时候带上path,“/”表示路径是根目录。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: CookieDomain属性用于指定可以访问该Cookie的域名范围。默认情况下,CookieDomain属性值为请求的地址。如果要在多个域名之间共享Cookie,可以将CookieDomain属性设置为这些域名的公共父域名。例如,如果域A为t1.study.com,域B为t2.study.com,要在这两个域名之间共享Cookie,就需要将CookieDomain属性设置为.study.com。这样,两个域名下的网页都可以访问该Cookie。注意,一般在域名前需要加一个".",如"domain=.study.com"。\[2\] 另外,如果在设置Cookie时没有显式声明Domain属性,浏览器会根据当前的域名进行特殊处理。在火狐浏览器中,该Cookie的信息会有一个主机项,而域项会消失。在Chrome浏览器中,虽然有域这个项,但域的前面少了一个点。因此,如果显式声明了Domain属性,不管域中是否带点,到Chrome浏览器中都是带点存储的。只有在没有显式声明域的情况下,浏览器存储的域会去掉点。例如,在e.f.com.cn服务主机中生成的Cookie,只有e.f.com.cn的服务器能够获取到,子域名无法获取到这个Cookie。\[3\] #### 引用[.reference_title] - *1* *2* [cookiedomain属性](https://blog.csdn.net/longgege001/article/details/81274088)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [前端----cookie的域:domain](https://blog.csdn.net/q5706503/article/details/83046884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值