Cookie跨域以及Cookie共享问题

Cookie跨域问题

假设有两个网站 A: www.a.com 与 B: www.b.com

  • 跨域请求的cookie存储问题

在A域名的站点下请求了B域名,假设访问成功且发送的请求返回了cookie,那么此时浏览器保存该cookie的domain是 www.b.com,也就是说请求的是哪个地址,对应的请求返回的cookie的domian就是那个请求地址,和当前的域名无关。不会将B网站返回的cookie的域名设置为www.a.com。

  • 跨域请求的cookie携带问题

在站点A下面访问B域名的接口,那么这是一个跨域请求,如果不做处理,此时这个请求就跨域了,浏览器在接收到响应以后会直接报错。那么这个时候如何让浏览器允许跨域请求?通常有2中解决办法:1.设置代理 2.服务器在响应头中添加 allow-origin。
解决跨域以后,如何允许跨域请求携带cookie,例如访问B的接口,默认情况下是不允许带cookie的,此时需要设置axios的withcredentials的属性为true,告诉浏览器在访问B网站时,将B网站的cookie带上,此时光前端设置还不行,还需要后端在响应头中添加 allow-withcredentials = true,这样就可以保证跨域请求也可以携带cookie。

Cookie共享问题

cookie的作用域和域名有关,和协议以及端口无关。

  • path属性

cookie的path属性决定了访问该域名的那些路径时可以携带cookie,当一个tomcat部署多个服务时,将path设置为/,则访问所有tomcat项目时都可以携带。

  • domain属性

cookie的domain属性才是决定了访问哪个域名时可以携带哪些cookie,服务器可以手动设置domian,默认的domain就是请求url中的域名,但是服务器也可以设置当前域名的子域名,但是不允许设置其他域名,如果设置了其他域名,会直接被浏览器丢弃。 例如,访问 www.baidu.com ,则 服务器可以设置cookie的域名为 www.baidu.com、.baidu.com、baike.baidu.com。当baidu.com下的子域名访问时,也可以携带上.baidu.com的cookie,例如当前网站是 www.baike.baidu.com,访问baike的请求时也可以携带 baidu.com的cookie。利用这个特性也可以实现多个相互信任系统之间的单点登录问题。

在这里插入图片描述文章来源地址https://uudwc.com/A/ABYLa

原文地址:https://blog.csdn.net/qq_43750656/article/details/126834309

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年07月26日 16:28
单8通道数字控制模拟电子开关CD4051
下一篇 2023年07月26日 16:29