- 说来惭愧,工作三年听过session 听过跨域也知道解决的办法但是却没有去深入思考一下这两个东西-今天发生一件事情 登录A项目后打开链接去B项目中做操作这种情况下同事提到了使用二级目录解决跨域的问题。当时的我想不到这与跨域有什么联系特别说明一点项目中是用的session存储用户信息
- 什么是跨域
- 比方说你有一个网站我也有一个网站连个网站的信息是不能共用是不,共用了这样岂不是泄露了自己的秘密
- 所以我们的浏览器中只有域名,协议,端口都相同才能互相访问 他们的信息是可以共享的
- 为什么要解决跨域
- 微服务时代,对于开发人员来讲前端的项目分为了多个但是对于用户的来说这就是一个大项目,登录后每个项目都可以访问得到。
- 所以这种情况下我们是需要共享我们的用户信息,以及其他的信息
- 在我们现在的项目后期跨域为什么不经常提到
- 因为我们现在的前端项目部署大都部署在了nginx上,当前端项目去访问我们的后台项目时,nginx给我们做了一层转发满足浏览器的同源策略实现跨域
- session的作用域
- 会话也就是浏览器未关闭时session是一直存在着的但不是有效因为你的session也有可能会设置过期时间
- session的保存在哪里
- 保存在我们服务器的内存中通过key-value的方式存储
- 服务器怎么去获取对应浏览器对应用户的session信息
- 不知道大家有没有发现一般我们请求的时候会在cookie中寸一个jsessionId这个jsession就是一个标识代表着当前这个浏览器刚刚登录的用户,通过这个标识就可以从服务器内存中获取到session。下面又引发出一个问题token与session的区别是什么可以看下面的文章
- 针对于上面说的项目结合方案因为我当时考虑的是
从A项目点击链接跳到B项目 然后在点击链接的时候 A 把sessionId 传给B 然后b项目存在cokie里面 掉接口的时候给后端 这样是不需要做跨域
这种方案可以考虑 二级目录也可以考虑根据项目情况考虑即可