正常情况下,浏览器禁止跨域获取cookie 一般通过sso服务可以实现取得跨域cookie,思路如下: 域A页面访问位于域A的服务器,对权限进行验证 域A服务器于域B服务器通信,记录一个唯一的加密串用作身份验证域(并将cookie信息发送给域B服务器) 域A。
我使用URL发了一个get请求,如何才能获取到它返回给我的Cookie呢。
URL geturl = new URL(myurl);
>
登陆验证成功后存入session,想要获取的话掉通过session获取
sessionput(key, value);
object object = sessionget(key);
用户信息一般放在session里面
实现思路
1我们知道session其实是在cookie中保存了一个sessionid,用户每次访问都将sessionid发给服务器,服务器通过id查找用户对应的状态数据。
在这里我的处理方式也是在cookie中定义一个sessionid,程序需要取得用户状态时将sessionid做为key在redis中查找。
2同时session支持用户在一定时间不访问将session回收。
一个域名下面可能存在着很多个cookie对象,cookie具有多个属性:
非顶级域名,如二级域名或者三级域名,设置的cookie的domain只能为顶级域名或者二级域名或者三级域名本身,不能设置其他二级域名的cookie,否则cookie无法生成。
顶级域名只能设置domain为顶级域名,不能设置为二级域名或者三级域名,否则cookie无法生成。
二级域名能读取设置了domain为顶级域名或者自身的cookie,不能读取其他二级域名domain的cookie。所以要想cookie在多个二级域名中共享,需要设置domain为顶级域名,这样就可以在所有二级域名里面或者到这个cookie的值了。
顶级域名只能获取到domain设置为顶级域名的cookie,其他domain设置为二级域名的无法获取。
我们知道Cookie的属性有很多,其中有一个属性是路径。有些人认为Cookie的路径指的是Cookie在客户端的保存路径,其实并不是。 Cookie的路径是在服务器创建Cookie时设置的,它的作用是决定浏览器访问服务器的某个资源时,需要将浏览器端保存的那些Cookie归还给服务器 。
正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。
设置cookiesetPath("/"); 假设本机tomcat/webapp下面有两个应用:cas和webapp_b:
设置cookiesetDomain("jszxcom");假设 A机所在的域:homelangchaocom,A有应用cas B机所在的域:jszxcom,B有应用webapp_b :
推荐阅读
当用户第一次访问并登陆一个网站的时候,cookie的设置以及发送会经历以下4个阶段:
客户端发送一个请求到服务器
服务器发送一个>
以上就是关于跨域cookie共享 有做过的吗 为什么我总是无法获取到cookie全部的内容,包括:跨域cookie共享 有做过的吗 为什么我总是无法获取到cookie、java里怎样在客户端获取response的Cookie、java 模拟登录后,获取服务器上对应的cookie值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)