当前位置: 首页 > news >正文

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。利用这个特性也可以实现多个相互信任系统之间的单点登录问题。

在这里插入图片描述

相关文章:

  • Java类的概念|包括封装、继承、多态|以及成员方法、权限修饰符、this关键字等类的相关的概念知识|Java必学知识点
  • 怎么让机器认识你的手势?机器学习方向
  • Vue项目实战——【基于 Vue3.x + Vant UI】实现一个多功能记账本(登录注册页面,验证码)
  • 【Java面试】概念性的问题怎么答,看完高手的回答一口气答出完整思路,Nosql的理解
  • React初体验-Hello React的组件化方式-React入门小案例
  • 【毕业设计】树莓派单片机墨水屏电子日历系统 - 物联网 嵌入式
  • SEH异常之编译器原理探究
  • UniApp调用SDK原生接口
  • 【数字信号调制】基于PCM编码和QAM调制系统附matlab代码
  • 数字科技对零售业的改造,链动2+1模式系统如何颠覆传统?
  • 集成随机惯性权重和差分变异操作的樽海鞘群算法-附代码
  • A Lightweight and Accurate Recognition Framework for Signs of X-ray Weld Images
  • 【小程序】IDEA实现qq邮件的发送
  • Selenium入门之java爬虫入门
  • 基于C#的五子棋游戏设计
  • 《剑指offer》分解让复杂问题更简单
  • 【技术性】Search知识
  • Computed property XXX was assigned to but it has no setter
  • JAVA SE 6 GC调优笔记
  • JavaScript异步流程控制的前世今生
  • JS题目及答案整理
  • ng6--错误信息小结(持续更新)
  • PAT A1120
  • Swift 中的尾递归和蹦床
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 代理模式
  • 缓存与缓冲
  • 回流、重绘及其优化
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 微信开放平台全网发布【失败】的几点排查方法
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 再次简单明了总结flex布局,一看就懂...
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #DBA杂记1
  • #控制台大学课堂点名问题_课堂随机点名
  • (2)MFC+openGL单文档框架glFrame
  • (2022 CVPR) Unbiased Teacher v2
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (正则)提取页面里的img标签
  • (转)shell调试方法
  • .form文件_SSM框架文件上传篇
  • .net Application的目录
  • .net core 6 集成和使用 mongodb
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET学习教程二——.net基础定义+VS常用设置