cookie跨域共享的实现方案

  由于工作需要,花费了较多的时间处理跨域的问题,未避免遗忘,特此记录。

1.跨域的场景:

      第一种:协议不同

      第二种: 域名不同

      第三种:端口不同;

2.跨域的关键点:

   首先,跨域(CORS)需要浏览器和服务器同时支持;

   其次,跨域的安全性,由浏览器全权负责

   最后,跨域通信如果需要带Cookie,需要双方都同意;

3.后台跨域的处理:

    基于springmvc的后台,在webMvcHandlerAdapter设置Cors放行;  实现方式可以用注解对单个请求处理,或者全局配置的方式;

    其它服务器容器,在返回头中设置 Access-Control-Allow-Origin: *  ;

    其本质也就是在响应头里面设置 Access-Control-Allow-Origin: * 字段;

4.前台跨域处理(Cookie共享):

    1.默认情况下,某个源只能在 当前域  或者 当前域的父级写入Cookie(同级与子级都不行);

        比如, one.automannn.cn 可以 往 one.automannn.cn  和  automannn.cn 写入 Cookie记录;

                 two.automannn.cn 可以 读取 到  two.automannn.cn  和  automannn.cn 的Cookie记录;

         因此,第一种共享方案: 通过代理,将不同的关联系统 设置成 父子域;(不适用于动态接入系统,以及 系统太多的情况,且耦合度很高);   (即,通过后台登陆其它系统的方式,进行浏览器共享;)

        第二种共享方案: 通过浏览器+服务器的方式,由于天生符合CORS协议的要求,所以可以实现  类似于Cookie共享(即需要将cookie存储在不同的域下)的功能;

     此外,同名的Cookie不一定相互排斥,即某一个请求可能包括多个JSESSIONID;Cooke的唯一性还需要由 Domain,Path共同确定;


参考:

      总结一下跨域的几种情况

      跨域资源共享 CORS 详解   -------->跨域必看文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值